Skip to content
Install

As little or as much coding agent as you want.

MendCode works in your terminal with its own engine, and can run Claude Code, Codex or pi inside the same screen. Three tiers set how much it shows and does. Each of its 47 features also switches on by itself.

23 of 47 features onThe installer's default: a top bar, each diff and test run, the code graph, a sub-agent and to-dos.The installer's default: a top bar, each diff and test run, the code graph, a sub-agent and to-dos.

A harness that can host other harnesses

Each session picks an engine: MendCode's own, or Claude Code, Codex, an ACP agent or pi with MendCode's sessions and approvals around it. Every terminal attaches to one daemon. How an outside engine runs.

Engines, one per session

  • NativeMendCode's own loop
  • Claude Codeyour claude binary
  • Codexcodex app-server
  • ACP agentsGemini CLI, Cline, Kimi…
  • piRPC mode, opt-in

One daemon

mendcode daemon

98MB idle

104–129 MB with a terminal attached

  • Sessions
  • Approvals and permissions
  • Tools: code graph, memory, computer use
  • Transcript and tool cards

Any number of terminals

  • mendcodethis repository
  • mendcode -s ses_8f2cthe same session, another window
  • mendcode --connect host:9876from another machine
Terminal memory, idle
63–71MB
Each attached terminal is its own process
First frame
186ms at most
Messages of history before it
Scroll frame, p95
4.7ms at most
Bar's end is one 60 Hz frame, 16.7 ms
Streaming frame, p95
7.5ms at most
Bar's end is one 60 Hz frame, 16.7 ms

Measured 2026-10-04, MacBook Pro M4 Pro, 24 GB, macOS 27.0, compiled binary, offline, scripts/perf.ts with a faux engine.

What each engine brings and what MendCode adds
EngineRuns asLoginMendCode's toolsApprovalsCompaction
NativeMendCode's own model loopChatGPT login, API keys, or local models in Ollama and LM StudioAll of themMendCode'sMendCode's sectioned compaction
Claude CodeYour claude binary, over stream-jsonYour Claude login; MendCode never reads itThrough a local MCP server, in balanced and fullOn MendCode's cardsClaude Code's own
Codexcodex app-server, over JSON-RPCYour ChatGPT loginCodex's ownCodex's requests, on MendCode's cardsCodex's own
ACP agentsAgent Client Protocol: Gemini CLI, Cline, Kimi and othersThe agent's ownWhen the agent accepts MCP over HTTPOn MendCode's cardsThe agent's own
pipi in RPC mode; off until you turn it onpi's ownpi's ownThrough a pi extension hookpi's own

What it does

What other coding terminals do not have: sessions that outlive the window, reviews that verify themselves, a memory graph, whole setups you install and your own review of the diff. Each one below is the screen MendCode draws for it.

01Sessions

One session, in every terminal you open

Sessions live in a daemon, not in the window. Close the terminal and the turn keeps running; open another and it is on screen as it streams.

  • mendcode -s <id>, --continue or Ctrl+S to attach
  • A reconnecting terminal replays from the last event it saw
  • --connect reaches a daemon on another machine over TLS; a read-only token only watches

mendcode -s ses_8f2cDocs

02Pull requests

Reviews that post only what survives a second look

One pass finds candidate defects and a fresh pass tries to refute each. The review reads the diff with the callers and callees of every symbol it touches.

  • Your gh login and your model: no GitHub App, webhook or stored token
  • Nothing is posted until .mendcode/review.yaml on the base branch sets enabled: true
  • PR watch (experimental) wakes the session only when the pull request changes, with no model calls while it waits

/pr review 29982Docs

03Memory

Memory you can read, edit and take back

The agent proposes what to remember. Each category has a policy: saved at once, kept for your review, or dropped. A proposal holding a redacted secret always waits for you.

  • /memory: approve, edit, pin, rescope or delete
  • Graph tab: saved memories linked as related, supports, supersedes or conflicts
  • A memory linked to one that matches the prompt is recalled with it

/memoryDocs

04Packages and profiles

Swap the whole MendCode, and keep work apart from personal

A package is a complete setup you install: theme, home screen, prompt, keys, the views that draw the transcript, plus its skills and commands. Turn it off and everything is back. A profile is a set of folders with its own memories and models; open a terminal in one and you are working there.

  • /packages, then o: every setting, key and view a package takes over; k keeps yours
  • Share one with a git repository: mendcode package install github:you/mylook
  • A profile keeps its own user memories, model roles and default permission; ◆ company under the prompt

mendcode profile add company ~/Code/acmeDocs

05Before you commit

Review the agent's diff like a pull request

/changes lists every file the branch changed with its diff beside it. Comment a line, a selection or a hunk, then send the whole review back as one message.

  • Comments survive reconnects and daemon restarts
  • Plans get the same treatment: accept, edit, comment or reject before any code
  • o previews a review order: source, tests, docs, then generated files

/changesDocs

Work that keeps going, and knows when to stop

The daemon runs long work, not the terminal. Each kind has its own budget and its own end.

And the smaller things

One line each, every one in the docs. All of them.

Measured, with the method beside it

Against Codex CLI on twelve tasks: 2026-10-06 · gpt-6-luna, medium effort · 12 tasks × 3 runs each · MendCode in the balanced tier. Footprint: 2026-10-04, MacBook Pro M4 Pro, 24 GB, macOS 27.0, compiled binary, offline. Kit in .agents/evals/harness, method in docs/performance.md.

  • Codex CLI 0.159.0

    32/36solved

    3.40 M input tokens, all runs

  • MendCode 913bd47

    33/36solved

    1.00 M input tokens, all runs

  • Memory, daemon idle

    98MB

  • Disk per session

    206KB

  • Install

    71MB

On disk after install, 2026-10-29

  • MendCode 0.0.1-dev70.9 MB

  • OpenCode 1.19.3144.8 MB

  • Claude Code 2.1.312276.0 MB

  • Codex CLI 0.162.1338.2 MB

Input tokens per task
Codex CLI MendCode one run solved
  • bug-async-race
  • bug-boundary
  • bug-offbyone
  • false-cause-rounding
  • feat-cli-json
  • feat-lru-ttl
  • long-many-fixes
  • refactor-extract-config
  • refactor-move-rename
  • refuse-weaken-test
  • rootcause-logs
  • search-heavy-timeout
Median input tokens per taskFewer for MendCode on all twelve
Results per task
TaskKindCodex CLIMendCodeCodex inputMendCode input
bug-async-racebugfix104,49415,066
bug-boundarybugfix58,74712,838
bug-offbyonebugfix59,59813,272
false-cause-roundingfalse cause74,08214,299
feat-cli-jsonfeature91,43016,718
feat-lru-ttlfeature92,45331,561
long-many-fixeslong206,361104,525
refactor-extract-configrefactor93,95320,174
refactor-move-renamerefactor97,82730,336
refuse-weaken-testrefuse92,97616,929
rootcause-logsroot cause98,68030,841
search-heavy-timeoutsearch59,59120,450
Memory, frame time and storage
MeasureValueMethod
Daemon memory, idle / with a terminal98 MB / 104–129 MBscripts/perf.ts, faux engine, 0 / 1,000 / 10,000 messages
Terminal memory, idle / after use63–71 MB / 107–133 MBSame run, after scrolling and streaming
One process, real CLI124 MBEmpty session in a pseudo-terminal; 167 MB as daemon + terminal
First frame96 / 142 / 186 ms0 / 1,000 / 10,000 messages of history
Scroll frame, p952.5 / 4.7 / 3.3 msSame run; tests fail above their budget
Streaming frame, p953.6 / 7.5 / 5.4 msSame run
Bytes per session206,165 B60 synthetic sessions: 8 turns, 3 tool calls per turn, file snapshots
2,000 sessions on disk329.8 MiBTests fail above 350 MiB, and above 210 KiB per session
Other CLIs on the same Mac
Measured 2026-10-29, the same Mac, installed versions
CLIVersionOn diskWhat was measured--help
MendCode0.0.1-dev70.9 MBThe mendcode binary34 ms
OpenCode1.19.3144.8 MBopencode-ai package and its platform binary231 ms
Claude Code2.1.312276.0 MBOne version of the claude binary46 ms
Codex CLI0.162.1338.2 MBThe release directory: binary 246.6 MB plus resources9 ms

2026-10-29, the same Mac, installed versions. Size is what each installer put on disk; --help is the median of seven runs, so it shows start-up, not a session. Codex CLI starts fastest.

Install

One binary in ~/.local/bin, checked against its SHA256 and, with cosign, the release signature. The tier is only where the first launch starts; /tier changes it. What the installer does.

System

Channel

Starting tier

sh

curl -fsSL https://github.com/MendCode/MendCode/releases/latest/download/install.sh | sh

  1. Verified SHA256 and the cosign signature of v0.0.3
  2. Installed mendcode 0.0.3 to /Users/you/.local/bin/mendcode (starting tier: balanced)
  3. Run mendcode to start. mendcode upgrade updates it; --channel beta or nightly switches channel.

The default. What releases/latest points to. Newest: v0.0.3, Nov 2, 2026. Without cosign the first line says the signature was not checked.

Or build it from source

git clone https://github.com/MendCode/MendCode && cd MendCode pnpm install --frozen-lockfile --config.minimumReleaseAge=10080 bun run build

With Bun 1.3.13 and pnpm 11.17.0. Then run mendcode in a repository.

What the numbers above do not show

All terms and limits
  • Tiers are not a token diet. A fresh session's first request weighs 3,836, 3,778 and 3,922 tokens in minimalist, balanced and full (o200k_base, 2026-10-31): minimalist offers more tools up front where the others find them on demand.
  • One eval. One machine, one model, twelve short tasks in small repositories, against Codex CLI only.
  • Hosted engines. Claude Code, Codex, ACP and pi are tested against fake transports, not real accounts.
  • Verified on macOS. Linux and Windows binaries are built and smoke-tested. Computer use is macOS only.