Skip to content
Back to skills

Relay

ASecurity

Send a task to another Agent Keyboard agent by handle and optionally get a completion report back. Use when asked to relay/delegate/forward work to another site's agent or to report status to the master.

  • 5 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agentsbash

Works with

  • terminal

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add vibhasjain/agent-keyboard --skill relay --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Relay?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Relay
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vibhasjain-relay/badge)](https://www.skillsdirectory.com/skills/vibhasjain-relay)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: relay
description: Send a task to another Agent Keyboard agent by handle and optionally get a completion report back. Use when asked to relay/delegate/forward work to another site's agent or to report status to the master.
---

# relay

Use the fleet registry through the seeded helper at
`/data/.claude/skills/relay/relay.sh`.

## Handles

| Handle | Target | Guest | Color | Description |
| --- | --- | --- | --- | --- |
| `home` | `main / cv /` | no | `#ffb86b` | vibhasjain.com homepage — THE MASTER ORCHESTRATOR |
| `jobs` | `main / cv-jobs` | no | `#7fb4e8` | career-ops worker (vibhasjain.com) |
| `nutrition` | `main / cv /nutrition` | no | `#b3d96b` | vibhasjain.com/nutrition — nutrition logging |
| `movies` | `main / cv /movies` | no | `#d873e8` | vibhasjain.com/movies |
| `movieclub` | `main / cv /movieclub` | no | `#5bc8e8` | vibhasjain.com/movieclub |
| `vanlife` | `main / estherandvibhas /vanlife` | no | `#a0aef2` | estherandvibhas.com/vanlife |
| `agentkeyboard` | `main / halo` | no | `#6fd3c7` | agentkeyboard.com — edits Agent Keyboard's own repo |
| `makemepixels` | `main / makemepixels` | no | `#f47fb0` | makemepixels.com |
| `menuplusplus` | `mpp / mpp` | no | `#6dd396` | menuplusplus.com (live agent, fork server) |
| `estherandvibes` | `main / estherandvibhas /` | no | `#b794f6` | estherandvibhas.com |
| `estherfell` | `main / estherfell /` | yes | `#e8c95a` | estherfell.com |
| `closeoutcopilot` | `main / closeout /` | yes | `#e7d3b8` | closeoutcopilot.com deck |
| `closeoutjobs` | `main / closeout-jobs` | yes | `#9aa7c7` | closeout jobs worker |
| `menuplusplusserver` | `mpp / keyboard` | no | `#ef8e7d` | the Menu Plus Plus Agent Keyboard — edits the MPP fork's own bar/server code |

`nutrition`, `movies`, `movieclub`, and `vanlife` are page agents — fixed
sub-page sessions of their site. `home`, `estherandvibes`, `estherfell`, and
`closeoutcopilot` are page-scoped sites: add `:/path` to target any other page
session; `/` is the default.

## Mentions

When a reply refers to a fleet agent, write the bare handle — `@makemepixels`,
not `` `@makemepixels` `` and not `**@makemepixels**`. The owner's bar renders a
bare mention as that agent's colored tag; backticks make it plain code and lose
the color.

## Send work

Fire-and-forget is the default: it prints the durable job id and disconnects
without stopping the job.

```bash
bash /data/.claude/skills/relay/relay.sh menuplusplus "Check the current batch status" --from home
bash /data/.claude/skills/relay/relay.sh estherandvibes:/rsvp "Fix the RSVP copy" --reply-to home
```

Use `--reply-to <handle>` when the target should send a completion report. Use
`--wait` for a short task when you need its terminal `result` or `error` inline;
it waits up to 900 seconds unless `--timeout <sec>` overrides that limit.

```bash
bash /data/.claude/skills/relay/relay.sh agentkeyboard "Inspect the current server status" --wait
bash /data/.claude/skills/relay/relay.sh --jobs home:/movies
```

Posting to a busy site simply queues the task FIFO.

Never `--wait` on a handle that lives on YOUR OWN site (e.g. home → nutrition /
movies / movieclub): page agents share your site's job lock, so their job cannot
start until your turn ends — waiting would block yourself. Fire-and-forget with
`--reply-to` instead.

The `mpp` instance (`menuplusplus`, `menuplusplusserver`) auto-suspends when
idle and wakes on any request. Prefer `--wait` for those two handles — it holds
the connection and keeps the machine awake for the whole job. A fire-and-forget
job there may pause mid-run once idle and only finish at the machine's next
wake (jobs are durable and auto-resume).

## Completion callbacks

Callback turns arrive like normal messages beginning `[relay:done <handle>]`.
When one arrives, summarize it for the owner. Do **not** relay it onward unless
the prompt explicitly asks you to.

Guest handles `estherfell`, `closeoutcopilot`, and `closeoutjobs` have both
relay secrets stripped. They cannot run callbacks: use `--wait` or poll `--jobs`
for work sent to them, and never use a guest handle as `--reply-to`.

`home` is the master orchestrator and a ROUTER: any request that belongs to
another agent's site — any handle, not just its own page agents — gets relayed
there by default (fire-and-forget, `--from home --reply-to home` for non-guest
targets), and home's whole reply is a terse dispatch note ("→ @menuplusplus,
job dispatched"). That ends home's turn immediately so it can take the next
request; the conversation then continues in the target agent's own session.
Home does the work itself only when it is genuinely about vibhasjain.com's
homepage, fleet status, or orchestration. Every other agent: only relay when
your prompt explicitly asks. Subagents report to home.

Files in this skill

  • SKILL.md4.7 KB
  • handles.json3.3 KB
  • relay.sh10.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.