MemPalace Task Handoff
MemPalace/mempalace
Creates, hands off, claims, executes and closes agent tasks through the MemPalace logstream, with approval of the exact task before it is recorded.
Coordinate multi-agent teamwork with shared task lists, mailbox messaging, and long-lived teammates.
$ npx skills add tmustier/pi-agent-teams --skill agent-teams -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tmustier/pi-agent-teams agent-teams --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/tmustier/pi-agent-teams.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/agent-teams .claude/skills/agent-teams && 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 "agent-teams" agent skill from https://github.com/tmustier/pi-agent-teams/tree/main/skills/agent-teams into .claude/skills/agent-teams/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-teams", 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/tmustier/pi-agent-teams/tree/main/skills/agent-teamsType 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 tmustier/pi-agent-teams --skill agent-teams -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tmustier/pi-agent-teams agent-teams --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tmustier/pi-agent-teams.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/agent-teams .agents/skills/agent-teams && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "agent-teams" agent skill from https://github.com/tmustier/pi-agent-teams/tree/main/skills/agent-teams into .agents/skills/agent-teams/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-teams", 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 tmustier/pi-agent-teams --skill agent-teams -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tmustier/pi-agent-teams agent-teams --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tmustier/pi-agent-teams.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/agent-teams .cursor/skills/agent-teams && 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 "agent-teams" agent skill from https://github.com/tmustier/pi-agent-teams/tree/main/skills/agent-teams into .cursor/skills/agent-teams/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-teams", 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/tmustier/pi-agent-teams.git --path skills/agent-teams--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 tmustier/pi-agent-teams --skill agent-teams -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tmustier/pi-agent-teams agent-teams --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tmustier/pi-agent-teams.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/agent-teams .gemini/skills/agent-teams && 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 "agent-teams" agent skill from https://github.com/tmustier/pi-agent-teams/tree/main/skills/agent-teams into .gemini/skills/agent-teams/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-teams", 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 tmustier/pi-agent-teams agent-teamsInstalls 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 tmustier/pi-agent-teams --skill agent-teams -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tmustier/pi-agent-teams.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/agent-teams .github/skills/agent-teams && 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 "agent-teams" agent skill from https://github.com/tmustier/pi-agent-teams/tree/main/skills/agent-teams into .github/skills/agent-teams/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-teams", 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 tmustier/pi-agent-teams --skill agent-teams -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tmustier/pi-agent-teams agent-teams --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tmustier/pi-agent-teams.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/agent-teams .opencode/skills/agent-teams && 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 "agent-teams" agent skill from https://github.com/tmustier/pi-agent-teams/tree/main/skills/agent-teams into .opencode/skills/agent-teams/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-teams", 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.
agent-teamsCoordinate multi-agent teamwork with shared task lists, mailbox messaging, and long-lived teammates.
Agent Teams is an agent skill from tmustier/pi-agent-teams. Coordinate multi-agent teamwork with shared task lists, mailbox messaging, and long-lived teammates. Use when the user asks to spawn workers, delegate tasks, work in parallel with agents, or manage a team of workers.
Its SKILL.md is about 2.5k 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 Task breakdown and Multi-agent orchestration. The repository describes itself as: Experimental agent swarm extension for Pi. Inspired by Claude agent teams. The licence is MIT.
Read from SKILL.md and the folder at commit 2c1776d. 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.
Agent Teams loads about 2.5k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 688 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 tmustier/pi-agent-teams at commit 2c1776d, republished under its MIT licence (© tmustier). 688 words, ~2,481 tokens.
.claude/skills/agent-teams/SKILL.md (or your agent's skills folder).Spawn and coordinate teammate agents that work in parallel on shared task lists, communicating via file-based mailboxes. Modeled after Claude Code Agent Teams.
/team command and the teams LLM tool.pi agent teams - <role> <name> where <role> depends on the current style (e.g. teammate/comrade/matey).team (DMs, notifications, shutdown) and taskListId (task assignments).Built-in styles:
normal (default): Team leader + Teammate <name>soviet: Chairman + Comrade <name>pirate: Captain + Matey <name>Configure via PI_TEAMS_STYLE=<name> or /team style <name> (see /team style list).
Custom styles can be added via JSON files under ~/.pi/agent/teams/_styles/<style>.json or bootstrapped with:
/team style init <name> [extends <base>]Use the teams tool (LLM-callable) for delegation, task/messaging mutations, lifecycle, and governance:
| Action | Required fields | Notes |
|---|---|---|
delegate | tasks | Spawns as needed, creates and assigns tasks. |
task_assign | taskId, assignee | Assign/reassign owner. |
task_unassign | taskId | Clear owner. |
task_set_status | taskId, status | pending | in_progress | completed. |
task_dep_add / task_dep_rm | taskId, depId | Dependency graph edits. |
task_dep_ls | taskId | Dependency/block inspection. |
message_dm | name, message | Mailbox DM. urgent=true interrupts active turns. |
message_broadcast | message | Mailbox broadcast. urgent=true interrupts active turns. |
message_steer | name, message | RPC steer for running teammate. |
member_spawn | name | Supports context/workspace/model/thinking/plan options. |
member_shutdown | name or all=true | Graceful mailbox shutdown request. |
member_kill | name | Force-stop RPC teammate. |
member_prune | (none) | Mark stale workers offline (all=true to force). |
team_done | (none) | End team run: stop teammates, hide widget (all=true to force with in-progress tasks). |
plan_approve / plan_reject | name | Resolve pending plan approvals (feedback optional for reject). |
hooks_policy_get | (none) | Read team hooks policy (configured + effective). |
hooks_policy_set | one or more: hookFailureAction, hookMaxReopensPerTask, hookFollowupOwner | Update team hooks policy at runtime (hooksPolicyReset=true clears team overrides first). |
model_policy_get | (none) | Inspect teammate model policy and current leader inheritance behavior. |
model_policy_check | optional model | Validate a model override before spawn (<provider>/<modelId> or <modelId>). |
Examples:
teams({ action: "delegate", tasks: [{ text: "Implement auth", assignee: "alice" }] })
teams({ action: "task_assign", taskId: "12", assignee: "alice" })
teams({ action: "task_dep_add", taskId: "12", depId: "7" })
teams({ action: "message_broadcast", message: "Sync: finishing this milestone" })
teams({ action: "message_dm", name: "alice", message: "Stop using lib X, use Y instead", urgent: true })
teams({ action: "member_kill", name: "alice" })
teams({ action: "plan_reject", name: "alice", feedback: "Include rollback strategy" })
teams({ action: "hooks_policy_get" })
teams({ action: "hooks_policy_set", hookFailureAction: "reopen_followup", hookMaxReopensPerTask: 2, hookFollowupOwner: "member" })
teams({ action: "model_policy_get" })
teams({ action: "model_policy_check", model: "openai-codex/gpt-5.1-codex-mini" })
teams({ action: "team_done" })This covers most day-to-day orchestration without slash commands. For nuanced/manual control, use /team ... commands directly.
For more control, use /team spawn:
/team spawn alice # default: fresh context, shared workspace
/team spawn bob branch shared # clone leader session context
/team spawn carol fresh worktree # git worktree isolation
/team spawn dave plan # plan-required mode (read-only until approved)/team task add <text...> # create a task
/team task add alice: review the API # create + assign (prefix with name:)
/team task assign <id> <agent> # assign existing task
/team task unassign <id> # unassign
/team task list # show all tasks with status + deps
/team task show <id> # full task details + result
/team task dep add <id> <depId> # task depends on depId
/team task dep rm <id> <depId> # remove dependency
/team task dep ls <id> # show dependency graph
/team task clear [completed|all] # delete tasks
/team task use <taskListId> # switch to a different task listTeammates auto-claim unassigned, unblocked tasks by default.
/team dm <name> <msg...> # direct message to one teammate
/team dm <name> --urgent <msg...> # urgent DM — interrupts active turn via steering
/team broadcast <msg...> # message all teammates
/team broadcast --urgent <msg...> # urgent broadcast — interrupts all active turns
/team send <name> <msg...> # RPC-based (immediate, for spawned teammates)Urgent messages (--urgent or urgent=true in tool calls) interrupt a teammate's active turn via steering instead of waiting for idle. Use sparingly — only for time-sensitive coordination like "stop using library X, it's broken".
Teammates can also message each other directly via the team_message tool (with optional urgent flag), with the leader CC'd.
Restricts the leader to coordination-only (blocks bash/edit/write tools). Use when you want to force all implementation through teammates.
/team delegate on # enable
/team delegate off # disableSpawning with plan restricts the teammate to read-only tools. After producing a plan, the teammate submits it for leader approval before proceeding.
/team spawn alice plan # spawn in plan-required mode
/team plan approve alice # approve plan, teammate gets full tools
/team plan reject alice <feedback...> # reject, teammate revises/team panel # interactive overlay with teammate details
/team list # show teammates and their state
/team attach list # discover existing teams under <teamsRoot>
/team attach <teamId> [--claim] # attach this session to an existing team workspace (force takeover with --claim)
/team detach # return to this session's own team workspace
/team shutdown # stop all teammates (RPC + best-effort manual) (leader session remains active)
/team shutdown <name> # graceful shutdown (teammate can reject if busy)
/team prune [--all] # hide stale manual teammates (mark offline in config)
/team kill <name> # force-terminate one RPC teammate
/team done [--force] # end run: stop teammates + hide widget
/team cleanup [--force] # delete team directory, worktrees, and branches
/team gc [--dry-run] [--force] [--max-age-hours=N] # garbage-collect stale team dirsWhen all tasks complete and teammates are idle, the widget shows "All tasks done." with a /team done hint.
Teammates reject shutdown requests when they have an active task. Use /team kill <name> to force.
Worktrees and branches are automatically cleaned up on session shutdown and session switch. For manual cleanup:
/team cleanup [--force] — removes the current team directory, including git worktrees and associated branches. Reports removal counts./team gc [--dry-run] [--force] [--max-age-hours=N] — garbage-collects stale team directories older than N hours (default: 24). Skips teams with online members or in-progress tasks. Use --dry-run to preview./team id # show team ID, task list ID, paths
/team env <n> # print env vars for manually spawning a teammate named <n>PI_TEAMS_TASK_LIST_ID is primarily worker-side (use it when you start a teammate manually).
The leader switches task lists via:
/team task use my-persistent-listThe chosen task list ID is persisted in config.json. Teammates spawned after the switch inherit the new task list ID; existing teammates need a restart to pick up changes.
Teammates and the leader communicate via JSON messages with a type field:
| Type | Direction | Purpose |
|---|---|---|
task_assignment | leader -> teammate | Notify of assigned task |
idle_notification | teammate -> leader | Teammate finished, no more work |
shutdown_request | leader -> teammate | Ask to shut down |
shutdown_approved | teammate -> leader | Will shut down |
shutdown_rejected | teammate -> leader | Busy, can't shut down now |
plan_approval_request | teammate -> leader | Plan ready for review |
plan_approved | leader -> teammate | Proceed with implementation |
plan_rejected | leader -> teammate | Revise plan (includes feedback) |
peer_dm_sent | teammate -> leader | CC notification of peer message |
© tmustier, 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/agent-teams of tmustier/pi-agent-teams.
Open the folder on GitHubat commit 2c1776d
Agent Teams 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 |
|---|---|---|---|---|---|---|
| Agent Teams this skilltmustier/pi-agent-teams | 110 | — | ~2.5k | Automated safety check: Pass | MIT | |
| MemPalace Task HandoffMemPalace/mempalace | 59k | — | ~1.9k | Automated safety check: Pass | MIT | |
| agtx One-Shot Project Runnerfynnfluegge/agtx | 1.7k | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| Agtx Task Sweepfynnfluegge/agtx | 1.7k | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Orca Orchestrationstablyai/orca | 88k | — | ~916 | Automated safety check: Pass | MIT | |
| Cookrjcorwin/cook | 371 | — | ~1.5k | Automated safety check: Pass | None |
MemPalace/mempalace
Creates, hands off, claims, executes and closes agent tasks through the MemPalace logstream, with approval of the exact task before it is recorded.
fynnfluegge/agtx
Runs a whole project unattended on an agtx kanban board, decomposing the goal, starting tasks, unblocking workers and merging each result.
fynnfluegge/agtx
Breaks a conversation's results into feature-level tasks and pushes them to the agtx kanban board, where each task gets its own worktree and agent session.
stablyai/orca
Coordinate supervised Orca workers: threaded messages, blocking ask/reply, task dispatch, worker_done/escalation waits, task DAGs, decision gates, coordinator…
rjcorwin/cook
Agent orchestration primitives — review loops, repeat passes, parallel races, and task-list progression.
first-fluke/oh-my-agent
Splits a complex feature into prioritized tasks, spawns specialist CLI subagents in parallel, tracks them through shared memory and verifies each result.
Categories
Coordinate multi-agent teamwork with shared task lists, mailbox messaging, and long-lived teammates. Agent Teams is an agent skill from tmustier/pi-agent-teams. Coordinate multi-agent teamwork with shared task lists, mailbox messaging, and long-lived teammates.
Agent Teams fits situations like: the user asks to spawn workers; work in parallel with agents; manage a team of workers.
Run `npx skills add tmustier/pi-agent-teams --skill agent-teams -a claude-code`. Or copy the skill folder (skills/agent-teams in tmustier/pi-agent-teams) into .claude/skills/agent-teams in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tmustier/pi-agent-teams --skill agent-teams -a codex`. Or copy the skill folder (skills/agent-teams in tmustier/pi-agent-teams) into .agents/skills/agent-teams 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 tmustier/pi-agent-teams --skill agent-teams -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agent-teams, .gemini/skills/agent-teams, .github/skills/agent-teams and .opencode/skills/agent-teams in your project.
SKILL.md names no scripts, command-line tools or credentials: Agent Teams 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.
Agent Teams 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.5k tokens (SKILL.md is roughly 9.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 Agent Teams: MemPalace Task Handoff (MemPalace/mempalace, 59k stars), agtx One-Shot Project Runner (fynnfluegge/agtx, 1.7k stars), Agtx Task Sweep (fynnfluegge/agtx, 1.7k stars) and Orca Orchestration (stablyai/orca, 88k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tmustier (a GitHub user) maintains it in tmustier/pi-agent-teams, which has 110 GitHub stars. The repository was last updated on June 20, 2026.
Source: tmustier/pi-agent-teams on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.