Code Plain

Did your agent get better or worse with the new model?

You do not know. Its configuration is a handful of sentences, and sentences have no score. dcode treats behaviour as contracts: every rule carries a threshold, runs against a real model, and the result is written down.

See it on GitHubInstallcurl -fsSL https://raw.githubusercontent.com/aguinelo/dcode/main/install.sh | sh
The dcode terminal interface: main pane with the agent's answer, a side column showing the diff file by file and the session state, and a status bar at the bottom.
dcode at work: the cycle on the left, what changed in each file and how much context was spent on the right.

Inside an OS boundary

Apple Seatbelt on macOS, bubblewrap and Landlock on Linux. Sandboxing and approval are separate axes, so it asks about what is different in kind — not about everything, until you switch the asking off and security becomes decoration.

Speaks to any model, and knows the difference

The wire format is reusable; the measured thresholds belong to the model. "OpenAI-compatible" describes how data is serialised, not how a model behaves.

Knows when it is done, and when it went backwards

You declare the finish line as commands. The loop runs them, feeds the failing output back to the model, and when an attempt breaks something that was passing it rolls that attempt back and says so out loud.

58contracts declared
18actually measured
93%coverage, with a 90% gate per package

What is open

  1. floor-yields-to-project at 5%. Project instructions do not govern the built-in floor the way a user's prompt does. Same rule, different place. It needs a mechanism.
  2. 40 contracts declared and never measured. Each measurement costs real model calls.
  3. Multiple providers, MCP, plugins, session sharing, desktop, IDE.

The milestone

A pull request to dcode written end to end by dcode, passing review and the coverage gate with no manual edits.

It is the best evaluation the project has: its own test suite and its own review checklist become the criterion. And it comes with a known trap — keeping a non-Go codebase in the evaluation fixtures is mandatory, or the agent gets excellent at Go and mediocre everywhere else without the metric noticing.

See it on GitHub