thirdshift
A factory that turns GitHub issues into ready-for-review pull requests with unattended coding agents. The humans are the day shift; the agents work the third shift while you do something else.
Use Claude Code, Codex, Antigravity CLI, Grok Build, Muse Code or OpenCode, logged in as you. Runs use the selected agent's plan or account; thirdshift itself is free and open source.
Each Ticket run implements the issue, reviews the change against the issue and your repository's standards, and keeps the pull request mergeable and passing CI. It leaves the pull request for your review, or merges it when asked. If a run fails, it reports what work was preserved and how to continue.
Read the user manual here on GitHub or on thirdshift.app. For a visual introduction, see How thirdshift works.
Install
|
The installer puts a single binary in ~/.local/bin; no Rust toolchain or checkout of this repo is needed. Supported: x86_64 Linux (Rocky, Ubuntu and WSL2) and Apple Silicon macOS. See supported versions and other installation methods.
Have git, authenticated gh, and one of the supported coding agent CLIs installed. Set git's user.name and user.email and make sure it can push. Prerequisites and permissions covers setup and access: sessions run unattended as your user, with access to that account's files, credentials and tools.
Use thirdshift update to update a shell-installer copy.
Usage
From a clone of the issue's repository, on the branch you want the pull request to target:
You can also use the issue number from that clone, choose a Harness, or ask for a merge:
These examples use the default settings. Command options override your User config; --no-merge leaves a pull request for review even if your defaults request merging.
The Ticket run works in its own git worktree. Your checkout's uncommitted changes stay out of it; push any Base branch commits first. thirdshift watches CI and starts Repair sessions for merge conflicts or failing checks. Run the same issue again to continue existing work.
Use thirdshift help for the command reference, or read Ticket run behavior, command options and failure recovery.
Workflows
| Start with | Command | What happens |
|---|---|---|
| One GitHub issue | thirdshift 7 |
A Ticket run delivers one pull request, with optional Self-merge. |
| An issue with sub-issues | thirdshift 42 |
A Spec run works through Tickets in dependency order, in parallel where possible, and delivers one Spec PR. |
Issues marked ready-for-agent |
thirdshift pickup |
A Pickup run takes the lowest-numbered Ready issue. |
| Architecture improvements | thirdshift architect |
An Architect run reviews the codebase, publishes a plan and builds it, or files an idea for triage. |
| A security audit | thirdshift secure |
A Security run records findings privately; fixing a reproduced finding is optional. |
Each Architect, Pickup or Security run makes one pass. Use cron or another operating system scheduler to repeat it. See scheduling, Architect runs every few minutes and Security runs on a schedule.
Monitor and manage work
From another terminal, inspect this machine's work across repositories:
status groups Commands by what needs you, what is ready for review, what is landing and what is still working. show includes stages and child Ticket runs. Session traces retain agent events and timed work; you can inspect the span tree or export a Command's whole Trace.
For a live browser view of the same Inbox, with stages, logs and Session traces:
Open the localhost address it prints. The Console never starts work. Use thirdshift stop <command> to stop a live Command and wait for cleanup; add --requeue to return its issue to Pickup. A signed-in Console account can do the same.
Console on a server
The Console can run as a persistent service behind HTTPS and sign-in. See server installation for configuration, passwords, the generated Linux installer and Caddy, Apache or nginx setup.
Documentation
- Configuration, Harness, Model and Effort, and email notifications.
- Machine status, showing Commands and reading logs, and stopping a Command.
- Console installation and Console Themes and browser tests.
- Host resources:
thirdshift resources --jsonand the Console's Resources page show RAM, CPU load and configurable limits that delay new sessions. - Building and testing and releasing.
- Exact prompts and Factory skills, also readable on the site.
- Domain vocabulary and architectural decisions.
- Open issues for known gaps and planned work.
Credits and license
Released under the MIT License. Factory skills include work by Matt Pocock, Dex Horthy and Cloudflare. See full credits and license notices.
These section links keep older bookmarks useful. The complete explanations now live in the user manual.
- What a Ticket run does
- The Claim
- When the Claim ends
- Status
- Machine status
- Show and read one Command
- Updating
- Supported platforms
- Prerequisites
- Unattended sessions
- What sessions leave behind
- Usage and cost
- User config
- Harness, Model and Effort
- Run notifications
- Stopping a Command
- Logs
- Foreign commits in a Ticket run that Self-merges
- Base fix
- One Base fix per Base branch
- Continuation
- Failed ticket runs
- An Inherited failure links the Base branch's checks
- Spec runs
- Architect runs
- One Run notification
- No Strong candidate
- An Architect idea waits for triage
- A Ready issue goes first
- One at a time
- One Architect plan at a time
- On a schedule
- Architect runs every few minutes
- Security runs
- Security review
- Security runs on a schedule, with fixing allowed
- Pickup runs
- The Claim limit
- The Sweep
- Why an issue was passed over
- One Run notification for the issue taken
- A Pickup run on a schedule
- Building from source
- The Rust version
- Releasing