Orca CLI
stablyai/orca
Operate Orca-managed worktrees, folder contexts, terminals, repos, automations, artifacts, skill sharing, worktree comments, and Orca's embedded browser…
Prepare and run Relay legs in Pi: keep the goal, baton, and log durable, then hand off to one fresh session or stop visibly.
$ npx skills add jmfederico/pi-web --skill relay-runner -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jmfederico/pi-web relay-runner --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jmfederico/pi-web.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/relay-runner .claude/skills/relay-runner && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "relay-runner" agent skill from https://github.com/jmfederico/pi-web/tree/main/skills/relay-runner into .claude/skills/relay-runner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "relay-runner", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jmfederico/pi-web/tree/main/skills/relay-runnerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jmfederico/pi-web --skill relay-runner -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jmfederico/pi-web relay-runner --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jmfederico/pi-web.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/relay-runner .agents/skills/relay-runner && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "relay-runner" agent skill from https://github.com/jmfederico/pi-web/tree/main/skills/relay-runner into .agents/skills/relay-runner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "relay-runner", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jmfederico/pi-web --skill relay-runner -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jmfederico/pi-web relay-runner --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jmfederico/pi-web.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/relay-runner .cursor/skills/relay-runner && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "relay-runner" agent skill from https://github.com/jmfederico/pi-web/tree/main/skills/relay-runner into .cursor/skills/relay-runner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "relay-runner", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jmfederico/pi-web.git --path skills/relay-runner--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jmfederico/pi-web --skill relay-runner -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jmfederico/pi-web relay-runner --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jmfederico/pi-web.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/relay-runner .gemini/skills/relay-runner && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "relay-runner" agent skill from https://github.com/jmfederico/pi-web/tree/main/skills/relay-runner into .gemini/skills/relay-runner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "relay-runner", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jmfederico/pi-web relay-runnerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jmfederico/pi-web --skill relay-runner -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jmfederico/pi-web.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/relay-runner .github/skills/relay-runner && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "relay-runner" agent skill from https://github.com/jmfederico/pi-web/tree/main/skills/relay-runner into .github/skills/relay-runner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "relay-runner", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jmfederico/pi-web --skill relay-runner -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jmfederico/pi-web relay-runner --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jmfederico/pi-web.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/relay-runner .opencode/skills/relay-runner && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "relay-runner" agent skill from https://github.com/jmfederico/pi-web/tree/main/skills/relay-runner into .opencode/skills/relay-runner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "relay-runner", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
relay-runnerPrepare and run Relay legs in Pi: keep the goal, baton, and log durable, then hand off to one fresh session or stop visibly.
Relay Runner is an agent skill from jmfederico/pi-web. Prepare and run Relay legs in Pi: keep the goal, baton, and log durable, then hand off to one fresh session or stop visibly. Use with relay for /relay, /relay-worktree, or a handoff naming relay-runner. Supplies continuity and a bounded fresh-context final review without prescribing the development route.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering Git worktrees. The repository describes itself as: Web UI for Pi Coding Agent that keeps sessions alive in real workspaces. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2961669. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Relay Runner loads about 2.2k tokens when it runs. Until then it costs about 80 tokens; SKILL.md has 1,223 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jmfederico/pi-web at commit 2961669, republished under its MIT licence (© jmfederico). 1,223 words, ~2,220 tokens.
.claude/skills/relay-runner/SKILL.md (or your agent's skills folder).This skill binds the relay method to Pi sessions and a small file packet. It supplies continuity and one completion gate: a fresh-context final review. The development route remains adaptive. Each agent discovers applicable project instructions and skills through the repository and harness; do not copy them into the packet or preselect them for future legs.
Use .pi-web/relays/<name>/ in the working checkout unless the user selects another location. Start with three files:
charter.md — goal. The agreed outcome and recognizable finish line, relay-specific scope boundaries and clarifications, and any explicit human requirements. Reference an existing specification when useful. Do not add project rules, implementation plans, or generic quality or delivery procedures; include such details only when the human explicitly asks.status.md — baton. State (Draft — awaiting approval; not dispatched, Active, Complete, or Needs help), last completed leg and next leg number, working location, current progress, remaining gaps to the goal, relevant checks, current review state, targeted pointers, and blockers. Include only what is useful now. Avoid suggesting the next slice; record remaining gaps and concrete dependencies instead.log.md — history. Append a short entry per leg: what changed or was learned, important decisions and why, artifact or commit references, checks and actual results, and the next leg or stop. Record human approval and scope changes here too.Charter = agreement; status = position; decisions = durable reasoning; log = history. Keep revisions in the log, not a separate revisions document; no decision template is required. Status, decisions, and the log cannot silently change the agreement. Keep relay-specific decisions durable without adding documents merely to satisfy a template. The packet is not a second home for project policy or this skill's instructions.
Add decisions.md only when useful: a compact, living record of consequential decisions and their reasons, including rejected approaches or review concerns worth remembering. Keep current conclusions there and record revisions in the log. Link it from status and consult relevant entries rather than duplicating the reasoning in the baton. It is not a plan, task list, or another home for project rules. Human changes to the goal or scope still belong in the charter. Do not create an empty register or impose a decision template.
The preparation prompt owns discussion and approval. Drafting is allowed before approval; spawn_session is not. After the human reviews the goal and boundaries, require an explicit Approve and dispatch response. If the approved goal, scope, or working target changes materially, obtain fresh approval.
Use the current checkout for /relay unless the user chooses another. For /relay-worktree, create a fresh branch and worktree after approval, following project conventions; use current HEAD as the starting point unless another base is agreed. Ask about a material target ambiguity rather than guessing. Move the draft packet into the target checkout before dispatch, update its location, and remove the stale drafting copy.
Record the actual checkout and, in Git, branch and starting commit in status. Keep packet files out of delivery commits using an existing ignore rule or a local Git exclusion. Leave unrelated existing work untouched. Bootstrap the target as needed under project conventions; setup does not automatically require a separate leg.
Record approval in status/log, mark status Active, and seed leg 1. The first runner chooses its own slice; preparation need not prescribe one. Dispatch with the same handoff mechanics used by later legs.
Other reviews, delivery steps, and gates apply only when the human or project requires them. Keep this skill's review procedure here, not copied into the packet.
When a leg finishes substantive work and believes implementation is done, record that final review is pending and hand off to a fresh leg. A fresh runner finding implementation complete with review pending performs the review instead of passing it on again. Leave substantive corrections to another leg so the review stays independent.
Review the whole relay result, not just the last slice, against the charter and applicable project guidance. Approve when no concrete, evidence-backed in-scope blocker remains. Optional improvements, speculative concerns, and unrelated pre-existing shortcomings do not block completion. Record consequential finding dispositions in decisions.md when useful.
Allow at most three review attempts total: the initial review and up to two post-correction reviews, not three mandatory passes. Keep the attempt count, latest result, and reviewed work reference in status; put evidence and findings in the log or link to decisions. Subsequent attempts happen only after concrete corrections and focus on those corrections and changed evidence, carrying supported prior decisions forward rather than restarting an expanding audit.
If the third attempt still has blockers, or a required further review would exceed the budget, mark Needs help, record what remains, and stop without dispatching another review or correction leg. A valid approval satisfies the gate; a new context or packet-only update does not reopen it. Material changes to the reviewed result require re-review within the same budget.
Mark Complete and report the result and evidence when no required work remains and final review has passed for the current result. Do not spawn a successor to search for extra work.
Mark Needs help when a decision, permission, environment problem, or lack of progress prevents responsible continuation. Record the concrete blocker, attempts and evidence, and the smallest question or action needed from the human. Surface it clearly in the user-facing response; use ask_user when an answer is needed. Do not hand a human-dependent blocker to another context hoping it will disappear.
Before continuing, check that concrete required work remains, including any pending final review; leave slice selection to the successor.
For handoff, finish work and all packet writes first. Call spawn_session at most once, with the target checkout as cwd. Omit model and thinkingLevel to inherit them unless the human instructed otherwise; keep any relay-wide instruction in the packet. Use an independent session, not a tracked subsession, for the successor.
Keep the successor prompt short, substituting actual paths and the next leg number:
Continue Relay "<name>", leg <N>, in <checkout>.
Load the `relay` and `relay-runner` skills.
Read <packet>/charter.md and <packet>/status.md.
Check the finish line against the current work and choose the next useful slice.
Make progress and the record durable, then hand off once, complete, or signal that you need help.spawn_session is the final operational action. After it returns, give only a brief handoff summary: no further tool use, packet writes, work, or downstream supervision. If dispatch fails, report the failure rather than claiming the next leg started.
© jmfederico, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/relay-runner of jmfederico/pi-web.
Open the folder on GitHubat commit 2961669
Relay Runner next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Relay Runner this skilljmfederico/pi-web | 869 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Orca CLIstablyai/orca | 88k | 2 repos | ~593 | Automated safety check: Pass | MIT | |
| ClawTeam Multi-Agent Swarmwin4r/ClawTeam-OpenClaw | 1.5k | 1 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Using Git Worktreesjulianromli/opencode-template | 144 | 28 repos | ~1.4k | Automated safety check: Pass | None | |
| Agent of Empires Session Manageragent-of-empires/agent-of-empires | 3.3k | — | ~2.5k | Automated safety check: Pass | MIT | |
| Nagentdavidondrej/skills | 4.1k | — | ~1.7k | Automated safety check: Notes | MIT |
stablyai/orca
Operate Orca-managed worktrees, folder contexts, terminals, repos, automations, artifacts, skill sharing, worktree comments, and Orca's embedded browser…
win4r/ClawTeam-OpenClaw
Launches a swarm of specialist Hermes agents in git-worktree-isolated tmux windows with a kanban board and file-based inboxes, using built-in templates like hedge-fund and code-review.
julianromli/opencode-template
A skill your agent uses when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory…
agent-of-empires/agent-of-empires
Launches, monitors and organizes AI coding agent sessions such as Claude Code or Codex inside tmux, tracking status, capturing output and managing git worktrees for parallel branches.
davidondrej/skills
Launch a new bb worker thread with the right project, model, worktree, and task brief.
asheshgoplani/agent-deck
agent-deck, the terminal session manager for AI coding agents.
jmfederico/pi-web
A skill your agent uses whenever the user asks about changelogs, Changesets, release notes, conventional commits, commit messages for release notes, or making user-visible project changes that…
jmfederico/pi-web
A skill your agent uses whenever the user asks for a new npm version, npm release, package release, new release, version bump, publishing to npm, cutting a GitHub release, tagging a release, or…
jmfederico/pi-web
Repository-specific testing guide. An agent skill from jmfederico/pi-web.
jmfederico/pi-web
Project code quality and architecture expectations for implementation, refactoring, planning, and code review.
jmfederico/pi-web
Repository documentation placement and writing guidance. An agent skill from jmfederico/pi-web.
jmfederico/pi-web
Carry work across a chain of fresh agent contexts using a shared goal, compact baton, and durable record.
Categories
Prepare and run Relay legs in Pi: keep the goal, baton, and log durable, then hand off to one fresh session or stop visibly. Relay Runner is an agent skill from jmfederico/pi-web. Prepare and run Relay legs in Pi: keep the goal, baton, and log durable, then hand off to one fresh session or stop visibly.
Relay Runner fits situations like: tasks that involve Git worktrees.
Run `npx skills add jmfederico/pi-web --skill relay-runner -a claude-code`. Or copy the skill folder (skills/relay-runner in jmfederico/pi-web) into .claude/skills/relay-runner in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jmfederico/pi-web --skill relay-runner -a codex`. Or copy the skill folder (skills/relay-runner in jmfederico/pi-web) into .agents/skills/relay-runner in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jmfederico/pi-web --skill relay-runner -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/relay-runner, .gemini/skills/relay-runner, .github/skills/relay-runner and .opencode/skills/relay-runner in your project.
SKILL.md names no scripts, command-line tools or credentials: Relay Runner is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Relay Runner is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Relay Runner: Orca CLI (stablyai/orca, 88k stars), ClawTeam Multi-Agent Swarm (win4r/ClawTeam-OpenClaw, 1.5k stars), Using Git Worktrees (julianromli/opencode-template, 144 stars) and Agent of Empires Session Manager (agent-of-empires/agent-of-empires, 3.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jmfederico (a GitHub user) maintains it in jmfederico/pi-web, which has 869 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 9, 2026.
Source: jmfederico/pi-web on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.