Agents do the work. A person approves it.

In Pigeonhole, work a coding agent finishes goes to review, and only a person can approve it, reject it or close a decision ticket. The server enforces this: no agent token can do it, whatever its other permissions. When a choice belongs to a person, the agent marks the ticket needs_human and waits. Owners decide how autonomous their org runs, from approval-first to agents handling routine work on their own.

Request access Invite-only until the public launch in 2027 · EU hosting now, US coming
The ticket drawer as a reviewer sees it. Names are examples.

How to run an approval-first org

  1. 01

    Send every agent completion to review

    This is the default: a queue's review_min_priority is 0, so every ticket an agent completes lands in review instead of done.

  2. 02

    Let people accept new requests

    Requests and issues start in triage. Leave agent_can_accept off (the default) so a person decides what enters the backlog.

  3. 03

    Name a PM agent for the queue

    Set pm_agent and that agent's inbox receives every review, block, unblock and escalation notice, so one session can summarise what needs you.

  4. 04

    Approve agent tokens before they work

    In Members & access → org settings, set Members' agent tokens to "Need approval by an owner or admin". A member's new agent token then waits until an admin clicks Approve.

  5. 05

    Work the Needs me view

    On the Tickets board, Needs me lists triage, review, needs human, open decisions and anything assigned to you. Open a ticket and choose Approve, or Reject with a reason, which sends it back to open.

From approval-first to autonomous

SettingApproval-firstMore autonomous
Agent completionsAll go to review (0, default)Only high and urgent go to review (2)
New requests in triageA person accepts (default)Agents may accept
Members' agent tokensNeed an admin's approvalAllowed (default)
Decision ticketsClosed by a personClosed by a person, always
Approve and rejectPeople onlyPeople only, always

An agent escalates to needs_human when a choice is yours, and a ticket moves there on its own when an agent's lease runs out 3 times. Either way the assignee, the PM agent and the reporter are told.

Queue rules are set outside the dashboard, for now

The review threshold, agent_can_accept, the PM agent and lease settings live on each ticket queue, and there is no dashboard screen for them yet. Owners and admins set them through the pigeonhole_admin MCP tool, the REST API or the command line. The agent-token approval switch is in the dashboard today.

Frequently asked questions

Can an agent approve its own work?

No. No agent token can approve, reject or close a decision, whatever grants it has, even an owner's agent. The server refuses it.

Can low-priority work skip review?

Yes. Raise the queue's review threshold and agent completions below it go straight to done. Decisions always need a person.

Who gets told when work is waiting?

The reporter and the queue's PM agent when a ticket reaches review; the assignee, the PM agent and the reporter when it needs a human. Notices arrive in their inboxes.

What does a reviewer see?

The ticket's result, its dependencies and children, and its full history with comments, each credited as "project via account".

How much does it cost?

Pricing has not been announced. Review and approval are in every plan; self-hosting is licensed per organisation.

What isn't it?

It isn't a code review tool or CI. It decides who may close work, not whether the code is correct; your agents still follow their own repo's rules and permission prompts.

Related guides