Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
duet_startA

Start one Claude->Codex->Claude run and return immediately with its run_id.

delivery_mode decides where the work ends up:

  • direct_branch (the default) works on the branch the repository is already on, so finalize commits there -- to main if that is where the user is. This is what "make this change" normally means. It requires a clean tree and an attached HEAD, because the run edits the checkout in place.

  • review_branch parks the work on a new agent-duet/<id> branch that somebody then has to merge. Use it only when the user explicitly requested a new or separate branch.

Interactive model callers must pass direct_branch unless the user explicitly asked for a new branch. Never infer or suggest review_branch because the working tree is dirty. The argument is required: omission must never inherit a setting that silently creates a branch.

Side effects: creates a durable run record, a branch and private worktree (in review_branch mode), and a detached worker process that will modify files in that worktree. It NEVER commits, pushes, deploys, changes remotes, or rewrites history; publishing is duet_finalize only. Call this once per task, keep the run_id, and poll with duet_wait.

duet_statusC

Return durable status and concise evidence for one run. No side effects.

duet_waitA

Wait briefly for one run to change phase, then return its durable status.

Accepts legacy inputs through 300 seconds, but the effective wait is always capped at 90 seconds so Claude Code keeps the call in the foreground. Keep only one call in flight for a run and wait for its response before polling again. No side effects.

duet_cancelA

Request cancellation and terminate the run's process group.

Side effects: signals the detached worker and its children (SIGTERM, then SIGKILL after a grace period). Files the run already wrote are left in place; nothing is committed, pushed, or deployed. Safe to call more than once.

duet_finalizeA

Publish a validated run: commit, optionally push, optionally verify deployment.

Side effects: creates a real commit and, when push is true, pushes it to the named remote and runs the configured deployment verifier. A local-only commit needs no remote or remote URL. Only ever call this after the user has seen the evidence from duet_status/duet_wait and explicitly approved. Refuses unless the run is exactly AWAITING_FINALIZE and the branch and validated diff fingerprint still match; pushes additionally require an exact remote URL match.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 5 tools

Disambiguation4/5

Each tool maps to a distinct lifecycle stage (start, status, wait, cancel, finalize). The only mild overlap is duet_wait vs duet_status, since both return status, but the descriptions clearly distinguish waiting-for-phase-change from a plain status read.

Naming Consistency5/5

All five tools use the same duet_ prefix followed by a concise verb (start, status, wait, cancel, finalize) in consistent snake_case. The pattern is predictable and readable.

Tool Count5/5

Five tools cleanly cover an orchestration lifecycle without redundancy. Each tool earns its place and nothing feels padded or missing for the stated scope.

Completeness5/5

The surface covers the full run lifecycle: start, poll status, wait for phase change, cancel, and finalize/publish. Nothing essential (create, monitor, abort, commit) is missing for a single-run orchestration model.

Maintenance

ActivitySlowing
ResponsivenessNo issues