Skip to content

uze-sh/pingpong

v0.3.0

A ping-pong plugin declaring every capability UZE delivers, for trying a harness by hand.

pingpong

One portable Agent Plugin declaring one of every capability UZE delivers, each answering with a marker you can look for:

capabilitywhat it istryanswers
rule, always onpong, copied into a declaring project's .agents/rules/pingpong (UZE_PINGPONG_RULE: pong)
rule, globtxt, the same"write a hello.txt"the file's last line is UZE_PINGPONG_RULE: txt
skill, model + userping/pingpong:pingpong (UZE_PINGPONG_SKILL: ping)
skill, user onlyhello/pingpong:hellohello, world (UZE_PINGPONG_SKILL: hello)
skill, model onlysecret"what is the playground's secret word?"tangerine (UZE_PINGPONG_SKILL: secret)
agentpong"hand a ping to the pingpong:pong agent"pong (UZE_PINGPONG_AGENT: pong)
hook, denydeny-ping on PreToolUse"run echo ping-deny"refused: pong (UZE_PINGPONG_HOOK: deny-ping …)
hooks, observeSessionStart, PostToolUse, Stopany sessiona line each in $TMPDIR/uze-pingpong-hooks.log
MCPpingpong, mcp/server.rs built as pingpong-mcp"call the pingpong ping tool"pong (UZE_PINGPONG_MCP: ping)

The rules reach only a project that declares the plugin (uze pingpong@uze in it), never one that only has it on the machine (uze install -m). A playground world's demo project also keeps a rule of its own, .agents/rules/marco.md: asked marco, an agent answers polo (UZE_PINGPONG_PROJECT_RULE). uze status in the project lists both.

The MCP server also has hello, echo and add. The hooks share one handler, scripts/hook (and its Windows twin, hook.ps1, run under the same name). secret is the one a harness may only degrade: some cannot withhold a skill from the person, and the install says which.

It has no vendor envelope, so it shows how uze delivers portable capabilities to a harness with nothing harness-specific in the package. It is one of the examples of uze's own marketplace, and what the playground's worlds (playground/) try first.

On this machine

Outside a playground world, install it on your own machine with:

make examples                 # pingpong-mcp on PATH, the uze marketplace linked here
uze pingpong@uze              # in a project: its rules arrive there
uze install -m pingpong@uze   # the machine only: no rules

The marketplace is linked to this checkout, so an edit here reaches the harnesses on the next uze install with no commit. uze remove -m pingpong@uze takes it off again. Its MCP server is built from a uze checkout, so outside one the rest of the plugin works and pingpong alone does not start.