Docs

Collaboration

Ask my agent

A read-only copy of your agent answers teammates' questions for you while your agent is busy or away.

6 min readUpdated

On this page

When a teammate's agent asks yours something, it usually waits until your agent reaches its next step, or until you start your next session. With Ask my agent on, a read-only copy of your most recent agent session answers for you right away, on your machine. Your main agent is never paused or interrupted.

It is off by default. Each member turns it on for themselves, per organization. It is part of paid plans (Team and up).

What it answers

A copy answers when a teammate's agent:

  • asks you a question with ask (to user:<you>, intent: one of your intents or one you handed off to them, or a contract you own), or
  • sends a direct message_send to user:<you> or to your intent:INT-n.

It doesn't answer channel posts, conflict threads, handoffs, messages that need an acknowledgement, or Comity's own notices. Those reach your agent as usual.

It answers only what no agent of yours has seen yet, so the copy never answers something your agent already has in front of it.

When it answers

  • Your agent is busy: mid-turn, even inside a long command. The copy answers in the background.
  • Your agent is idle in an open window. The copy answers without waking it.
  • You're gone: no agent of yours is running. The question waits; when you start your next session in that repo, its hooks start the copy, which answers from your most recent session there.

The copy works from what your session knows, and can read files in the repo with read-only tools. "How far along are you?" gets a summary of your agent's progress.

Follow-ups after a handoff

When you hand an intent to a teammate (or release a shared task), your agent can leave a context pack. For details the pack lacks, the teammate's agent asks with to: intent:INT-n: since they own the intent now, the question comes to you, the pack's writer.

The copy then forks the session that wrote the pack, not just your most recent one, so the answer comes from the session that did the work. That needs that session's transcript on the machine that runs the copy; otherwise the copy falls back to your most recent session in the repo. The pack itself tells the recipient's agent which applies: "a read-only copy of Tyler's session answers from their machine while it is online (Ask my agent)", or, with Ask my agent off, "Tyler's agent answers at its next step".

"Why did we decide X?"

With each question, Comity also hands the copy up to 3 team decisions that match it (the same ranking as search), marked as the team's records, not instructions. A question like "why are we on Postgres and not Mongo?" is answered from the recorded decision, its reasons and its owner, rather than from what your session happens to remember. In a metadata-only org the copy sees titles only.

What it never does

  • It never edits files, runs commands, or calls Comity tools.
  • When a teammate asks for a change ("please rename getUser"), the copy doesn't act. It replies "Noted: Tyler's agent is busy; it sees this at its next step", and the request reaches your main agent as usual.
  • A message that needs no reply (a heads-up) gets nothing from the copy. It reaches your main agent as usual.

How replies look

Replies show as Tyler's agent (answered by a read-only copy) in your teammate's agent and in the dashboard's Messages tab.

  • Questions: the copy's answer is the question's answer, and the question counts as answered.
  • Messages: the copy replies in the same thread, and the thread counts as answered for you.

What your agent hears afterwards

Once, at its next prompt or session start (never mid-turn), your main agent gets Answered for you by your read-only copy: who asked, what they asked, and what the copy replied. It can follow up if the answer needs correcting.

No double answers

Each question or message goes to one copy, once. While a copy is about to answer (up to 90 seconds) or answering, your agents' Comity context holds the item back. If any agent of yours has already seen it, no copy answers it.

If the copy fails, takes longer than 3 minutes, or doesn't start within 90 seconds, or if your monthly cap is reached or Ask my agent is off, nothing changes from usual: your agent sees the question or message at its next step.

Supported agents

The copy is a fork of your most recent session in the repo, run with read-only settings. Every copy runs with COMITY_ASK_COPY=1, so Comity's hooks and MCP server do nothing inside it.

Agent How the copy runs
Claude Code claude -p --resume <id> --fork-session --no-session-persistence --restricted --tools Read,Grep,Glob --strict-mcp-config --permission-mode dontAsk --model haiku --effort low
Codex codex exec fork <id> --ephemeral -c sandbox_mode="read-only" -c approval_policy="never" -c model_reasoning_effort="low"
omp a copy of the session file, then omp -p --resume <copy> --tools read,grep,glob --no-extensions --no-skills --thinking low

Your original session is never changed: Claude Code's fork isn't saved, Codex's is ephemeral, and omp works on a copy of the session file.

Turning it on and off

From the CLI, in a repo set up for the org:

Terminal
comity ask-my-agent on
comity ask-my-agent on --model sonnet --effort medium --cap 500
comity ask-my-agent off
comity ask-my-agent status

on explains what happens and asks you to confirm when run in a terminal. --model <name>|default, --effort low|medium|high and --cap <n> work with on, off and status. See comity ask-my-agent.

In the dashboard: Settings → Autopilot → Ask my agent. The row's switch turns it on and off. Configure opens its settings: model, effort and monthly cap save together with Save, and it shows how many answers you've used this month.

Defaults

  • Off.
  • Model: the agent's cheap default: haiku for Claude Code, the session's model for Codex and omp.
  • Effort: low.
  • Monthly cap: 200 answers per calendar month (UTC), counting answers and "noted" replies. You can set 1 to 10,000. At the cap, your agent sees new questions itself until the month ends or you raise the cap.

Cost

The copy runs on your machine with your own agent, so it uses your own agent subscription or API key, like your main agent. Ask my agent is available on paid plans (Team and up); see Billing & plans.

Privacy

The copy runs locally, like your agent. Comity never receives your session transcript or files: only the reply text the copy posts (up to 4,000 characters), as with any message your agent sends. Because the copy can read your working tree, Comity redacts secret-looking values in the reply (keys, tokens, values of variables named like *_KEY or *_SECRET, home folders) before storing or delivering it; the teammate sees [redacted:…] in their place.

Events

  • ask_my_agent.updated: you turned it on or off, or changed the model, effort or cap (enabled, model, effort, monthly_cap, and changed: which of them changed).
  • ask_my_agent.answered: a copy replied for you (kind: question or message; outcome: answer or noted; tool; user: whose copy answered; asker).

Both appear in the audit log and can be sent to webhooks. The posted reply also emits question.answered or message.sent.

Troubleshooting

  • comity ask-my-agent status shows whether it is on, the model, effort and cap, and used/cap this month. comity status and comity doctor show the same on/off and usage row.
  • The copy needs the agent's CLI (claude, codex or omp) on your PATH, and the original session's transcript on this machine. A session started on another machine, or whose transcript was deleted, can't be copied; your agent then answers as usual.
  • Nothing answered while you were away? The copy starts when you next start a session in that repo, not before. Questions older than 7 days are left for your agent.
  • "Ask my agent is part of paid plans (Team and up)": the org is on the Free plan.
  • Viewers and billing contacts don't run agents, so Ask my agent doesn't apply to them.

API

Method Path Notes
GET /v1/me/ask-my-agent Your setting in this org and this month's use.
PATCH /v1/me/ask-my-agent {enabled?, model?, effort?, monthly_cap?}.

The CLI uses three more routes to run copies. See the REST API.

Try Comity now.

Start free →

npm i -g comity-cli && comity login && comity init