— A native macOS IDE · v0.4.50

Stop chatting. Start directing.

A native IDE where agents plan, build and review under your direction — not another chat window. Four surfaces over one workspace: talk to it, let it run, direct a crew, review every line.

The number nobody else shows you: what you saved.

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

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
Plan1
done
claude-haiku-4-5API
plan ready
‹›Implement2
running0:24
claude-opus-4-8CLI
EDIT daemon/rehydrate.rs
Code review3
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

Local-first· No telemetry· Signed updates· Bring your own keys

Many models, one workspace — switch mid-session

Anthropic Claude · OpenAI · DeepSeek · Ollamalocal

Anthropic & OpenAI-compatible protocols with a custom base URL — point it at your own gateway, an OpenAI-compatible endpoint, or a local Ollama. No per-vendor code.

— 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 — and exactly the reasoning effort it needs: a cheap model thinking deeply on synthesis, barely at all on the mechanical parts. A stage escalates to a stronger model only after a proven failure — you pay the expensive tier on a real failure, not by default. 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
Plan1
pending
claude-haiku-4-5API
$0.00
‹›Implement2
pending
claude-opus-4-8CLI
$0.00
Code review3
pending
claude-sonnet-4-6API
$0.00
Verify4
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 & reasoning effort per stage — API or CLI
  • A live work journal: every read, edit and command, recorded
  • Human checkpoints with review loops you control
  • The escape valve — a stage stops and asks you, with a recommended default, instead of guessing
  • Automatic escalation: retry once on a stronger model, only after a proven failure
  • Redirect mid-run — edit a pending stage's brief, model or budget, then re-run from there
  • Mission Control (⌘⇧M) — every run across every workspace, one cockpit
  • A savings-first ledger: dollars saved vs. all-premium, on every run

The number nobody else shows you: what you saved.

Running five agents in parallel is a feature.
Giving each a role, a model, a budget and a human gate is a workflow.

— Four surfaces, one workspace

However you work, it works.

Octopush refuses to flatten an editor and a chat box into one blurry pane. Terminal person, chat thinker, pipeline architect, careful reviewer — four deliberate surfaces over the same workspace, and it glides between them. Pick one to drive the demo above.

— Talk

for thinking out loud

A conversation with structure.

Streaming answers split into key phrase and body, tool calls as collapsible cards, files mentioned with @, skills invoked with / — and a $ prefix that runs shell commands in a persistent per-thread shell, spending zero tokens.

— Run

for terminal natives

Real terminals, not theatre.

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

— Direct

for directing a crew

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.

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

— The PTY daemon

Terminals that refuse to die.

Octopush runs an out-of-process PTY daemon — a separate binary that owns every pseudo-terminal. Quit the app, install an update, relaunch: your shells are still running, scrollback intact, exactly where you left them.

18:42 — you quit the app

dev server Main

npm run dev

VITE v6.0.3 ready in 412 ms

➜ Local: http://localhost:5173/

18:41:57 [vite] hmr update /src/App.tsx

18:42:10 [vite] hmr update /src/stores/runsStore.ts

18:47 — five minutes later

dev server Main ↺ Restored

➜ Local: http://localhost:5173/

18:41:57 [vite] hmr update /src/App.tsx

18:42:10 [vite] hmr update /src/stores/runsStore.ts

18:46:52 [vite] hmr update /src/App.tsx

— Review & provenance

Every line has an alibi.

Agents write a lot of code. Octopush keeps you editor-in-chief: a unified diff with per-hunk accept and reject, an AI review that points at the exact line it's worried about — and a "Why?" trail that traces any edit back to the agent turn that produced it: which role, which model, which message.

  • Hunk-level verdicts — accept, reject, or undo within six seconds
  • Provenance on demand: "shaped by 3 agent turns across 3 files"
  • AI review findings graded by severity, each one a click from its line
  • Your own test command, one keystroke away
— 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. If you pay per token or bill per project, that spend is your cost of goods — so Octopush keeps it in the frame, not buried in a dashboard you never open.

  • 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
— Local-first by architecture

Your code never phones home.

There is no Octopush server reading your work. Projects, chats, run history and settings live in a SQLite file on your disk. Keys are stored locally and sent only to the providers you configure. There is no analytics SDK in the app to opt out of — none ships.

— Sandboxed by the kernel · free

Agents write only where you let them.

Turn sandboxing on and a mission's agents run write-confined to its workspace by the macOS seatbelt — your ~/.ssh, ~/.aws, other worktrees and system paths stay read-only, enforced by the kernel rather than asked of the agent. Review missions are read-only by construction. And it's on the free tier: security is never paywalled.

Local by default

Everything lives in ~/Library/Application Support/octopush — a SQLite file you can open, back up, or delete.

Keys stay yours

API keys are stored on your machine and travel only to the provider you chose — Anthropic, OpenAI, DeepSeek, or nowhere at all with Ollama.

Zero telemetry

No analytics, no crash uploaders, no phone-home. Outbound traffic is exactly what you configured: your providers, your integrations.

Signed updates

Every update is Ed25519-signed and verified before install. What you download is what we built.

Built by a developer who runs it on his own production work, every day. Shipped weekly, versioned honestly, documented as it lands. Designed as an atelier — warm black, surgical brass, serif sentences — and the restraint to use them sparingly.
— 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.

An MCP server built in

Octopush ships its own MCP server: drive pipelines, projects and workspaces from Claude Code or any MCP client. It stages drafts — it never runs, spends, or mutates git on its own.

Jira & GitHub

Read your backlog beside the work, open a workspace straight from a ticket, and see the open PR for every branch. Pick a GitHub issue and the "Ship it" crew folds it into the task and drives it to a PR.

Command palette

⌘K to leap between workspaces, sessions, models and actions. ⌘1–9 jumps workspaces; ⌘⇧M opens Mission Control.

A full git client

Stage, commit, push, stash, cherry-pick — through your login shell, so SSH agents, signing and hooks behave exactly like your terminal. AI drafts the commit message from the staged diff.

Scratchpad

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

Nine themes, live prices

Atelier by default, eight more built in — and a model catalog whose per-token prices refresh from live data, so the cost meter never lies.

Crews that run unattended Pro

Detached runs survive quitting the app and post a native notification when the crew finishes or needs you. Routines fire scheduled crews on a Days × Times schedule, with an optional shell pre-condition that skips a window when there's nothing to do.

Start from a prompt

No repo yet? Describe what you want to build and set a crew on it — the Greenfield pipeline is born into an empty project, scaffolds the first working slice, and you direct every gate. Sandboxed by default.

Mission Control & the Logbook

One cockpit (⌘⇧M) for every run across every workspace — needs-you, in-flight, settled. The Logbook keeps each mission's ledger: worked time, spend, and savings vs an all-premium baseline.

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

— Pricing

Free to start. Pro when you orchestrate.

Octopush is free and local-first — bring your own keys and work the core without limits. Pro unlocks the multi-agent orchestration harness. Cancel anytime.

Free
$0forever

for everyday local work

  • Talk, Run & Review — unlimited, over real git worktrees
  • Bring your own keys — Claude, OpenAI, DeepSeek, Ollama
  • Token budgets & per-model cost meters
  • Sandboxed execution — security is never paywalled
  • 25 Direct pipeline runs every month, one at a time
  • Per-mission Logbook — always see what your work cost
Download for macOS
Most capable Pro
$20/ month

for orchestrating a crew of agents

  • Everything in Free, and —
  • Unlimited Direct runs
  • Parallel & background runs across workspaces
  • Detached runs — crews survive quitting the app
  • Routines — scheduled crews on a Days × Times schedule
  • Run History synced across your machines
  • Library sync — your pipelines & roles follow you
  • Logbook Room — cross-mission cost & savings reports
  • Your keys & local data still never leave your device
Get Octopush Pro

Download free, then unlock Pro in-app after you sign in.

Stop chatting.
Start directing.

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

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