Skip to main content
Glama

watch_start

Register an active AI session to enable deterministic Watch message delivery and obtain the required duty ID for subsequent reads and writes.

Instructions

Register this already-open AI session for deterministic Watch delivery.

The returned duty_id is required by every ordinary Watch read or write. Several profiles require an explicit primary_profile for #all replies. replace is an explicit takeover; it is never inferred. This registers only. It does not start polling. Retain monitor_command and use it with a verified host wake-up monitor, or keep watch_wait running in an active loop. A background shell alone does not wake the AI. Never report unattended listening unless a real addressed test reaches this session.

In Claude Code, Monitor is deferred: load it with ToolSearch("select:Monitor"), then give Monitor the returned command directly with stderr redirected to stdout and a 30-minute timeout. Do not use Bash run_in_background. Re-arm Monitor when its timeout fires.

In Codex, continue current project work by default. Poll cooperatively with watch_wait(timeout=0) at natural checkpoints and after blocking commands; do not report empty polls. Handle a delivery, then resume the interrupted task. Use a foreground wait only for explicitly requested pure duty. Ending the turn still ends polling.

Duties expire after 15 minutes without a monitor probe, AI poll, activity update or acknowledgement. Expiry releases the profiles and unfinished deliveries.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
agentYes
modelYes
replaceNo
sessionYes
profilesYes
primary_profileNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.8.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations are minimal (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false), so the description carries the burden. It discloses timing and side effects: 'Duties expire after 15 minutes'; 'replace is an explicit takeover; it is never inferred'; 'A background shell alone does not wake the AI'; 'Ending the turn still ends polling.' It also warns against a concrete failure mode (reporting unattended listening). No contradiction with annotations — registering is a mutation with care requirements, consistent with readOnlyHint=false and destructiveHint=false.

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

Conciseness4/5

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

At roughly 250 words this is long, but the length is justified by genuine operational complexity — delivery mechanics, expiry, and divergent platform behaviors. The structure is sound: purpose front-loaded, then the critical duty_id contract, then per-platform instructions, then expiry. It could be tightened (the two platform blocks are verbose), which keeps this at 4 rather than 5, but every sentence carries operational weight and the hierarchy (purpose before detail) is correct.

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

Completeness4/5

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

With no output schema, the description responsibly covers the return contract — it names both duty_id (required for reads/writes) and monitor_command (needed for completion), and explains the expiry lifecycle. It details the 'what next' for both platforms and the failure modes to avoid. Minor gaps: the semantics of the profiles list beyond the primary_profile note, and what 'Watch delivery' entails, are left implicit. For a complex 6-parameter tool with no output schema, this is strong but not exhaustive.

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?

Schema description coverage is 0%, so the description must compensate. It explains the two genuinely non-obvious parameters: primary_profile ('Several profiles require an explicit primary_profile for #all replies') and replace ('an explicit takeover; it is never inferred'). The remaining params (agent, model, session, profiles) are left to context, but these are largely self-evident given the tool's stated purpose of registering an already-open session. It does not document every parameter but covers the high-risk ones, which is the right allocation given zero schema help.

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 opens with a specific verb-resource pair ('Register this already-open AI session for deterministic Watch delivery') that states both action and scope. It sharply differentiates from siblings by declaring what it is not: 'This registers only. It does not start polling.' This immediately distinguishes watch_start from watch_wait, watch_stop, and watch_reply. Purpose is unambiguous.

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?

Exceptional. The description explicitly routes usage by platform: Claude Code gets 'load it with ToolSearch("select:Monitor")... do not use Bash run_in_background', while Codex gets 'poll cooperatively with watch_wait(timeout=0)'. It gives negative guidance ('Never report unattended listening until a real addressed test reaches this session', 'do not report empty polls') and states prerequisites (verifying a host wake-up monitor). This is the strongest usage guidance dimension I have seen — an agent can act correctly with zero inference.

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