skills/agmsg/SKILL.md
Cross-agent messaging via SQLite. Send messages between Claude Code, Codex, Gemini CLI, and other agents. No daemon, no network, no dependencies beyond bash and sqlite3.
npx skillsauth add lilpacy/dotfiles agmsgInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Agent messaging command. IMPORTANT: Always use the provided scripts. NEVER directly read or edit config files, DB, or team data. There is NO register.sh — use join.sh to join a team.
If you already know your AGENT and TEAMS from a previous $agmsg call in this session, skip to Execute below.
Otherwise, run: ~/.agents/skills/agmsg/scripts/whoami.sh "$(pwd)" codex
Four possible outputs:
A) Single identity:
agent=<name> teams=<t1,t2,...> type=codex project=<path>
→ Remember AGENT and TEAMS, then go to Execute.
B) Multiple identities:
multiple=true agents=<n1,n2,...> teams=<t1,t2,...> type=codex project=<path>
→ Ask the user which agent name to use for this session, then go to Execute.
C) Not in a team:
not_joined=true available_teams=<t1,t2,...> (or available_teams=none)
→ Show the user the available teams from the output, then:
First-time setup required. Joining a team so this agent can send and receive messages.
- Team name: a group of agents that can message each other (available: <list from output>)
- Agent name: this agent's identity within the team
~/.agents/skills/agmsg/scripts/join.sh <team> <agent_name> codex "$(pwd)"Joined! You can now use
$agmsgto check and send messages.
$agmsg— check inbox$agmsg send <agent> <message>— send a message$agmsg team— list team members$agmsg history— message history
REQUIRED — Do NOT skip this step. Ask the user to pick a delivery mode using exactly this prompt:
Choose delivery mode for incoming messages:
1) turn — Check inbox at the end of each assistant turn
Stop hook pulls after each response. Recommended for Codex.
2) off — No automatic delivery
Manual $agmsg only.
3) monitor — Real-time push (BETA, advanced)
Prints a `codex` shell function that routes launches through an
app-server bridge. Opt in ONLY if you accept experimental behavior.
See docs/codex-monitor-beta.md.
[1]:
1 (turn).1→turn, 2→off, 3→monitor) and run:
~/.agents/skills/agmsg/scripts/delivery.sh set <mode> codex "$(pwd)"codex starts — it prints a shell function to add to your shell profile. Add the printed function, restart the shell, then launch future sessions with normal codex. If you prefer a global PATH shim, run ~/.agents/skills/agmsg/scripts/drivers/types/codex/codex-shim-install.sh install and put ~/.agents/bin first on PATH. You can also use ~/.agents/skills/agmsg/scripts/drivers/types/codex/codex-monitor.sh for explicit monitor launches. The bridge starts on the first turn of a new Codex session (the SessionStart hook fires on your first message, not the moment Codex opens), so restart your Codex session and send one message for monitor to take effect — this already-running session stays unmonitored until it restarts. For more info: https://github.com/fujibee/agmsg/blob/main/docs/codex-monitor-beta.md"Then check inbox for the newly joined team.
D) Suggestions for reuse:
suggest=true agents=<n1,n2,...> teams=<t1,t2,...> type=codex project=<path> available_teams=<t1,t2,...>
→ No exact registration exists for this project, but there are same-type agent names registered elsewhere.
~/.agents/skills/agmsg/scripts/join.sh <team> <agent_name> codex "$(pwd)"Only use scripts in ~/.agents/skills/agmsg/scripts/ — do not read or modify files under teams/ or db/ directly.
If no arguments provided (DEFAULT action — always do this when the command is invoked without arguments):
~/.agents/skills/agmsg/scripts/inbox.sh $TEAM $AGENT~/.agents/skills/agmsg/scripts/send.sh $TEAM $AGENT <to_agent> "<message>"If argument is "history":
~/.agents/skills/agmsg/scripts/history.sh $TEAM $AGENTIf argument is "team":
~/.agents/skills/agmsg/scripts/team.sh $TEAMIf argument starts with "send" (e.g. "send misaki check the server"):
~/.agents/skills/agmsg/scripts/send.sh $TEAM $AGENT <to_agent> "<message>"If argument is "config":
~/.agents/skills/agmsg/scripts/config.sh showIf argument starts with "config set" (e.g. "config set hook.check_interval 30"):
~/.agents/skills/agmsg/scripts/config.sh set <key> <value>If argument starts with "actas" followed by an agent name (e.g. "actas alice"):
~/.agents/skills/agmsg/scripts/identities.sh "$(pwd)" codex to see whether the role is already registered for this (project, type).~/.agents/skills/agmsg/scripts/join.sh <team> <name> codex "$(pwd)". For multiple teams, ask the user which team to join the new role into.<name> for every send.sh call until another actas.<name> belongs to (from the identities output / the join above), then run ~/.agents/skills/agmsg/scripts/drivers/types/codex/codex-record-session.sh <team> <name> "$(pwd)". It writes the record only when this session's codex thread id is unambiguous; otherwise it records nothing and the role simply boots fresh next time (no harm). This is what lets a later spawn <role> bring the role back into this conversation.<name>. Sends will use <name> as the from agent. (Codex has no Monitor tool, so receive still covers all of your registered roles in this project.)"If argument starts with "drop" followed by an agent name (e.g. "drop alice"):
~/.agents/skills/agmsg/scripts/reset.sh "$(pwd)" codex <name> to remove that role's registration.<name>, clear that state.<name> from this project."If argument starts with "spawn" (e.g. "spawn claude-code alice", "spawn codex reviewer --window"):
<type> (must be claude-code or codex), <name>, and any options (--project, --team, --window, --split h|v, --terminal, --no-wait, --ready-timeout <secs>).~/.agents/skills/agmsg/scripts/spawn.sh <type> <name> --project "$(pwd)" [options]
<name>, then opens a tmux pane/window (when this session is inside tmux) or a new OS terminal, and launches the target CLI with /agmsg actas <name> as its initial prompt.status=ready); status=timeout + exit 3 if not ready within --ready-timeout (default 90s). --no-wait for fire-and-forget. Spawning a codex agent skips the wait (codex has no Monitor).<name> is already held by another live session, if the target CLI is not installed, or if there is no tmux and no usable terminal (headless).If argument starts with "despawn" (e.g. "despawn reviewer", "despawn alice --force"):
<name> and any options (--force, --timeout <secs>). despawn is the inverse of spawn — it tears down a member you previously spawned.<name> belongs to (as with send), then run:
~/.agents/skills/agmsg/scripts/despawn.sh <team> $AGENT <name> [--force] [--timeout <secs>]
ctrl:despawn control message to <name>. A claude-code member's watcher drops its own role and closes its own tmux pane, ending the agent. Blocks until the lock releases, up to --timeout (default 30s), then prints status=ok. On timeout it prints status=timeout and exits 3 — retry with --force. A codex member has no watcher to respond, so use --force for it.--force: skips the message and tears the member down from the placement recorded at spawn time — kills its tmux pane/window and drops its registration.If argument is "mode" (no further args):
~/.agents/skills/agmsg/scripts/delivery.sh status codex "$(pwd)"If argument starts with "mode" followed by a mode name (e.g. "mode monitor"):
monitor (beta bridge), turn, and off — reject both with: "Codex bridge beta supports monitor, turn, or off; both is not supported yet."~/.agents/skills/agmsg/scripts/delivery.sh set <mode> codex "$(pwd)"monitor, tell the user: "Codex monitor beta is enabled. Add the printed shell function to your shell profile, restart the shell, then launch future sessions with normal codex. If you prefer a global PATH shim, run ~/.agents/skills/agmsg/scripts/drivers/types/codex/codex-shim-install.sh install and put ~/.agents/bin first on PATH. You can also use ~/.agents/skills/agmsg/scripts/drivers/types/codex/codex-monitor.sh for explicit monitor launches. The bridge starts on the first turn of a new Codex session (the SessionStart hook fires on your first message, not the moment Codex opens), so restart your Codex session and send one message for monitor to take effect — this already-running session stays unmonitored until it restarts. For more info: https://github.com/fujibee/agmsg/blob/main/docs/codex-monitor-beta.md"If argument is "hook on" (legacy alias):
~/.agents/skills/agmsg/scripts/delivery.sh set turn codex "$(pwd)"If argument is "hook off" (legacy alias):
~/.agents/skills/agmsg/scripts/delivery.sh set off codex "$(pwd)"If argument is "version":
~/.agents/skills/agmsg/scripts/version.shIf argument is "reset":
~/.agents/skills/agmsg/scripts/reset.sh "$(pwd)" codexdata-ai
ユーザー向けの回答、要件整理、説明、計画、レビュー、仕様、要約を作成するときに使う。自然言語だけでは条件、状態、多重度、期間、時刻、境界値、制約、推論、計算が曖昧になりうる場合、表、デシジョンテーブル、Mermaid 図、計算式、境界値表で一意化する。推測で補った図表要素は必ず明示する。
development
Anti-AI-slop design skill for greenfield pages, audits, redesigns, and design extraction from URLs or screenshots. Use when the user asks to build a new app or landing page, wants to redesign something, invokes Hallmark by name, or uses audit/redesign/study.
development
Reviews animation and motion code against a high craft bar derived from Emil Kowalski's design engineering philosophy. Default to flagging; approval is earned.
development
Survey a codebase's animation and motion code as a senior motion advisor, then produce a prioritized audit and self-contained implementation plans for other agents (or cheaper models) to execute. Read-only on source code — it plans improvements, it does not apply them. Use when the user asks to "improve the animations", "audit the motion", "make this app feel better", or wants a roadmap of animation fixes rather than a review of a single diff.