A terminal-first harness for coding with AI agents
Open your projects, run agents like Claude Code, Codex and opencode in real terminals, and keep git — worktrees, diffs and pull requests — in view without leaving the window.
Linux one-liner — detects your distro, verifies the checksum, installs the native package.
What it does
A single static Go binary that opens its UI in your system's Chromium-family browser
in --app mode. No Electron, no bundled webview.
Bring your own agent
Claude Code, Codex, opencode and more are first-class — point lich at each binary, pick the default, or choose per session.
Terminal-first sessions
Real PTY-backed shells rendered on the GPU. The scrollback survives a page
reload; the footer follows cd, names the model and fills a ring with
the context window in use.
Git worktrees, built in
Branch one off any base, seeded with your gitignored .env* files and
a stable dev-server port. A kept worktree's session resumes its conversation later.
Projects and sessions
Projects on a tab bar, sessions in the sidebar grouped by worktree — each card carrying its directory, branch, diff badge and pull request number.
Review, and hand it back
A diff dock beside a live file tree. Right-click a selection to comment against those lines; the batch lands in the session as one prompt, unsent.
Pull requests, end to end
List them with GitHub's own qualifiers, check one out into its own worktree, review it inline, approve it and merge it — without a browser tab.
A look around
Install
Manual per-distro packages and the static binary live in INSTALL.md.
| Platform | Get it | Needs at runtime |
|---|---|---|
| Linux | The one-liner above, or AUR lich-bin |
chromium / google-chrome / brave on PATH, plus zenity |
| macOS experimental | brew install omartelo/tap/lich |
Chrome / Chromium / Edge / Brave in /Applications |
| Windows experimental | Installer from Releases | Chrome / Edge / Brave |
Everything runs on your machine
No account, no sign-in, no telemetry. The backend is a token-authenticated loopback
listener, and nothing leaves localhost except the update check — a version
ping to GitHub Releases. Your workspace lives in SQLite under your config directory.