Harbor

Run ten tasks.
Keep track of all of them.

Harbor keeps every Claude session, PR and ticket in one list, and tells you which one needs you next.

Works with

macOS 12 or later·Signed and notarized·Free

  • Runs real Claude Code sessions
  • Human in the loop where it matters
  • Auto-classifies the next step
  • Configurable to how you work
Interactive demo
Harbor
0 running

Why it's worth running

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.

Releases

Installed copies update themselves. Here is what changed.

v0.3.14 Latest
  • A sound plays when a Claude session finishes its turn.
  • Clicking a notification opens the task it is about.
  • Claude Haiku picks the suggested next button, one per task.
  • Edit the Work prompt before a session starts.
  • “Requested review” is what others ask of you; “In review” is your own open PRs.
  • Merge conflicts show only once GitHub confirms them.
  • Sync catches up when you come back after being away.
  • Stray shells on Harbor’s tmux server are cleaned up.
v0.3.13
  • Each board section reads as its own band; Backlog and Done fade further back.
v0.3.12
  • Runs are judged from their last message, and a finished run’s chip says one consistent thing.
  • Answer shows only when Claude’s last message actually ends in a question.
  • PR badges keep one color, with the PR’s state as marks beside it.
  • Reviewers show their GitHub photo.
  • Syncs every minute by default, set with one integrations.pollMs.
  • Draft PRs stay out of the Assigned feed.
Older releases
v0.3.10 – 0.3.11
  • The claude-cli classifier loads your Claude settings and runs the same claude as your sessions.
  • Link PR offers your open PRs from a GitHub search.
v0.3.9
  • Board search covers each task’s chats, not just its title.
  • Action-bar runs start with the task’s context, like Work does.
  • A CLAUDE.md next to config.json, so Claude can adjust your config for you.
  • Reorder board sections in Settings.
v0.3.8
  • Open PRs link themselves to the tasks they implement.
  • Per-section next steps: choose which buttons the classifier may suggest where.
  • GitHub sync over REST with ETags, lighter on rate limits.
v0.3.7
  • New “Needs your review” section for PRs waiting on you; section order is configurable.
  • Select text in a terminal and ⌘C it, like any terminal.
v0.3.6
  • Runs keep their session after finishing; Pause ends it, clicking the tab resumes it.
  • PRs assigned to you sync in as tasks.
  • Copying from tmux reaches the system clipboard.
v0.3.1 – 0.3.5
  • Configurable action-bar buttons, and a Restart button.
  • Fixes for the packaged app: a launch crash, terminal glyphs, and launching claude through your login shell so it resolves exactly as in your terminal.
v0.3.0
  • Auto-update: Harbor downloads new versions in the background and installs them on restart.
v0.2.0
  • First release: Linear and GitHub sync, one Claude Code session per task in tmux that survives quitting Harbor, Backlog and Resume, Linear sign-in, and the next-step classifier.