Noé Geste
experiment[03] · Orchid Cherry · Personal tool · shown with a test agent in a sample project

A code editor that keeps me the author.

Orchid Cherry is the editor I built around the AI agents I already use. It runs Claude Code and Codex inside it, and its whole job is to make every change visible, reviewable and undoable. It holds no API key: it runs on the logins I already have.

Electron · Monaco · React · TypeScript Agent Client Protocol · Claude Code · Codex Solo, AI-directed design & build Mac app · sample project · not public
Orchid Cherry after an agent turn: the task list, the conversation with a changed-file card, and the diff of hello.ts open in the Review tab with Undo this change, in a sample workspace
Review, the moment after a turn: the changed file listed, the diff open, each change undoable on its ownorchid_cherry · test_agent
ChallengeDirect an agent without losing track of what it changed.
My roleConcept, product design, interface, copy and the build, directed through Claude.
TeamSolo. One user: me.
TimelineSeptember 2026 · ongoing.
StackElectron, Monaco, React, TypeScript, a shadow git for checkpoints.
AgentsClaude Code and Codex, hosted over the Agent Client Protocol, the way Zed does.
StatusWorking Mac app on my own projects. Screenshots use a scripted test agent in a sample workspace.
Not reproducedTab completion, cloud agents, a bug bot. Those belong to the vendors.
01 · The idea

The agents own the tools. The editor owns the review.

I direct agents most evenings, and the part that kept failing was not the writing. It was knowing, afterwards, what had changed and being able to take one change back without losing the rest. Orchid Cherry was built around that moment.

So it holds no model and no key. It hosts the vendors' own agents on my existing subscriptions and keeps what sits around them: the editor, the checkpoints, the review, the context I attach, the approvals and the evidence. Two layouts, switched with one shortcut: agent first, or editor first.

02 · One turn

Snapshot. Ask. Review.

Every turn follows the same three steps, whichever agent is running. A task ladder above the conversation shows where the turn is: brief, plan, build, verify, review.

Before

A checkpoint

The editor snapshots the project before the agent starts. The project's own git history is never touched.

During

An approval card

An agent that wants to edit a file or run a command stops and asks first. Allow or reject, one card at a time.

After

A review bar

Every changed file is listed with its diff. Keep all, undo all, or undo one change and keep the rest.

Orchid Cherry waiting on an approval card: the agent asks to edit src/hello.ts, with Reject and Allow buttons, and the task ladder shows the turn at Verify
The agent asks before it writes. The session list on the left says the same: waiting on youapproval · edit src/hello.ts
03 · The views

Two layouts, one inspector.

The agent layout puts tasks, conversation and code side by side. The editor layout puts the file tree, Monaco and the terminal first, with the conversation as a side panel. The inspector on the right has five tabs: status, review, preview, evaluation and usage.

Orchid Cherry editor layout: file tree with Files, Search and Skills tabs, the diff of hello.ts, a terminal, and the conversation as a side panel
Editor layout, the file tree, the diff, a terminal and the conversation at the sidecmd ;
Orchid Cherry code view with the preview pane open beside the diff: an address field, Fit, Desktop, Tablet and Phone widths
Preview, a page of the project or a local server, at a chosen width; the agent opens it here to check its workpreview · fit / desktop / tablet / phone
Orchid Cherry evaluation tab: checks from the session's tool calls, one verified pass for a test run, and a human review section with nothing awaiting review
Evaluation, the checks come from real tool calls in the session, not from what the agent claims1 verified pass · 0 failures
Orchid Cherry usage tab: plan limits per agent, the answer style setting, and today's token counts for Claude Code and Codex read from their own transcripts
Usage, plan limits per agent and today's tokens, read from the agents' own transcriptsusage · claude_code · codex
04 · Around the agent

What the editor adds on top.

Context comes from the composer: files, the terminal, the git diff, the editor selection and the project rules. Cmd K edits inline with a streamed red-and-green proposal. A skills panel in the explorer lists the agent skills in the project and installs new ones only after their text was opened. A notification and a badge appear only when a turn ends or an approval waits while the window is in the background.

Each turn folds into one line when it is done, so the conversation stays readable. Follow-ups typed during a turn queue up and send when it ends. Dark by default, because I code in the evening; a light theme exists for the day.

Orchid Cherry new session: What should we work on, the task ladder, and the composer with the agent and answer-style pickers
A new session, the agent and the answer style picked in the composer, nothing else to learn firstnew_session
05 · Status

Every change, still mine.

0
API keys held by the editor
2
Agents hosted, Claude Code and Codex
1
Checkpoint before every turn
Current status: Orchid Cherry is a working Mac app that I use on my own projects. It is not published. The screenshots on this page come from its end-to-end test suite: a scripted test agent editing a sample workspace, so no real code or conversation is shown.

"I did not need a smarter agent. I needed to see what it did and take one step back."