The coding agent you can undo.

Darce writes and runs code in your terminal. Every change rolls back, even what rm and mv did. Anything it can't undo, it asks first.

$ npm install -g darce-cli
$ darce

Free to try, no account · Node 22+ · macOS, Linux, Windows · MIT

~/acme-todos · a real session

Not a mockup. Darce asks before rm -rf, deletes four files when you say yes, and /undo brings all four back.

Shipped recently

Changelog
  1. 0.19.0

    Upgrading takes one key

  2. 0.18.0

    Your conversation is saved after every change, not only when a turn ends

  3. 0.17.2

    `/clear` no longer erases the conversation you cleared

  4. 0.17.1

    Fewer pointless approval prompts

Undo covers what the shell did, too.

Darce snapshots your project before every step, not just before its own edits. A folder rm deleted, a file mv moved, a lockfile an install rewrote: one /undo and it's back. Your branch, index and stash are never touched.

This session, step by step/rewind · esc esc
  1. Edit
    src/db.ts
  2. Write
    src/cache.ts
  3. Bash · rewind here
    rm -rf test
  4. Bash
    npm install zod
  5. Edit
    src/app.ts

Rolls back

  • Files Darce edited or created
  • Files a shell command deleted, moved or changed
  • package.json and lockfile changes from an install
  • Any earlier step, not just the last one

Asks first, because it can’t

  • Database migrations and writes
  • Deploys and git push
  • API calls that change something
  • Anything outside this project

It only asks when it can’t undo.

Every command is scored before it runs. If /undo can reverse it, it just runs. If it reaches outside your project or your machine, Darce stops and tells you why. Scripts with harmless names get read first.

CommandWhat it would doDarce
git statusOnly readsRuns
npm testChanges nothing /undo can’t reverseRuns
npm run migrateWrites to a databaseAsks first
node scripts/sync.jsHarmless name; a second check reads the script and finds it POSTs customers to a CRMAsks first
rm -rf ~/projectsDeletes files outside this projectAlways asks
Allow Bash?asks first
node scripts/sync.js
POSTs data to an outside API; /undo can't reverse it
y allow oncen denyesc deny and stop

And a few things that make it different.

See what every change touches

/brain opens a live view in your browser: the file Darce is editing, what it imports, what imports it, and the exact diff.

Race three models, keep the best

/derby runs one task on three models in separate worktrees. Read each answer as it lands and apply the one you'd merge.

▸1claude-sonnet-5.5+18 −613s
2gpt-5.6-sol+22 −919s
3qwen3-coder+31 −129s
enter apply · esc discard all

Each model works in its own git worktree, so nothing collides. Your files stay untouched until you pick one, and /undo still works after.

Split big work across agents

/swarm plans the parts, runs each in its own worktree at once, and merges them back in one step.

> /swarm add stats, CSV export and validation
Completion stats moduledone
CSV exportdone
Title validationdone
Waiting for all three…

Hear what it's doing

/voice on: a short spoken update when a task runs long, when it needs you, and when it's done.

“Before I push this, can I run the migration? It can't be undone.”

It explains the bug

When a fix depends on something the code doesn't show, Darce adds one short note so you spot it next time.

WHYforEach ignores the promises its callback returns, so nothing waited.

Any top model. One account, no API keys.

Switch mid-task with Shift ↑↓. You stop at your limit and are never charged extra.

  • Qwen3 CoderFree
  • Claude Sonnet 5.5Builder
  • Claude Opus 5.5Builder
  • DeepSeek V4.1 FlashFree
  • GPT-5.6 SolBuilder
  • Gemini 3.1 ProBuilder
  • Gemini 3.8 FlashFree
  • Kimi K3Builder
  • Claude Haiku 5.5Free

And 240 more, filtered to models that can reliably use tools. Browse them all

Free
$0

Try it with no account, then a daily allowance. Fast models like Claude Haiku and Qwen3 Coder.

BuilderRecommended
$15/ month

About 7× the Free allowance, weekly. Adds Claude Sonnet and Opus, GPT and Gemini Pro.

Power
$65/ month

About 4× Builder, weekly. Every model, including the priciest reasoning ones.

Usage is measured by what the work costs, so fast models go further. Every plan has every feature: undo, approvals, derby, swarm, brain. Full pricing

Darce is coming to the Mac.

The same agent and the same undo, in an app with your files and an editor beside it. Choose how much Darce explains as it works, from none at all to a lesson.

In Understand, Darce fixes the bug and explains why it happened: two unawaited saves raced, and the slower one overwrote the newer edit.

Builds, then explains each decision and what it ruled out.

Why it's called Darce

Darce comes from درس, dars: Arabic for a lesson.

I started it because I wanted an agent I could let run without watching every step, and that only works if every step can be taken back. That's why undo is the core.

But the name says where it's going. An agent that writes your code can quietly leave you understanding less of it. I want the opposite: a tool that teaches you while it works, so you come out of every session knowing a little more. The WHY notes are the first piece of that. There's more coming.

I build Darce on my own, in public, and it's in early beta. If something breaks, or you have an idea for how it should teach, tell me on GitHub or Discord. I read everything.

Amer Sarhan

Questions

How is usage measured?
Each plan has an allowance: Free per day, Builder and Power per week. It's measured by what the work actually costs, so fast models like Claude Haiku and Qwen3 Coder stretch it much further than Opus. Darce shows how much you've used, never a bill. Tasks per plan, by model.
What happens when I run out?
Darce stops and tells you when your allowance resets. You're never charged extra: plans have a hard limit. A cheaper model makes what's left go further.
What can’t /undo reverse?
Anything that leaves your computer: database writes, deploys, git push, payments, API calls that change something. That's exactly why those always ask first. Everything inside your project, including what shell commands did, rolls back. How undo works.
Where does my code go?
Darce runs on your computer. To answer, it sends your request and the parts of files it reads to api.darce.dev, which passes them to the model provider you picked through OpenRouter. Darce doesn't store your code or prompts; it keeps your email, plan and how much you've used. Privacy policy.
Do I need my own API key?
No. One Darce account reaches 250+ models. You never paste a provider key.
Which models does each plan include?
Free covers fast, low-cost models: Qwen3 Coder, DeepSeek, Gemini Flash, Claude Haiku. Builder adds the big ones, including Claude Sonnet and Opus, GPT and Gemini Pro. Power adds the most expensive reasoning models and about four times Builder's allowance. Every model by plan.
How is it different from Claude Code?
Claude Code is excellent, and Darce borrows its conventions: / commands, @ files, Esc to stop, Shift+Tab modes, CLAUDE.md. The differences: Darce's undo also reverses what shell commands did (Claude Code's checkpoints don't track Bash), and it works with any model, not just Claude. Full comparison.
Is it open source?
Yes, the CLI is MIT licensed and on GitHub. It doesn't send any telemetry.

Let it run. Undo anything.

Give Darce real work in your own project. If you don't like what it did, one command puts everything back. Trying it needs no account.

$ npm install -g darce-cli
$ darce