Connect, brief, loop. A session is keyed on its token and its project. It reads the brief, asks next_steps what comes first, does it, and asks again. When its commitment is spent or nothing is ready, the first step is stop.
Getting connected
- Sign inA person signs in on the web with GitHub. Invite-only.
- Mint a tokenOne per session, labelled, revocable. Only its hash is stored.
- Install the clientA small bridge and hooks beside the AI tool. One command, which shows what it will change first.
- The interviewThe person answers a short form in their AI tool: expertise, tools and models, commitment.
- Confirm the sessionEach new session confirms its commitment, model and effort in one call.
The interview's questions go to the person, not the agent. Where the AI tool can show a form, the answers come back marked as typed into that form. Where it can't, the agent relays them, and they are marked relayed. The questions are fixed: no owner can add one, none asks for a credential, and none sets a role.
The loop
next_steps puts builds, reviews, follow-ups and requests before planning, and gives each step an exact call its tool accepts. Where the AI tool has subagents, each piece goes to a fresh one.What the client on each machine does
| Part | Does |
|---|---|
| The bridge | A local MCP server the AI tool starts. It passes tool calls to Anacreon, holds one connection open for messages, and pushes each one into the session so it starts a turn even when idle. It also passes forms through to the person. |
| At session start | Fetches the brief into the session. |
| When a turn ends | Reports usage read from the tool's log, holds the session on an unread blocking message, and checks the record's head still extends the last one this machine saw. |
| After tool calls | Brings blocking messages mid-work and renews held claims. |
| The runner | An unattended loop that takes one request or piece at a time, each in a fresh session inside a container holding only a copy of the project's code. It stops when its commitment is fulfilled. |
None of it can block the person's own work: if Anacreon is unreachable, the session carries on.
Every tool, by what it means to the whole
A session is shown the tools its role uses, each with a one-line description, and help holds the longer rules. These are the MCP tools a project's sessions call.
| Group | Tools | What it means to the project |
|---|---|---|
| Orientation | brief whoami next_steps my_work recap help | Every session starts from the same truth and reports state from the record, not from memory. |
| Finding work | open_pieces list_chunks project_map find_item | One definition of ready behind every list, so agents never disagree about what can start. |
| Taking and doing it | claim_piece claim_chunk release work_packet post_progress heartbeat | No duplicate work, and no lost work: a lapsed claim keeps its branch and progress. |
| Planning | claim_plan submit_plan get_plan withdraw_plan | Plans are work of their own, short by rule, and hold the map in place once accepted. |
| Review | submit_review accept_item return_item accept_plan return_plan | Nobody accepts their own work. A chunk is accepted only by a person, through a form their AI tool shows them. |
| Deciding | record_decision propose respond_proposal list_proposals get_proposal list_decisions get_decision | Tier 1 and tier 2, each written down with its reason. |
| Asking | ask list_questions get_question withdraw_question | Tier 3. There is deliberately no tool that answers a question. |
| Waiting | wait_on unwait wait_for_messages | A parked session is told when its gate closes, instead of polling. |
| Talking | send inbox ack read_room | Messages labelled with their sender, always information, never instructions. |
| Requests | open_requests take_request renew_request respond_request release_request | Small jobs for whoever has usage to spare, answered in the item's room. |
| Meetings | save_transcript link_transcript_section file_draft withdraw_draft draft_decision | Conversations become drafts citing their lines. Only a person confirms one. |
| Cost | estimate get_estimates report_usage contribution_mode contribute_prompt | Estimates sized by what work touches, and a labelled path for tools whose logs can't be read. |
| The record and the code's map | ledger_proof index_outline index_concept index_for_path | Proof the history only grew, and a map of the code's ideas so agents read less. |
| Joining | join_project update_profile submit_join_answers confirm_session | The interview, answered by the person. |
| Owners' authoring | create_project update_project add_chunk update_chunk publish_piece set_plan_need add_dependency set_member_role preview_seed apply_seed admin_accept | The same services the page uses, with the same rules. Anything that would widen who may act stays on the page. |
The pages people use
| Page | For |
|---|---|
| Overview | The vision, what waits on you, the start prompt to paste into a session, and your contribution switch. |
| Map | Every chunk and piece, drawn in 3D and coloured by state; on a phone, a searchable list. Each part opens its room. |
| Reviews | Plans and work waiting for a person. |
| Questions and decisions | Where owners and decision-makers answer, and where everyone reads what was decided. |
| People | Who is working now and on what, members and roles, and the membership log. |
| Record | Recent decisions, estimates, usage by member, model and item, flagged sessions, and the chain's Verify button. |
| Settings | Every project setting with who last changed it. |
Every page works without scripts.
The exact rules: sessions Deeper
- A session is one token in one project. Nothing it does crosses into another project.
- Every call records the session's activity, which is what renews its claims.
- The brief is summary first and short enough for an AI tool's start-up limit, with a cursor so nothing is shown twice or skipped.
- The work packet is at most 12,000 characters: the brief, the accepted plan, the cited decisions' summaries, conditions on answers, review facts and the concepts the piece touches. What doesn't fit is named, with the call that fetches it.
- What one member writes in one project is rate-limited per hour; an owner may raise the limits on the page.
- When a project's agreement changes, its members' sessions are offered no new work until their person accepts it again. Claims already held carry on.