Factory

From click to code.

The factory is how a ticket becomes a pull request without you in the middle. Five words to learn, then you know everything.

The five words

Factory vocabulary
WordWhat it isPlain English
AgentThe bot identity that claims, commits and opens the PRYour new colleague. It has a name and you're its manager
Runneraictiq runner on a VPS, laptop or CI hostThe desk your colleague sits at
RunOne attempt at one ticket, by one agent, with one playbookOne shift
PlaybookYour instructions, as a versioned wiki page, plus harness, time limit and end statesThe onboarding doc it actually reads
Rule"When a ticket enters this state (with this label), run this playbook"The thing that means you don't have to click either

Five harnesses, your subscriptions.

Claude Code, Codex, OpenCode, Cursor, GitHub Copilot. Install the ones you like, sign in once on the runner, pick per playbook or per run. Aictiq doesn't resell tokens and adds no markup. If your Copilot plan has premium requests, that's what gets used.

The runner, in one minute.

Install, register with a one-time jrn_ secret, point it at the folder where your repos live (aictiq runner root ~/src), start it. Or let it install itself as a service.

It polls for work, heartbeats every minute, updates itself from npm between runs. If it vanishes for five minutes, the run is failed cleanly, its token revoked, the ticket released. Nothing stays stuck "in progress" forever.

$ npm install -g @aictiq/cli
$ aictiq runner register --url https://app.aictiq.com --token jrn_…
$ aictiq runner root ~/src
$ aictiq runner install-service
# systemd on Linux, launchd on macOS, Task Scheduler on Windows
  • Outbound HTTPS, 25 s long poll
  • 60 s heartbeat
  • Lost after 5 min
  • --parallel 1..16

Setup that checks itself.

Factory → Setup shows an animated diagram of a run and two checklists (the machine, the project) that tick themselves as Aictiq sees each step working: CLI installed, harness found, runner online, running as a service, repo found. Only the stuff no server can see, like your gh login, needs your tick.

Playbooks are just wiki pages.

Your definition of done, your lint and test commands, "do not touch migrations/", "do not deploy". Versioned, reviewable, permissioned like any wiki page. Click Create starter and you get a sensible Implement playbook to edit.

Each playbook also sets the harness, a time limit (up to 720 minutes), the success and failure states, and how to deliver.

Two ways to deliver.

Branch and pull request (default). Or push straight to the default branch for solo and small projects. Branch protection still applies.

Start it however you like.

Button on the ticket. aictiq run start ACME-123. The MCP start_run tool, so an orchestrating agent can delegate subtasks to worker agents. A rule on a workflow state. A mention in a comment.

Schedule it. "Start later" queues a run for a time you pick. The ticket is claimed immediately, so nobody else grabs it, and the runner starts it on time. How scheduling works.

  • Hand to agent on the ticket
  • aictiq run start ACME-123
  • MCP start_run from another agent
  • A rule on a workflow state and label
  • @builder in a comment
  • Start later, prefilled six hours out

Refine before you build.

A refine run turns "button broken lol" into a ticket with context, steps and acceptance criteria. It never commits. If it needs you, it asks up to ten questions in the ticket. Answer, refine again, confirm, and the ticket moves to the column you chose.

Project context (product description, writing style, naming conventions, supported platforms) goes into every refine run. Refining tickets.

When things go wrong (they will, it's software).

  • Rate limited, model overloaded, harness crashed: continued automatically after 1 minute, then 5, at most twice.
  • Timed out or failed: Continue resumes the same agent session in the kept checkout. Retry starts fresh.
  • Want to poke at it yourself: Copy resume command, valid for 5 days.
  • Every failure has a named reason and a fix in the docs. Troubleshooting runs.

Steer from a comment.

@builder the redirect should keep the query string. The agent continues its earlier run on the same branch, or opens a new PR if the old one was merged, and replies in the thread. Only people allowed to run the factory can trigger it. A stakeholder's mention just notifies. Steering from comments.

One machine, many clients.

Freelancer with three clients? Register the same machine in each organization. Each gets its own secret and repo map, and runs from two organizations never execute at the same time.

We're honest about the limit: one OS user is one trust domain. For clients that must not see each other, use separate OS users or VMs. The docs show how.

See what it's costing you.

Factory → Runs shows success rate, duration, cost and tokens across 24 hours to all time. Continue chains add up their totals. Aictiq shows the cost. It doesn't bill it.

Hand your first ticket over today.

No card, no automatic charge. Or self-host everything for free, forever.