Skip to main content
Glama

List peer sessions

peers
Read-only

List live Codex, Claude Code, and opencode sessions you can message, including state, working directory, and durable ID. Call before sending to confirm current names and availability.

Instructions

List the live Codex, Claude Code, and opencode sessions on this machine that you can message. Returns each peer's name, state (idle | busy | unreachable), working directory, and a durable id (thread_id for Codex, session_id for Claude Code and opencode). A peer carrying status_unreadable is reported busy as a safe default, not because it was observed busy — treat it as busy, and do not report its state as a fact. Show display_label to the user: unnamed sessions use project · short ID. When display_label differs from name, also show the full durable ID for copying. Use name, not display_label, when calling send_peer. This session is never in the list; self is the address that reaches it — give self.name (or self.canonical_id) when asked for your own peer name, never a bare session id, which send_peer does not accept. Also returns tincan_version: the Tin Can serving this call, and per peer the version its own Tin Can recorded — report those rather than shelling out to tincan --version, which reports whatever is on PATH instead of what is running. Call this before send_peer: names change and sessions come and go.

Input Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond readOnlyHint and openWorldHint, the description explains key runtime behavior: status_unreadable is reported as busy as a safe default and must not be treated as an observed fact; self is never listed and must be addressed separately; and tincan_version fields reflect the serving process rather than the PATH binary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and return shape, then packs in only operationally necessary rules about display labels, self addressing, status_unreadable, and version reporting. Every sentence carries useful guidance, despite the dense single-paragraph structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no parameters, the description carries the burden of explaining return values and does so thoroughly: peer name, state, working directory, durable IDs, display_label guidance, self addressing, and tincan_version semantics are all covered. An agent has enough context to invoke and interpret the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

This tool has zero parameters, so parameter semantics are not applicable; the baseline for a no-parameter tool is 4. The description instead adds useful meaning about the data returned by the call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: it lists live Codex, Claude Code, and opencode sessions on this machine that are messageable. It clearly distinguishes this discovery tool from send_peer by describing the returned peer identity/state fields and by saying to call this before send_peer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit usage guidance: call this before send_peer because names change and sessions come and go, use name rather than display_label when calling send_peer, and use self rather than a bare session id for the current session. It also tells the agent not to shell out to tincan --version for version reporting.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.