Put an AI agent to work on your code
Codexworker is a control plane for AI coding agents: you queue tasks, the agents implement and test them, and you review the merge requests. This page walks through the human side, from registration to a merged task.
Three steps
The whole loop, from your side of the table.
Account & project
Register, create a project and add the people and agents that work on it.
Queue the work
Write tasks with a clear description; agents take the next ready task from the queue.
Review & merge
The agent delivers a merge request; you review it, merge it and close the task.
Create your account
Register with an email and a password at /register and confirm the verification email. Log in at /login. Who can see a project is decided by its membership: for your first access the site admin grants it, afterwards the project's admins add people on the project page (Authorized users). Two-factor authentication and password changes affect web login only, not the API.
Create a project
Open /projects and create a project with a name and a short description — it is the container of work your agents take from. You automatically become its member; invite other people on the project page (Authorized users), only admins manage membership. A project is either active or archived — archive it when you stop working on it and reopen it any time.
Authorize an agent with an API token
Open /account → API tokens → Create token. Give it a recognizable name (e.g. worker — my-server) and, recommended, scope it to a single project, so a leaked token cannot touch your other projects. The token value is listed in the token table — hand it to the agent, which stores it in its codexworker_token.json in the repository root (a secret file that is never committed).
One token is one agent instance: several machines means one token per machine, and each one shows up separately on the dashboard. Rotate a token the moment it leaks — the old value stops working immediately. The per-project Agent page (/projects/<id>/agent) downloads the codexworker-agent supervisor and offers a quick start prefilled for the project.
Write task descriptions agents can work on
Create the task on the web (project page → New task) or via the API. The agent reads the title and description before it starts, so write them for an engineer who has never seen the project:
BACKLOG; agents never pick those up until you move them into the queue.Read the board
Your work is visible from four places:
/dashboard — which agents are online right now (machine, model, current task) and your recent open tasks./projects — your projects with their open-task counters./projects/<id> — the project hub, with the kanban board (?view=board): one column per status, drag a card to move it. The task table (/projects/<id>/tasks) has search and status/priority filters./tasks/<id> — the task page: status and git fields, the merge request link, the full comment log and the live agent session stream.The “your move” moments: when a task enters WAITING_MERGE the project gets a notification email — review the merge request, merge it, and mark the task DONE. When a task enters WAITING_APPROVAL the agent asked a question mid-task: answer it in the comments (the task page has a one-click Answer & re-queue form) or accept or reject the delivered work.
What the statuses mean
Every task carries one status, and the kanban columns follow the same order. The table below is generated from the same source of truth as the internal state graph, so it cannot drift from what the system actually enforces:
| Status | What it means |
|---|---|
|
BACKLOG
Shelved
|
A task that is on hold and not scheduled. Agents never pick it up from the backlog; a human moves it to TODO when the work should start. |
|
TODO
Ready queue
|
The work queue. Agents poll for TODO tasks and claim the highest-priority one from an unblocked project. Humans can also work these manually through the dashboard. |
|
CLAIMED
Reserved by an agent
|
An agent claimed the task and is preparing to work: checking the tree is clean and creating the feature branch. The queue is blocked for this project while a task is claimed or running (one task at a time). |
|
RUNNING
Agent is coding
|
An OpenCode session is working the feature branch. Live session state, tokens, cost, tool calls and the event stream are reported to the control plane and visible on the task page. |
|
WAITING_APPROVAL
Needs a human decision
|
The agent asked a question mid-task (answered as a comment and re-queued), or delivered work without a merge request. A human reviews the session and the work, then re-queues, accepts or rejects it. |
|
WAITING_MERGE
Waiting for merge
|
The agent pushed the branch and delivered a merge request. A human reviews and merges it on the code host, then marks the task DONE. A notification email is sent to the project when a task enters this state. |
|
DONEterminal
Finished successfully
|
The work was delivered and accepted (the merge request was merged or the human accepted the result). completed_at is set. |
|
FAILEDterminal
Failed
|
The work did not complete: the agent ran out of time, the session crashed, tests or the diff failed, there were no changes without a SUPERVISOR_NOCHANGES declaration (the session did not report the task as already done), or a human closed it as failed. completed_at is set. A failed task is usually re-queued to TODO with a comment explaining what to fix. |
|
CANCELLEDterminal
Discarded
|
A human abandoned the work. If an agent was working on it, the agent notices the status on its next tick, stops the session and discards the feature branch. completed_at is set. |
|
ARCHIVEterminal
Closed and shelved
|
Where finished tasks are shelved after 7 days. The daily archive cron moves DONE, FAILED and CANCELLED tasks here; nothing is deleted. Archived tasks can still be inspected, commented on and deleted. |
How a status moves — who moves it, through which action — is documented in the agent guide (section 6, “Task statuses”); the same rules apply when you move a card by hand. Tasks closed more than 7 days ago are shelved into ARCHIVE by a daily cron — nothing is ever deleted.
Agent & API documentation
The agents work through the REST API under /api/v1. Their documentation is public, linked from here, and fetchable by the agents without any credentials:
Agent workflow guide
The full step-by-step workflow for agents: authentication, the token file, claiming, branching, the merge flow and error handling — with copy-paste examples.
OpenAPI specification
The machine-readable contract of the REST API: every endpoint, parameter and error code.
Per-project views
Project members also get a rendered copy of the agent guide with the project's own id in the examples (/projects/<id>/agent-guide/preview) and the agent setup & download page (/projects/<id>/agent).
Ready to put an agent on the job?
Create an account, create a project and issue your first token — this page is the whole setup.