everything in overcli

Everything in overcli.

Built by engineers obsessed with their dev environment: every surface here exists because somebody got annoyed that it didn't. No feature-ballast, no PM checkboxes — just the pieces you miss the moment you pop back into a raw terminal. They fall into four groups: the window you read the work in, the machinery underneath it, the growing pile of work that runs itself, and what is left when there is no repo at all.

the window

What you look at while the agent works — the surfaces that made a terminal a bad place to explore.

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 — behind the experimental Claude Design and artifacts setting and a claude.ai login — 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

Places, and Work

The sidebar answers two questions with two views. Places is your projects and workspaces, one line each. Work is what you did: every chat, flow run, batch and PR on a branch stitched into one record, with Needs you and Running pinned first, and each repo saying whether its part is uncommitted, not pushed, pushed or already in main. Search reaches titles, branches, PRs, ticket keys and everything you typed, from ⌘K too.

A finished run stays findable after it is deleted, and Keep working reopens the worktrees, branches and context it used. Work that reached the trunk without a PR is marked Landed.

"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

Ask about the code in front of you

Select lines in a file or its diff, or click a bar in the change gutter, and Ask about this quotes them — path, line numbers and, for a change, what the lines replaced — into whichever composer you used last. Nothing is sent until you send it.

12

A tray other tools can write to

A JSON file dropped in ~/.overcli/inbox/ — a slow query, a drift report, a failing migration, an error — shows up in the title-bar tray and as needs you on the workspace or project it belongs to. Opening it lands on that place with the report already in the composer, and nothing is sent until you send it.

overdb is the first sender: from 0.2, Fix it in overcli hands over a slow query with its plan, never its rows. The sender and title are quoted along with the report, so nothing another tool writes reads to the model as your own words. Handled files move to done/, unreadable ones to rejected/ with the reason.

13

A terminal drawer

Shells open in a drawer under the main pane (⌘J), with a tab per shell — logins, installs, the file tree's >_ and "resume in terminal" all open there. Shift-click, or a setting, opens the system terminal instead, and a shell can pop out into its own window and come back.

A file a shell command changes shows as a per-file diff on its Bash card, like an Edit. Shells come back after a reload.

the machinery

What sits under the window: the CLIs, the credentials, the worktrees, and the numbers that say what it cost.

14

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.

15

Health badges

Per-backend status pills: ready, unauthenticated, missing, error. The app tells you which CLI is broken before you try to use it.

16

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.

17

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.

18

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.

19

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.

20

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.

21

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.

22

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.

23

Services, in a pane of their own

Start, stop and watch every service a workspace runs — imported from the Tiltfiles, compose files, Procfiles and IDE run configurations you already have, or read from the build. Services start in dependency order, a port has one owner at a time, and the whole stack can move to the worktree a flow just finished on. see it on the overview →

Credentials live in your OS keychain, not in a config file, and known secrets are masked in every log line before it is written. A value typed identically into several services — a port, a database URL — can be pulled into one shared machine value they all refer to, with Used by on each value choosing which services get it. Mention @service in a chat to hand the agent a running service's latest log, and a service left running from your last session is taken back rather than killed.

work that runs itself

Everything that keeps going once you stop typing — ordered by how much you hand over, and how little it asks of you.

24

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.

25

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.

26

Automatic model fallback

When Codex reports that the model you picked isn't available, Overcli retries the turn on another Codex model instead of stopping, so the work still ships. On by default; switch it off in Settings.

27

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.

28

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. 38 in the registry; define your own in a few lines of YAML. see them on the overview →

A Claude step can use Claude Design (Artifact) to produce a design, deck or document; the designer marks it effect: external, and it needs the experimental Claude Design setting on.

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.

29

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 on the overview →

It sits at the top of the Workers rail and 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.

30

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.

31

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.

32

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.

New in 0.19: overcli serve keeps schedules and standing workers running headless on a box you own, under a single-daemon lock so two copies never fire the same shift.

In alpha: runnable today, but the interface can still move. Everything else on this page is shipped.

33

Flow writes, sandboxed macOS

On macOS a flow step's CLI runs inside a Seatbelt profile that lets it write only its own run folder, the repo's git data (not its hooks or config), temp folders and its CLI's own state. It is on by default, under Sandbox flow writes. A Claude step that would fall back to a transport the sandbox can't wrap is stopped rather than run uncontained.

It limits writes, not reads or the network, and chat is never sandboxed. A Codex step keeps Codex's own workspace sandbox unless that is switched off, when this one takes over; Ollama steps aren't wrapped. On Windows and Linux flow steps still run without it.

34

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.

35

Standing workers

Hire a persona that wakes on its own clock, decides what is worth doing, and files what it produces. Hire it through a conversation — say the job, attach a spec or a screenshot if you have one, answer what the drafter asks — and whichever backend you're signed into drafts the contract and the flow it launches. Every worker keeps a desk, a filing cabinet and a journal, and starts on probation: nothing runs until you approve the batch. see it on the overview →

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 Today, an inbox grouped Needs you, Working, 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. Clear what you've read; it stays findable under Cleared.

Tick Browse the web and a worker's errands and shifts get a browser: Claude in Chrome on Claude, sandbox network access on Codex. It's off by default, per worker.

36

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.

37

Away mode

Go away takes the whole crew offline — until you're back, tomorrow morning, Monday morning, or in a week. While you're away no shift starts, batches queued before you left launch nothing more, and handoffs wait for you. Manual shifts and errands still run, and runs already going finish.

Coming back restarts every worker's clock from now, so there is no pile of missed shifts waiting, and a worker you paused stays paused. A single shift can be paused too, which holds its queue and stops its flows after their current step. Team stages are held as well — the task says Crew away, with Start now.

38

Teams

Put workers together on one task. A coordinator plans the stages for you to approve, members contribute and challenge, files land in one shared folder, and the coordinator writes the pack. Code lands on its own team/<task> branch, merged when you say. see it on the overview →

After the pack, the team's conversation stays open: ask follow-ups, @ a member, or hand work back. Each task has a budget, $1,000 by default, checked before every stage.

39

A cost ceiling on every run

Set a ceiling per flow run in Settings, and a run that spends past it stops and tells you why, rather than finishing a job nobody priced. It is a stop-loss, not a hard cap: it is checked after each turn reports its cost, so one expensive turn can land above it before the run halts.

When Opus 5.5 became the default premium model, saved flows did not move on their own. Upgrade models shows the exact change for each flow, and nothing moves until you tick it — a pinned model can be deliberate.

without a repo

The same app for people who have documents rather than code — added in 0.16, and the reason "is this for me?" now has a second answer.

40

Documents 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.

41

Documents, not a file tree

Documents 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.

42

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.