Claude Code is fast enough that the bottleneck is you: remembering which terminal was waiting, which PR went red, which one got review comments an hour ago. Harbor keeps track so you don't have to.
A classifier decides what needs you
Claude Haiku reads each session's last message alongside the PR's checks, review comments and git state, then picks one button per task: Fix CI, Address comments, Merge, Answer. Hover the button to see its reasoning.
Real Claude Code sessions
Not a wrapper or a chat box. Every task runs the actual claude CLI in a real terminal, with your settings, your MCP servers and your subscription. Each task works in its own git worktree, so parallel sessions never collide.
Sessions survive anything
Sessions live in tmux, so quitting Harbor doesn't stop them; relaunch and they're reattached. A hung session restarts onto the same conversation with claude --resume, and a shelved task picks up right where it left off.
Linear and GitHub, built in
Linear tickets assigned to you show up as tasks; press Work and Claude starts with the ticket as its prompt. PRs, checks and review comments come from GitHub through your own gh login. Harbor holds no GitHub token.
Configure all of it
One JSON file with schema autocomplete. Every action-bar button is a prompt, a /skill or a shell line with ${branch}, ${ticket} and ${prUrl} filled in, so your own workflows become buttons too. Set the model, effort and permission mode for sessions, the board's sections, and the classifier's model and daily budget. Or just open a session in the config folder and tell Claude what to change: Harbor leaves a CLAUDE.md there that explains every key.