TMA1 Peer-Agent Lens (Codex)
Lists recent sessions on the current project, newest first. Default is
peer agents — the ones that aren't you — because the usual reason to call
this is "Claude Code or Copilot left something here, act on it without me
copy-pasting between terminals". Naming yourself is also allowed.
Invocation
Auto-selected when the user mentions reading another agent's output on
this project, or typed explicitly:
/tma1-peer # all peers, latest session each
/tma1-peer claude # Claude Code only
/tma1-peer claude --full # with full conversation content
/tma1-peer self # your own recent sessions here
/tma1-peer copilot --limit 2 # latest 2 Copilot CLI sessions
/tma1-peer --summary --limit 5 # headers only, 5 per agent
/tma1-peer claude --since 6h # widen the time window
Normalize the agent name
| Input |
agent_source to send |
claude, cc |
claude_code |
claude_code |
claude_code |
openclaw |
openclaw |
copilot |
copilot_cli |
self, me |
self (the server resolves it) |
all, *, empty |
"" (every peer except you) |
Any other value: reply
unknown agent "<X>"; available: claude, openclaw, copilot, self, all
and STOP — do not call the tool with an unrecognised name.
Flags
| Flag |
Argument to send |
Default |
--summary |
detail: "summary" — header, tools, files; no messages |
|
| (none) |
detail: "preview" — 3 recent messages |
default |
--full |
detail: "full" — 40 recent messages |
|
--limit N |
limit — sessions per agent, [1, 5] |
1 |
--since 2h / --since 90m |
since_min in minutes |
1440 |
Legacy positional form [agent] [limit] [message_limit] still works; a
bare leading integer is the limit, not an agent.
Call the tma1 MCP tool
This project's TMA1 install registers an MCP server named tma1. Call
its get_peer_sessions tool with the parsed arguments. If your runtime
addresses MCP tools by a prefixed name (tma1.get_peer_sessions,
mcp_tma1_get_peer_sessions), use whichever convention this Codex
install uses — it's the same tool.
Use the returned content directly
sessions array — identity (session_id, agent_source, started_at,
last_activity_at, last_activity_ago, duration_minutes, cwd),
volume (tool_call_count, tokens_input, tokens_output), content
(messages, recent_tool_names, files_touched). On a self lookup,
is_latest_for_cwd marks the session you are almost certainly in right
now — don't report your own current work back as news.
most_recent_session — freshest session's agent + age; lead with it.
partial_failures — agent → error_message, present only when the
all-peers fan-out had a failure. Check it before treating empty
sessions as "no peer activity".
When you act on what the peer left:
- Quote concrete points the peer made. Don't paraphrase — the user
wants the peer's exact feedback in your context, not your summary.
- List the files the peer touched, when the next step is "fix what
they flagged".
- Surface the timing. "Claude left this 12 min ago" beats "recently".
- A message with
truncated: true was cut to fit; fetch the rest with the
get_session_transcript tool for that session_id.
If sessions is empty and partial_failures is absent, reply
no recent <agent> sessions on this project in the active window and
stop — do not fabricate context. If partial_failures is present, quote
the failed agent(s) instead of asserting silence.
Related tools
- Searching by keyword instead of by agent → the
tma1-search skill
(search_sessions).
- Already holding a
session_id → get_session_transcript.
Examples
User: "what did claude leave on this project?"
You: (call get_peer_sessions with agent_source: "claude_code", detail: "full")
You: "Claude Code reviewed server/internal/handler/anomalies.go 8 minutes ago and flagged three concrete issues:
- fetchEmits has no LIMIT — body cap will truncate before the query finishes.
applyForceColor env dedup is libc-dependent.
- anomalyCache.history map never evicts stale sessions.
Want me to address all three or pick one?"
User: /tma1-peer self
You: (call get_peer_sessions with agent_source: "self")
You: "Two of your earlier sessions here today: 14:20 landed the retry fix,
11:05 was the abandoned migration attempt."
1---2name: tma1-peer-23description: List recent sessions on this project by agent — peers (Claude Code, OpenClaw, Copilot CLI) or your own past sessions. Invoke this skill when the user asks you to read another agent's review feedback, see what someone else tried, act on cross-agent context, or recall your own earlier work here. Trigger phrases: "what did claude do", "what did openclaw do", "what did copilot do", "peer sessions", "cross-agent context", "what did I do earlier", "/tma1-peer".4---56# TMA1 Peer-Agent Lens (Codex)78Lists recent sessions on the current project, newest first. Default is9peer agents — the ones that aren't you — because the usual reason to call10this is "Claude Code or Copilot left something here, act on it without me11copy-pasting between terminals". Naming yourself is also allowed.1213## Invocation1415Auto-selected when the user mentions reading another agent's output on16this project, or typed explicitly:1718```19/tma1-peer # all peers, latest session each20/tma1-peer claude # Claude Code only21/tma1-peer claude --full # with full conversation content22/tma1-peer self # your own recent sessions here23/tma1-peer copilot --limit 2 # latest 2 Copilot CLI sessions24/tma1-peer --summary --limit 5 # headers only, 5 per agent25/tma1-peer claude --since 6h # widen the time window26```2728## Normalize the agent name2930| Input | `agent_source` to send |31| ----------------- | ---------------------------------- |32| `claude`, `cc` | `claude_code` |33| `claude_code` | `claude_code` |34| `openclaw` | `openclaw` |35| `copilot` | `copilot_cli` |36| `self`, `me` | `self` (the server resolves it) |37| `all`, `*`, empty | `""` (every peer except you) |3839Any other value: reply40`unknown agent "<X>"; available: claude, openclaw, copilot, self, all`41and STOP — do not call the tool with an unrecognised name.4243## Flags4445| Flag | Argument to send | Default |46| --- | --- | --- |47| `--summary` | `detail: "summary"` — header, tools, files; no messages | |48| (none) | `detail: "preview"` — 3 recent messages | default |49| `--full` | `detail: "full"` — 40 recent messages | |50| `--limit N` | `limit` — sessions per agent, `[1, 5]` | 1 |51| `--since 2h` / `--since 90m` | `since_min` in minutes | 1440 |5253Legacy positional form `[agent] [limit] [message_limit]` still works; a54bare leading integer is the limit, not an agent.5556## Call the tma1 MCP tool5758This project's TMA1 install registers an MCP server named `tma1`. Call59its `get_peer_sessions` tool with the parsed arguments. If your runtime60addresses MCP tools by a prefixed name (`tma1.get_peer_sessions`,61`mcp_tma1_get_peer_sessions`), use whichever convention this Codex62install uses — it's the same tool.6364## Use the returned content directly6566- `sessions` array — identity (`session_id`, `agent_source`, `started_at`,67 `last_activity_at`, `last_activity_ago`, `duration_minutes`, `cwd`),68 volume (`tool_call_count`, `tokens_input`, `tokens_output`), content69 (`messages`, `recent_tool_names`, `files_touched`). On a `self` lookup,70 `is_latest_for_cwd` marks the session you are almost certainly in right71 now — don't report your own current work back as news.72- `most_recent_session` — freshest session's agent + age; lead with it.73- `partial_failures` — `agent → error_message`, present **only** when the74 all-peers fan-out had a failure. **Check it before treating empty75 `sessions` as "no peer activity".**7677When you act on what the peer left:7879- **Quote concrete points the peer made.** Don't paraphrase — the user80 wants the peer's exact feedback in your context, not your summary.81- **List the files the peer touched**, when the next step is "fix what82 they flagged".83- **Surface the timing.** "Claude left this 12 min ago" beats "recently".84- A message with `truncated: true` was cut to fit; fetch the rest with the85 `get_session_transcript` tool for that `session_id`.8687If `sessions` is empty and `partial_failures` is absent, reply88`no recent <agent> sessions on this project in the active window` and89stop — do not fabricate context. If `partial_failures` is present, quote90the failed agent(s) instead of asserting silence.9192## Related tools9394- Searching by keyword instead of by agent → the `tma1-search` skill95 (`search_sessions`).96- Already holding a `session_id` → `get_session_transcript`.9798## Examples99100User: "what did claude leave on this project?"101You: (call `get_peer_sessions` with `agent_source: "claude_code", detail: "full"`)102You: "Claude Code reviewed `server/internal/handler/anomalies.go` 8 minutes ago and flagged three concrete issues:1031. fetchEmits has no LIMIT — body cap will truncate before the query finishes.1042. `applyForceColor` env dedup is libc-dependent.1053. anomalyCache.history map never evicts stale sessions.106Want me to address all three or pick one?"107108User: `/tma1-peer self`109You: (call `get_peer_sessions` with `agent_source: "self"`)110You: "Two of your earlier sessions here today: 14:20 landed the retry fix,11111:05 was the abandoned migration attempt."