01
Multi-backend chat
Claude, Codex, Gemini, Copilot, and Ollama — five stream parsers, one consistent UI. Markdown. Syntax highlight. Streaming tokens. Cloud or local, same window.
Reasoning effort is set per backend, because the word means something different to each of them — and turning it up lands on the turn you are watching, not the one after it. Claude's /design canvas and its Artifact tool work here too, with permission cards that summarise what actually leaves the machine rather than showing you truncated raw JSON.
02
Tool cards, not wall-of-text
File edits render as diffs. Bash lives in a terminal block. Reads, writes, todos each get their own card — so you can actually see what the agent did.
03
Permission & approval, first-class
Claude permission prompts and Codex approval cards (exec + apply_patch) are proper UI elements — not modals interrupting the flow.
04
File editor, right there
Syntax highlighting, line-range highlighting, HTML & Markdown preview tabs for previewable files, and a one-click download out of the preview pane beside the file's own path. No context-switch to VS Code to check the agent's work.
An .html report previews the way it does in a browser — the CDN React + Tailwind page our dashboard flows ask agents to write actually paints, and a link in it opens in your browser. The frame can still neither phone home nor read a file it wasn't shown.
05
History from disk
Loads prior transcripts straight out of ~/.claude/projects, ~/.codex/sessions, and ~/.gemini/tmp. Nothing gets re-invented; we just read the files you already have.
06
Extensions browser
One searchable pane for everything the CLIs can do — slash commands, sub-agents, skills, plugins, MCP servers — unified across Claude, Codex, Gemini, and Ollama. Rescan on demand; no YAML to edit.
07
Workspaces — projects of projects
Group related repos into a single workspace and every agent inherits the map: it knows the projects belong together and navigates between them naturally. Ask for a change that spans api-gateway and billing-svc and the agent edits both, runs both test suites, and shows one review. The feature that makes polyrepo feel like monorepo.
08
Keyboard first
⌘P file finder. ⌘\ toggles the sidebar. ⌘, opens settings. ⌘1–⌘9 jumps between open files. It is not a website; it is a tool.
09
⌘K finds anything
One input over the whole app — chats, agents, runs, flows, workers, projects, workspaces, archived threads and app actions. ↵ goes where the subtitle says it goes — a worker row arrives at that worker's desk, ⌘↵ opens its contract. A quick switcher that only indexed conversations meant everything else could be found only by knowing which tab it lived behind, which is the opposite of the point.
Ranking is a pure module with its own tests, because "an exact project name should beat a chat that merely mentions the word" degrades silently — a test catches it, a screenshot doesn't.
10
A sidebar you navigate by what you were doing
The old list rendered where things live; people navigate by what they were doing. Stream is one newest-first list of chats, agents and runs together, with the owner printed once above a run of consecutive rows rather than on every one, so going flat doesn't cost you the sense of which repo you're in. Places keeps the tree for when the question really is where something lives — two layouts rather than a toggle, because they answer different questions.
"Active" is now Working on, and momentum — turns per hour, decayed — earns a row its slot, so a thread you've been forty turns deep in all morning outranks a message you fired off and forgot. Anything untouched for two days rolls up under a dashed count line in place: not hidden, which makes people hunt, and not archived, which needs a decision and an undo. Search still reaches inside it.
11
No new subscriptions
Overcli sits on top of the CLIs you already use, with the auth they already have. Your Claude Pro, your ChatGPT plan, your gcloud creds, your GitHub Copilot seat — whatever claude, codex, gemini, and copilot are signed into is what overcli runs through. Local ollama for the rest. No API keys to manage. No new bills.
12
Health badges
Per-backend status pills: ready, unauthenticated, missing, error. The app tells you which CLI is broken before you try to use it.
13
Agent worktrees
Create, update, rebase, merge, push, or remove a git worktree from inside the conversation. Agents work in isolation; you merge when you like what you read.
14
Changes bar
A live +/− rollup sits above the composer, counting everything the agent has touched this turn. Click to expand the diff, click a file to jump to it. The commit badge is one click away.
15
Local model dashboard
A proper UI for your Ollama install: browse a hand-checked catalog of 46 tags, filter by maker or country, pull and delete with one click, watch server logs live, and see a readout of the GPU you're actually running on.
It also tells you when the copy of Ollama you have is one you shouldn't still be running — read off the binary even with the server stopped, and escalated to a security finding once you're several minors behind — and when the API is answering on a non-loopback address, where anyone on your network can pull and delete your models. Nothing upgrades itself: you get the command, in a Terminal you can watch.
16
Usage dashboard
Rolling 5h / 24h / 7d stats, broken down by backend, model, and project. Quotas are read from the CLIs themselves rather than estimated, so the number you're looking at is the one the provider is counting. Know what you're burning before the invoice tells you.
17
Where the turn went
A Timing tab splits every turn into model time and tool time — and the tool share is split again by tool name, with a legend giving each tool's busy time, call count, slowest single call, and errors. Forty seconds in tools is a very different afternoon depending on whether it was one Bash build or thirty Read calls.
Tools are ranked slowest-to-fastest on a red → amber → green ramp, so the expensive one is findable without reading a number, and nothing lands near the blue the model's share is drawn in. Parallel calls overlap, so widths are wall clock and the legend is what each tool actually spent.
18
Install MCP once, everywhere
Add a Model Context Protocol server in one place and Overcli writes it into every CLI's config in the exact format each one wants — ~/.claude.json, ~/.codex/config.toml, ~/.gemini/settings.json — dropping a .bak first. Pick from a curated catalog with one-click install, or copy a server you already have on one backend across to all the others. No hand-edited TOML, no format-juggling.
19
Four speeds, one ladder
Full, Swift, Turbo and Warp, on every hosted backend. Swift keeps answers concise and consolidates independent tool work. Turbo enables each backend's speed-first behaviour while keeping the model you picked. Warp also drops to that backend's fast tier — Sonnet for Claude, Luna for Codex, Flash-Lite for Gemini, Haiku for Copilot. Colour-coded icons make the ladder readable without opening a menu.
Leaving Warp restores the model and effort you were on rather than stranding you on the fast tier. Ollama stays manually controlled, because a local model's speed is your hardware's business and not a setting.
20
Rebound reviews
After every turn, fire a second agent — on a different backend if you like — to review what just landed. Thinking blocks visible, round counter included. Collaboration mode loops rounds until the reviewer stops finding things to fix.
Note: Copilot can't be a reviewer yet — its CLI doesn't read prompts from stdin. When it's your primary, overcli routes the review to claude/codex/gemini and shows a "Routed via X" chip so it's not surprising.
21
Silent agents
Long-running background agents that live next to your work. A doc-writer that keeps /docs in sync as the code changes. A PR-reviewer that quietly comments on every pull request the moment it opens. No Slack pings. No dashboards. Just work getting done.
22
Smart downgrades
As you approach a rate limit or cost ceiling, Overcli can step you down automatically — opus → sonnet, cloud → local ollama — so the next turn still ships. Configurable per project. Off by default. see it above ↑
23
Colosseum
Fire one prompt at every backend at once. Watch the answers land side by side, compare the diffs, keep the winner, discard the rest. The fastest way to tell which agent actually understood the task.
24
Flows
Reusable, open-source workflow templates. Chain steps across backends — research on a cloud model, build on a local one — with typed inputs and outputs handed between them, and a human checkpoint anywhere you want one. 35 ship in the box; define your own in a few lines of YAML. see them below ↓
The library groups by provenance — starred, yours, this project, installed — and its search reaches the registry as well as your disk. When nothing matches anywhere, the search text becomes the brief for an AI draft that opens in the editor rather than running unseen.
25
Orchestrator
Point one producer turn at your backlog — it investigates over MCP (Jira, GitHub, Sentry, Zendesk…) and carves out small, self-contained asks. Map each to a flow and launch the whole batch in parallel, each in its own git worktree, a PR per finish. A paused checkpoint frees its slot so the rest keep moving. see it above ↑
The tab has two shapes. Composing keeps the numbered panes; once nothing is being composed the ledger takes the full stage, and every count in its bar is a filter — a number you can't act on is a run row given up for decoration.
26
Scheduled runs
A schedule is a trigger on work you already defined, so it lives inside Flows rather than as a fourth place to launch from. Fire a flow on a cadence, or point a schedule at the orchestrator and have it park what it finds — by default every item lands proposed and nothing launches until you approve it. Intervals take days and an active window, so "every hour, weekdays, 8–5" is one trigger and not twenty-four.
Three trigger kinds: an interval, a cron expression for the cadences no preset covers, or onFlowComplete — "when the nightly scrape succeeds, launch triage" — which reacts to runs it did not launch, bounded at a depth of five.
For a producer you have learned to trust, a schedule can launch its own proposals — but the cap is required, not optional. The first N go in producer order, which is best-first, and everything past it stays parked with a note saying why. A missed schedule coalesces or skips rather than stampeding on wake, and "Run now" is a test drive — it never re-anchors the cadence.
27
Flow watch
When a flow finishes, it doesn't have to stop caring. Put a run in watch and it keeps an eye on the thing it touched — the PR, the Jira ticket, the Slack thread — answering follow-up questions with the full context of what it just did. A cheap detect pass polls every tick; the real model only wakes when someone actually asks something.
It tends, it never re-does. If a comment asks for real work — a code change, a re-run — the watcher flags you instead of touching the repo, and pings you on the desktop.
28
Headless, and deployable alpha
The same flow YAML runs from an overcli command line with no window — one shot in CI, or on a box you own — and a flow or a worker's whole cadence deploys to GitHub Actions or Jenkins as a generated pipeline. There is no second runtime: the app and the CLI drive the same runner and the same engine, so a flow that worked at your desk works on the runner.
In alpha: runnable today, but the interface can still move. Everything else on this page is shipped.
29
A risk scan before it runs
A flow is a set of instructions that later runs with real tool access, and the only checks used to be an integrity hash and a structural validation — nothing read the instructions. Every step's prompt override and tool list is now scanned for credential-file references and for network egress declared as a local effect, on the registry path and on every hand-authored save.
Nothing is blocked: a heuristic that refused a legitimate install would be worse than the warning it replaces. A high-severity finding pauses the run instead, under its own reason. Separately, bash, websearch and webfetch stopped counting as local — an unattended worker with no grant for outside actions cannot run them, and a step's declared tool list reaches the CLI as a real allowlist rather than a label.
30
Standing workers
Hire a persona that wakes on its own clock, decides what is worth doing, and files what it produces. Describe the job in prose — with a spec or a screenshot attached if you have one — and whichever backend you're signed into drafts the contract and the flow it launches. Every worker keeps a desk, a calendar, a filing cabinet, and a journal, and starts on probation: nothing runs until you approve the batch. see it above ↑
A shift streams into the desk as it is worked, and any turn opens in a reader with a find box — a sweep across seventy tickets is a document, not a chat bubble. Leave it a note and the worker reads it before planning the next shift, because the record of what it did is not a thing you edit.
The tab opens on a work queue banded Running now, Needs you, Finished today — status is not a column you sort by, it is what a row is, and a single time-ordered table buries the two rows with a decision waiting on them under eight that need nothing from anyone.
31
One pot, paid down the roster
Eight workers at $10 a month is an $80 exposure nobody ever approved. The crew now draws from a single monthly pot, paid down the roster in order: a worker may spend only what is left after everyone above it is funded. Drag a name up and that is a funding decision you can watch land. Pausing one releases its reserve to everyone below it.
A worker's unspent cap is held for it, so the one that runs your morning can't be starved by the one that tidies changelogs. Shifts below the waterline skip quietly and journal why, and a dry pool notifies once for the whole roster.
32
Everyday projects
Describe what you want and Overcli scaffolds a folder under ~/Documents/Overcli Projects/, prepares an undo history, and opens a conversation pointed at it. No path decision, no file dialog, and git is never mentioned. A folder you already have joins the same way — the explorer's dead end is now a Turn on history button.
33
Documents, not a file tree
Everyday projects open into a card grid with real file-type icons, human names, and edited 2 days ago — one folder at a time, with a breadcrumb. Code projects keep the explorer tree, because a nested column of monospace paths is right for a repo and wrong for a folder of Word documents. Drag files in from Finder; the project's own .git never appears.
.doc, .docx, .xls, .xlsx, .ppt and .pptx preview with no Office installed. Three converters are raced rather than queued — LibreOffice, Quick Look, Office COM — so a hung LibreOffice no longer costs thirty seconds. The result renders sandboxed with no scripts and no outbound channel, because a document someone emailed you is untrusted input.
34
Auto-save, and every version back
Documents save themselves a few seconds after you stop typing, because nobody outside software thinks about saving. A version is captured whenever something finishes, and Earlier versions lists them in plain language with a Restore button.
Restoring moves forward rather than rewinding — the current state is committed first and the restored one on top — so putting the folder back is itself undoable. Ask for a change in one line at the foot of any document and you get a before/after diff with Keep changes, Undo it or Try again; highlight a passage first and only that passage is sent.