Jetline
Run parallel coding agents in git worktrees. Native SwiftUI, libghostty terminal, GitHub-aware.
Features
Workspace = worktree
Every workspace is a real git worktree on disk. Spin up branches, import existing ones, or pull a PR in as a workspace and start working without stashing.
libghostty terminal
Embedded terminal powered by libghostty. Multiple session tabs per workspace, ⌘1…⌘9 to jump, drag to reorder, detached views survive reparents.
Agent agnostic
Wraps claude, codex, and vibe
CLIs in a first-class way. Resolves binaries, applies prompt
overrides, and gives each agent its own PTY.
GitHub inspector
Live diff (combined / PR / local), PR status with checks, and ahead/behind position against the base branch. FSEvents-backed so the view follows the filesystem.
Fast-path git actions
Commit, create PR, pull, rebase, fix CI, fix comments, review, merge. Clean rebases and pulls run as plain git — no agent tokens spent — and only hand off when there's an actual conflict.
Per-repo scripts
Setup, run, and archive scripts per repo with exclusive run semantics. Prompt overrides globally or per-repo. Bring your own agents, themes, and binary paths.
How it works
> Add a repo
Point Jetline at a local clone. It tracks the default branch and
stores worktrees under ~/.jetline/worktrees.
> Open a workspace
New branch, imported branch, or pulled-in PR. A worktree is created, a terminal tab spawns, the agent boots into it.
> Ship
Commit, open a PR, watch checks, address comments, merge — all from the action bar. Conflicts hand off to the agent with the right context already loaded.
Why Jetline
Similar in spirit to web-based agent harnesses, but built differently:
> Native
SwiftUI app. No Electron, no browser, no server. The terminal is libghostty in-process, not a websocket to somewhere else.
> Local
Your code, your worktrees, your gh auth. SQLite
persistence lives at ~/.jetline/jetline.sqlite. Set
JETLINE_DATA_DIR to relocate it.
> Token-frugal
Routine git operations don't touch an LLM. Agents are invoked when judgement is needed — conflicts, CI failures, review comments — not for every push.
> Bring your own agent
Claude, Codex, Vibe, or a plain shell. Binary paths and prompt templates are configurable globally and per-repo.
Try Jetline
macOS 14 or later. Open source under EUPL v1.2.