Pilot CLI
A CLI that takes tickets from GitHub, Linear or Jira, writes code through Claude Code and opens a pull request for your review
- 727 ★ on the repository
- Last commit
Broad access
Why this level
- Writes and commits code, creates branches and pull requests in the repositories from the config, and in `dev` and `stage` modes merges them itself
- Keeps GitHub, Telegram and other tracker tokens in `~/.pilot/config.yaml` and spends money on model API calls without a manual start
- Takes tasks from external sources (issues, chat, webhooks), so task text steers the agent's actions
Install
- Works in
Manual install
brew install qf-studio/pilot/pilotA short form of `brew tap qf-studio/pilot` and `brew install pilot`. Claude Code 2.1.17 or newer is required.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Writes and commits code, creates branches and pull requests in the repositories from the config, and in `dev` and `stage` modes merges them itself
- Keeps GitHub, Telegram and other tracker tokens in `~/.pilot/config.yaml` and spends money on model API calls without a manual start
- Takes tasks from external sources (issues, chat, webhooks), so task text steers the agent's actions
This is third-party code. Review the repository files before installing.
What it does
Pilot runs Claude Code in the background on tasks from your tracker. You put a `pilot` label on a GitHub issue or message a Telegram bot, and Pilot marks the issue as claimed, creates a `pilot/GH-{number}` branch, plans a solution, writes code, runs tests, lint and build, and opens a pull request linked to the issue. `pilot init` creates the `~/.pilot/config.yaml` config, `pilot start --github` turns on issue polling, `pilot start --telegram` starts the bot, and `pilot task "Add user authentication"` queues a one-off task in the current project. Adapters exist for GitHub, GitLab, Azure DevOps, Linear, Jira, Asana and Slack. Pilot splits complex tasks into subtasks, self-reviews code before pushing and by default waits for the previous pull request to merge to avoid conflicts. The autopilot mode `--env` sets autonomy: `dev` skips CI and merges on its own, `stage` waits for CI and merges, `prod` waits for CI and human approval. A budget caps spending, and `pilot metrics` and `pilot usage` show tokens and cost. The default execution backend is Claude Code, with OpenCode as an option.
Who it is for. For small teams and solo developers whose backlog fills with small bugs, refactors and tests, and who are ready to review an agent's pull requests.
Good fit when
- The backlog holds dozens of small tasks an agent can close from a ticket: bugs, tests, docs, dependency updates
- You want to queue tasks from a phone through a Telegram bot and get a link to a finished pull request
- You want the agent to edit only the projects listed in `~/.pilot/config.yaml`
- You need spend control: budget limits, daily briefs and alerts about stuck tasks
- You want to see the plan first: `pilot task ... --dry-run` shows it without changes
Not a fit when
- The task needs large architectural changes or human judgment: Pilot is built for small backlog tasks
- The code is security-critical: auto-merge in `dev` and `stage` modes passes a change without your review
- You just want a quick helper in an editor rather than a task queue: Claude Code itself is enough
Example request
Install Pilot, connect the owner/repo repository and pick up issues labeled pilot in stage modeLimitations
- Claude Code 2.1.17 or newer and access to the Anthropic API (your own key, Bedrock or Vertex) are required.
- The user pays for token usage. The author estimates a typical task at 0.5 to 2 dollars.
- License is BSL 1.1: internal use, self-hosting and forking are allowed, a competing SaaS is not. After 4 years the code converts to Apache 2.0.
- Building from source needs Go 1.22 or newer.
- Task text from issues and chat goes into the agent prompt as is, so turn on polling only for repositories with trusted authors.
How to disable. Stop the daemon with `pilot stop`, remove the package with `brew uninstall pilot` (or delete the binary installed by `go install`) and the `~/.pilot` directory. Revoke the `pilot` label on issues and the GitHub and Telegram tokens you issued in those services.
FAQ
How does Pilot work with Claude Code?
Pilot drives a Claude Code process: it hands it the task from an issue, manages the branch and checks, and packages the result as a pull request. Set your own key in `ANTHROPIC_API_KEY`; for Bedrock and Vertex use `CLAUDE_CODE_USE_BEDROCK=1` and `CLAUDE_CODE_USE_VERTEX=1`.
How do I stop Pilot from merging code on its own?
Start it with `--env=prod`: in that mode it waits for CI and human approval. The `dev` mode skips CI and merges itself, and `stage` merges after CI. In addition, `wait_for_merge: true` in the config blocks the next task until the previous pull request is merged.
How do I install Pilot with Homebrew?
Run `brew tap qf-studio/pilot`, then `brew install pilot`. Alternatives: `go install github.com/qf-studio/pilot/cmd/pilot@latest` or building from source with `make build`. After installing run `pilot init`.
How do I limit Pilot's spending?
Set hard budget limits in the config. `pilot metrics summary` and `pilot usage summary` show spend by day and project, and cost threshold alerts are configured under `alerts`.
Can I use Pilot in a commercial project?
Inside a company, yes: the BSL 1.1 license allows internal use, self-hosting and modification. You cannot build a competing SaaS on it without a separate license. After 4 years the license changes to Apache 2.0.
Discussion
No questions or reviews yet.
Related
CLI toolsAn agent on your Claude or Codex subscription finds jobs, tailors resumes and applies, with every status shown on a web dashboard.
A CLI that loops Claude Code, Codex, OpenCode and other agents over a task list or PRD until everything is done
Connects Claude Code, Cursor, Codex or OpenCode to Telegram, Slack and Discord: teammates message a bot, an agent replies
Orchestrator for Claude Code, Codex and Gemini CLI: YAML workflows that loop until your own quality gates pass
A Go server that runs Claude Code or Codex on your machine or Kubernetes and delivers the work as a pull request after review
apra-fleet runs a fleet of AI agents across machines and models through MCP and drives multi-hour workflows
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Repository stars | Main difference |
|---|---|---|---|
| Pilot (this card) | no | 727 | |
| Claude Code Action | no | 9,809 | runs Claude Code inside GitHub Actions on a mention, while Pilot is a separate daemon with a queue and tracker adapters |
| Claude Squad | no | 8,738 | manages several agent sessions in a terminal by hand, without reading tickets |
README in short
The page shows the path from ticket to pull request, install options (Homebrew, Go, source, desktop app) and a three-command quick start. Feature tables, autopilot modes, Telegram integration, environment variables, a sample config, a command reference and the architecture follow. The last sections answer questions on safety, cost and license.