Skip to content

About

Turn GitHub issues into reviewed pull requests with unattended coding agents. Claude Code, Codex and more; multi-ticket specs, optional merging, scheduled work, architecture reviews, security audits and a web Console.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

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. Coding agents can start from thirdshift.app/llms.txt, a Markdown index of the manual, the site and the source.

Install

curl -LsSf https://github.com/JacobStephens2/thirdshift/releases/latest/download/thirdshift-installer.sh | sh
thirdshift setup

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:

cd ~/repos/widgets
thirdshift https://github.com/acme/widgets/issues/7

You can also use the issue number from that clone, choose a Harness, or ask for a merge:

thirdshift 7                # leave the pull request ready for review
thirdshift 7 harness codex   # use Codex instead of the default Claude Code
thirdshift merge 7           # also merge the pull request when it is ready

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.
Merged factory work thirdshift score A Scoring run samples and grades it, and proposes Bug origins; thirdshift scores --json lists samples, five criterion Scores, calibration and proposals by week; thirdshift scores <pull request> --mine records yours before revealing the model's.
One skill thirdshift skill <skill> [issue <issue>] A standalone skill runs headlessly and prints its final message.
A Custom process thirdshift process <name> [issue <issue>] An experimental Custom process runs skill, command or catalogue Steps from ~/.thirdshift/processes/<name>.toml, in named throwaway worktrees when the file declares them. The catalogue Step run-published-issue starts a Ticket run or a Spec run on the issue the session Step before it published. An optional Step can fail without stopping the process. issue <issue> gives every session Step that issue. One Issue-branch worktree plus a delivery Step publishes a ready-for-review pull request from that Issue branch and then removes the Claim. A self-merge Step directly after it merges when merge or the User config asks, and a file can only tighten limits. With no issue, and neither an Issue-branch nor a Spec-branch worktree, it is a Pass and skips while the repository is at its Command limit. Status, the Console and the Activity log list it as Process <name>. A failed one is in Needs you, and it sends a Run notification under the same email rules as a Ticket run. A skipped Process sends none. Each Step may name its Harness, Model and Effort, otherwise inheriting the Command's.

A Custom process can use implement → delivery on an Issue-branch worktree for the Ticket run's implementation and bug diagnosis. An unreproduced bug ends successfully with needs-info, skipping later Steps and cleaning up the Claim and worktree.

A Custom process can instead declare a spec-branch worktree and use land-tickets to gather a Spec's Tickets into a draft Spec PR and its checklist, in dependency order up to spec.parallel at once. The Step's process setting selects every child Ticket's Process, defaulting to ticket-run. A file declares one Issue-branch or one Spec-branch worktree, never both; both require an issue, and the issue must match the worktree kind. The Claim precedes the worktree and stays while the draft Spec PR waits.

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:

thirdshift status
thirdshift show 'widgets#7'
thirdshift logs 'widgets#7' --follow

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:

thirdshift console --no-sign-in

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.

These screenshots show the Console's Focus light Theme with sample Commands. Open either image for the full-size view.

Console Inbox: a failed Command in Needs you, two pull requests Ready for review, and the selected Command's details.

The Inbox groups Commands by what needs you. Select a row to inspect its cause, CLI commands and logs alongside the list.

Console Waterfall: a Command's stages and Session tool calls drawn on one time axis, with the slowest calls listed above.

Waterfall expands a Command into stages, Sessions and individual calls, so you can see where the time went.

Console on a server

The Console and status show the serving OS account's Commands by default. To add readable Commands from other local accounts, use thirdshift console other-accounts readable (or a comma-separated list of account names). Other-account Commands show their owner and are read-only. See account visibility for filesystem access requirements.

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

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.

Links from the former README manual

These section links keep older bookmarks useful. The complete explanations now live in the user manual.

About

Turn GitHub issues into reviewed pull requests with unattended coding agents. Claude Code, Codex and more; multi-ticket specs, optional merging, scheduled work, architecture reviews, security audits and a web Console.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages