Skip to main content
clideck ask lets one agent session send a question to another active session and wait for the answer. The response prints to stdout so the caller can use it immediately. This is designed for agent-to-agent communication — one LLM agent asks another for help without you in the loop.

Discovery

Before asking, discover who’s available:
This lists active sessions in the same project as the caller. Output looks like:
To see sessions across all projects (with their cross-project addresses):
Add --json for machine-readable output.

Same-Project Ask

When the caller and target are in the same project, use the session name directly:
Or with positional arguments:
The target is resolved within the caller’s project only. If no match is found in the same project, the request fails — it does not search other projects.

Cross-Project Ask

To reach a session in a different project, use the @project/session format:
The project name and session name are both resolved case-insensitively. If multiple projects or sessions share a name, use the ID instead.

Quoting Targets with Spaces

If the session name or project name contains spaces, quote the entire target:
When using --session, the quotes go around the value:

Piping Input

You can pipe a file or command output as the message via stdin:
When stdin is piped, the --message flag is not needed.

Busy Target Behavior

clideck ask only sends to idle sessions. If the target is currently working, the request fails immediately with:
This is intentional — injecting a message into a working agent would interrupt its current task. Wait for the target to finish, or pick a different session.

Timeout

The target is another LLM agent. It may need minutes to read files, think, use tools, and compose an answer.
Accepts durations like 30s, 10m, 1h.
Set both timeouts. clideck ask --timeout controls how long the ask command waits. But if your caller agent’s shell or tool-call timeout is shorter, the shell kills the process first — the target agent may keep working but the caller loses the response. Make sure both timeouts are high enough.
While waiting, clideck ask prints progress updates to stderr every 15 seconds showing the target’s status and elapsed time. Use --no-progress to suppress these.

How It Works

  1. The caller agent runs clideck ask from its terminal
  2. CliDeck resolves the target session (same-project or cross-project)
  3. If the target is busy, the request fails immediately
  4. CliDeck injects the message into the target’s terminal as a bracketed paste, prefixed with [CliDeck ask from <caller>]
  5. CliDeck waits for the target agent to go from working back to idle
  6. The target’s response is captured from the transcript and printed to the caller’s stdout

Full CLI Reference

clideck ask requires CLIDECK_SESSION_ID to be set, which CliDeck sets automatically for sessions launched from the UI. It cannot be used from a terminal outside CliDeck.