Repository navigation
messaging skill 0.2.0: works with a relay init core, uses the fixed-route probe commands - #195
Merged
Merged
Conversation
…oute probe commands The skill assumed a signed-in Agent Relay Desktop and taught `relay socket-request`, which Codex prefix rules cannot constrain. It now works with any Agent Relay core on the computer (the desktop app's or the one `relay init` starts): it finds the session socket from the core's pointer file and the probe from the Codex rules file or the known install paths, then lists agents and sends with `relay agents`, `relay send` and `relay whoami`, written literally so Codex's sandbox rules and Claude Code's permission rules run them without asking. It names the cloud connectors it must never use as a route and keeps the peer-safety rules. README: Codex 0.163 loads global skills from ~/.agents/skills as well as $CODEX_HOME/skills, so `npx skills add -g --agent codex` works. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ks for approval Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…iles A discovery shell script with variables asks for approval in Claude Code. The core already writes the exact probe and socket into Claude Code's permissions.allow and Codex's agent-relay.rules, so the skill reads them with the file-reading tool, which asks for nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
There was a problem hiding this comment.
Devin Review found 2 potential issues.
2 flags not posted on this PR by your GitHub settings — view them in Devin Review. (Configure)
[Medium impact] The PR changes how installed messaging instructions reach local Agent Relay peers. Confirm the MCP sender and workspace before merging.
|
…ores The installed desktop app (agent-relay-probe 2026.10.67) has no relay agents, send or whoami. On "unrecognized subcommand" the skill now uses the 0.1 route that works there: relay socket-request for GET /agents and POST /send with the body on stdin, or curl where 0.1 used it. That route may ask for approval, as it does today. Updating Agent Relay is now a note, not the only option, and the no-cloud-connector rule covers both routes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s, quoting, reply hints) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ion has them Only the server named agent-relay-sessions counts, which is the name the core uses. A same-named tool from a ChatGPT or other cloud connector, or from a server named agent-relay, never does. The socket and socket-request routes are unchanged for sessions without those tools. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
messaging-agents-on-the-relay0.2.0 now works with any Agent Relay core on the computer: the desktop app's, or the onerelay initstarts. Before, it assumed a signed-in, registered desktop and taughtrelay socket-request.MCP tools first. If the session has
list_relay_agentsandsend_relay_messagefrom the server named exactlyagent-relay-sessions(the name the core uses,hosted_mcp::SERVER_NAME), the skill uses those and skips the socket steps. A same-named tool from a ChatGPT connector (agent_relay_in_chatgpt.send_relay_message), a server namedagent-relay, or any other connector never counts.agent-relayis excluded because it is also the name of the localrelay mcpserver, Capy'srelay-eventsserver and the ChatGPT plugin. This step comes from the core's source and the real configs; it was not run end to end.Finding the route. The skill uses the commands the session was handed, when they are
agent-relay-probe relay …commands. Otherwise it reads the exact probe and socket from the files the core writes: Claude Code'spermissions.allowin~/.claude/settings.json, or Codex's~/.codex/rules/agent-relay.rules. The fallback is the core's pointer file~/.agentworkforce/desktop/relay-socketplus the known probe paths, including the desktop's space-free link and~/.agentworkforce/relay/bin/agent-relay-probe. No sign-in is needed.Commands. First it tries the fixed-route subcommands from the security fix (relay branch
fix/codex-rules-fixed-routes):relay agents --socket …,relay whoami --socket …andrelay send --socket … --to|--address|--channel … [--reply-to …] --body …. The words must be literal: absolute paths, no pipes or variables, and the socket single-quoted. That is the form Codex's prefix rules and Claude's permission rules match, so the commands run without a prompt. - Older-core fallback. Today's desktop app (agent-relay-probe 2026.10.67) has norelay agents,relay sendorrelay whoami, and fails withunrecognized subcommand. On that error the skill falls back to the 0.1 route that works there today (step 5):PROBE relay socket-request --socket 'SOCKET' --method GET --path /agentsprintf '%s' '<msg>' | PROBE relay socket-request … --method POST --path '/send?to=NAME'(that probe has no--body; the skill uses--bodywhen--helplists it)curl --unix-socketon Linux, or in Claude Code when there is no probe, as 0.1 didThis route may ask for approval, the same as desktop users see today. "Update Agent Relay" is now a note, not the only option. The probe search also covers the desktop's
~/.local/bin/agent-relay-probecopy andContents/Helpers/Agent Relay Helper.Route rule. Apart from the
agent-relay-sessionstools above, it never uses the "Agent Relay in ChatGPT" connector or any other cloud connector. If the local route fails, the skill says so and stops.The peer-safety rules, the long-message advice and the failure table are kept. The table is updated for "unrecognized subcommand" (older core), approval prompts, and a new session that is not on the relay yet.
README. Codex 0.163 loads global skills from
~/.agents/skillsas well as$CODEX_HOME/skills, verified withcodex app-serverskills/listin an isolated HOME. Sonpx skills add -g --agent codexworks. Messaging no longer needs the desktop skill.prpm: skill 0.2.0,
agent-relay-setupcollection 1.1.5.Coordination
feat/init-installs-relay-skill(feat(init): install the Agent Relay messaging skill for every injected tool relay#2032) makesrelay initinstall this skill, pinned to this branch's head commit7615fcf. After this PR merges, the pin there must move to the merge commit.fix/codex-rules-fixed-routes. The skill depends on itsrelay agents/relay send/relay whoami. A core older than that release printsunrecognized subcommand, and the skill then uses thesocket-requestroute in step 5. Please keep these subcommand names and the--socketposition stable.relay socket-request … --method GET --path /agents. Once it is rebased on the security fix it should namerelay agents --socket …andrelay send --socket … --to <name> --body …, which is what this skill says. The skill says to run the handed commands only when they are probe commands.curl --unix-socket … http://relay/agentsand/send. Its ownpermissions.allowrules allow only the probe commands, so the curl asks for approval. In two fresh Claude sessions, Claude acted on that hint before the skill could. That context should name the probe commands.plugins/grok/agent-relayandplugins/claude/agent-relay-channel, and the older "Codex does not load ~/.agents/skills" notes in the desktop, sessions and subscribing skills. Those are a follow-up.Verified
Against the real desktop app, read-only (agent-relay-probe 2026.10.67;
~/.local/bin/agent-relay-probeis byte-identical toContents/Helpers/Agent Relay Helper):relay --helplists onlyreadandsocket-requestamong the session commands, andrelay agentsgiveserror: unrecognized subcommand 'agents'.socket-request --helphas no--body.relay socket-request --socket '<real>/run/relay.sock' --method GET --path /agentsreturned the roster.Against an isolated
relay initcore (macOS, isolated HOME, security-fix probe build1193cb7fb):<probe> relay agents --socket '<…>/relay.sock'and<probe> relay send --socket '<…>' --to alice --body '…'. There was no approval prompt and no connector.ok:true, and the CLI showed alice's inbox holding the message. A new thread in Codex 0.166 did the same; its first try gotnot_a_relay_sessionbefore the thread had joined, and it reported that honestly instead of switching route.settings.json(one file-read prompt, because the file is outside the project), then ranrelay agentsandrelay sendwith no prompt. Alice received the message.ac9fb90), in a fresh Codex 0.166 session:relay agents, thenrelay send --address alice@direct --body …returnedok:true. The thread's first turn gotnot_a_relay_sessionbefore it had joined, and the retry succeeded.socket-request --method GET --path /agentsand theprintf … | socket-request --method POST --path '/send?to=alice'pipe. Each asked for approval once, as expected, and alice's inbox showed "fallback route test".🤖 Generated with Claude Code
Agent Relay sessions
claudesession8ab900cc· opened viagh pr create· last active 2026-10-31