Orca is a Bun + Effect CLI that plans software work from Linear, expands blockers into the queue, and can execute the next actionable issue in an isolated git worktree.
- Bun
ghauthenticated for the repo you want Orca to open pull requests against- A Linear workspace you can authenticate against
weaveinstalled locally so Orca can sync tracked pull requests with the base branch before falling back to manual merge-conflict resolution
bun installbun run orca init --repo owner/name --linear-workspace peteredmThis creates repo-local Orca config in ./.orca/repo.json and infers verification commands from package.json.
--linear-workspace is optional. When set, Orca only considers issues from that Linear workspace slug for orca issues list, orca status, orca serve, and orca run next.
Before Orca starts maintaining tracked pull requests, configure the repo-local weave merge driver:
weave setupOrca expects weave to be available in the repo and will use it when syncing tracked pull request branches with the base branch.
bun run orca linear authOrca starts a local OAuth callback server on http://localhost:34338/callback, prints an auth URL, and stores the session under ./.orca/.
bun run orca issues listThe planner includes:
- issues in the configured Linear workspace, when
linearWorkspaceis set in./.orca/repo.json - issues tagged with the configured Linear label (default
Orca) - incomplete blockers of tagged issues
- incomplete child issues needed to unblock tagged work
It prints actionable work, blocked work, and a dependency graph.
bun run orca serveThis polls Linear every 30 seconds and prints a mission-control snapshot with the current stage, the next item up, and the queue state.
bun run orca statusThis prints the same high-level snapshot once without starting the polling loop.
Run one issue once:
bun run orca run nextOr continuously execute the top actionable issue:
bun run orca serve --executeIn execution mode, Orca fetches the latest origin/<base-branch>, creates a git worktree under ./.orca/worktrees/ from that remote base to reduce avoidable merge conflicts, runs the configured verification commands, pushes a branch, and opens a draft pull request.
bun run orca init- create or update repo-local Orca config, including optional Linear workspace scopingbun run orca linear auth- authenticate with Linear via OAuth PKCEbun run orca issues list- show actionable and blocked Orca workbun run orca status- show the current mission-control snapshotbun run orca serve- poll Linear and keep the mission-control snapshot updatedbun run orca run next- execute the top actionable issue once
You can also build the standalone CLI binary with:
bun run buildVerify the repo with:
bun run check
bun run test
bun run buildOrca starts from Linear issues in the configured workspace, when one is set, then selects issues tagged with the configured label (default Orca), recursively pulls in incomplete blockers and child issues, and sorts actionable work by effective priority and creation time. Direct Orca issues use their own priority; inherited blockers use the most urgent priority of the Orca-tagged issue they unblock.