The problem Doppels solves
Coding agents are great at discovery and terrible at memory. You spend 40 minutes getting Claude to produce a working database migration script — it runs beautifully once. A week later, you need to run it again. The chat is gone, the context is stale, and you’re starting over. Scripts pasted into chat windows die when the session closes. Documentation drifts out of sync with the actual commands. Re-running “that ops fix” means re-explaining everything from scratch. The knowledge the agent produced was real and valuable — but it was trapped in a conversation thread with no shelf life. Doppels solves this by giving the agent a freeze button. The same session that produced the solution also produces the artifact you keep.The core value
Freeze once → replay forever at zero tokens. While the agent is working, it burns tokens exploring, retrying, and refining. That’s the right time to let it work. Once it has a solution,doppel freeze captures it as deterministic YAML. Every subsequent replay executes locally: same inputs, same steps, same auditable result — without touching an AI model.
Execution stays entirely on your machine. Credentials live where they already are: aws, gcloud, psql, SSH, VPN. Nothing is sent to a cloud runtime. You can run Recipes offline.
How it works
Doppels organizes everything into three concepts: Capability — the public contract. A Capability declares what a task does: its named inputs (with types) and its declared outputs. It says nothing about how it runs. You can request a Capability even before a Recipe exists; a human can fulfill it manually. Recipe — the local implementation. A Recipe declaresprovides (which Capabilities it fulfills) and lists the shell steps that produce the outputs. Recipes live in recipes/ in your project and are committed to git like any other source file. The CLI validates them against the Capability contract before every run.
Run — one local attempt with fixed inputs. When you call doppels run, the CLI resolves the matching Recipe, locks the inputs, executes each step in order, and stores the result under .doppels/runs/<id>/ — logs, artifacts, and return values all captured for inspection.
hn-top-stories example from the homepage:
Supported agents
Doppels works with any agent or editor that supports skills:- Claude (claude.ai, Claude Desktop)
- Cursor
- Codex (OpenAI)
- OpenCode
- Windsurf
- VS Code (with agent extensions)
Open source
Doppels — the CLI, schemas, and freeze skill — is released under the Apache 2.0 license. Inspect the source, fork Recipes, and contribute on GitHub.Status: Doppels is currently pre-alpha. The latest tagged releases are prereleases (
v0.0.0-dev.*) intended to exercise the release pipeline. Schemas and CLI commands may change before a stable release.Installation
Install the
doppels CLI on macOS or Linux in under a minute.Quickstart
Run your first Capability from the example Space included in the repo.
How It Works
Explore the full Capability–Recipe–Run model and the freeze skill internals.