— A native IDE for macOS · v0.2.12

Built for the way you already work.

Octopush treats agentic coding sessions as first-class citizens — real PTY terminals, token-honest budgets, and multi-agent orchestration — across four deliberate surfaces over the same workspace. Talk to it, let it run, direct a crew, review every line.

Every terminal real & every token accounted for.

Projects → Workspaces Real PTY terminals Token-first Multi-agent
Octopush — payments-service ⧉ Scratchpad⚙ Settings
Workspace auth-flow
↳ feat/cold-start · 3 unstaged ● PR · #218 ↗
you

Why does the refresh check get skipped on cold start?

— Claude · Opus

Because skipRefreshCheck stays true while the daemon rehydrates.

The PTY daemon reattaches sessions before the auth layer mounts, so the first tick reads a stale flag. I traced it and have a clean fix —

§ READ auth/middleware.ts done · 0.2s
§ EDIT daemon/rehydrate.rs running · 0.9s
Main dev server build

cargo test token_engine

Compiling octopush v0.2.12

Finished test [unoptimized] in 3.41s

Running tests/token_engine.rs

running 12 tests ............

test result: ok. 12 passed; 0 failed; 0 ignored

stage2 / 4
the briefFix the cold-start refresh check
PlanI
done
claude-haiku-4-5API
plan ready
‹›ImplementII
running0:24
claude-opus-4-8CLI
§ EDIT daemon/rehydrate.rs
Code reviewIII
pending
claude-sonnet-4-6API
$0.00
saved$0.089 · 86% under all-premium spent$0.014
Changes · 3Files +33 −3 DiffEditor ✦ AI ✓ Accept all
Unstaged · 3
daemon/rehydrate.rsM
auth/middleware.tsM
tests/cold_start.rsN
fix: gate refresh check on auth.ready()…
CommitPublish branch ⟶
daemon/rehydrate.rs ▾ 1 hunk · +6 −2 Why?RejectAccept
12 pub fn rehydrate(cfg: &Config, auth: &Auth) -> Session
let skip = cfg.skip_refresh_check;
+ // wait for the auth layer before trusting the flag
+ let skip = auth.ready()
+ .then(|| cfg.skip_refresh_check)
+ .unwrap_or(false);
18 Session::restore(skip)
Ask Octopush anything… ⌘K
RAM 412 MB CPU 3% cache-read 94% · context 128k

Many models, one workspace — switch mid-session

Anthropic Claude · OpenAI · DeepSeek · Ollamalocal
— It adapts to you, not the other way around

Four surfaces. Whichever one is how you think.

Octopush refuses to flatten an editor and a chat box into one blurry pane. It gives you four deliberate modes over the same workspace — and glides between them in 320ms. Pick one to drive the demo above.

I — Talk

for thinking out loud

A conversation with structure.

Streaming responses parsed into a key phrase and body. Tool calls surface as § READ · § WRITE · § RUN cards. Every message carries its own token and cost ledger.

II — Run

for terminal natives

Real terminals, not theatre.

Genuine PTY shells via a persistent daemon. Many named terminals per workspace, clickable file links into Review, and sessions that survive a restart.

III — Direct

for pipeline architects

Orchestrate a crew of agents.

Design a multi-stage pipeline — a role, a model and a substrate per stage — with human checkpoints and a ledger that leads with what you saved.

IV — Review

for staying in control

Accept, reject, or ask why.

A unified diff with per-hunk verdicts, an integrated editor, your own test command, and an AI Review that points at the exact line it's worried about.

— Direct mode

One expensive model is a waste. A crew isn't.

Direct assembles a pipeline of agents and gives each stage exactly the model it deserves — a cheap one to plan, a strong one to implement, another to review. Watch one execute: the run track fills, the work journal records every tool call, and it pauses at your checkpoint.

Direct · live run auto-playing
stage2 / 4
the briefFix the cold-start refresh check
PlanI
pending
claude-haiku-4-5API
$0.00
‹›ImplementII
pending
claude-opus-4-8CLI
$0.00
Code reviewIII
pending
claude-sonnet-4-6API
$0.00
VerifyIV
pending
claude-haiku-4-5API
$0.00
§ IMPLEMENTER Implement claude-opus-4-8 ↑12.4k ↓3.1k $0.010
Tracing the cold-start path before the auth layer mounts.
§READ·daemon/rehydrate.rs
112 lines
implementing…
saved$0.089 · 86% under all-premium spent$0.014
running Pause parks the next stage for you · stop ends the current stage.
— Direct · Builder

Author the crew on a canvas.

Fork a template or wire your own: drag stages onto a node graph, set each one's role, model and substrate, and mark the gates where a human signs off. The same pipeline you build is the one that runs above.

  • A role, model & substrate per stage — API or CLI
  • A live work journal: every § READ · § EDIT · § RUN, recorded
  • Human checkpoints with review loops you control
  • A savings-first ledger: dollars saved vs. all-premium

The number nobody else shows you: what you saved.

— Token-first by design

Cost isn't a footnote. It's in the frame.

Most tools hide the meter. Octopush puts input, output and cache tokens where you can see them — with per-model cost, today's spend, and budgets per workspace, project or globally that warn at 50, 80 and 100% before you blow past them.

  • Live counter — input / output / cache split
  • Cost estimation by model, per message
  • Budgets by scope & period, with warnings
  • Hourly trends, cost by model & by session

Zero wasted tokens — measured, not promised.

— This week $12.40
input output cache-read
Claude · Opus8.42M tok$9.10
OpenAI2.10M tok$2.40
Ollama · local4.00M tok$0.00
— The craft underneath

Built native. Built for the way agents actually work.

Tauri & Rust core. React 19 surface. A custom PTY daemon, a SQLite ledger and a provider router doing the quiet work.

§

Workspace per task

Each task is its own git worktree — not a branch toggle. Isolated, parallel, with its own glyph and brass tint, all grouped by project in the rail.

Command palette

⌘K to leap between workspaces, sessions, models and actions. ⌘1–9 jumps workspaces; ⌘⇧D opens Direct.

Session persistence

The PTY daemon keeps shells alive across restarts. Close the lid, reopen, and your terminals are exactly where you left them.

Scratchpad

A quick code-and-text pane beside the chat — CodeMirror 6, a dozen languages, for the thought you don't want to lose.

Live perf monitor

RAM and CPU in a single quiet strip at the bottom. It informs; it doesn't perform.

Jira & GitHub

Read your Jira backlog beside the work and open a workspace straight from a ticket. Octopush spots the open PR for each branch, too.

— Read the docs

From install to your first crew, written down.

The documentation takes you from a cold download to running a pipeline — the mental model, every mode, the full shortcut sheet, and what to do when something misbehaves.

— Atelier in Onyx & Brass

A tool with a point of view.

Dark-only, warm-black, surgical brass. Closer to a bound notebook than a dashboard. Five signatures we will never break.

&

The brass ampersand — Octopus & you.

The flow glyph — handoffs in the run track.

§

The section sign — every tool call announced.

I·II·III

Roman numerals — for every deliberate step.

Aa

Serif phrases — actions are sentences, not labels.

No bouncing. No confetti. No twelfth color. Brass is surgical — never more than 5% of any screen. The rest is restraint.
§

Begin a new study.

Octopush is a native desktop app for macOS — Apple Silicon & Intel — with built-in updates. Bring your own keys: Claude, OpenAI or DeepSeek, or run a local model with Ollama.

v0.2.12 · early access · Apple Silicon & Intel · bring your own keys