doppel-freeze skill takes over. It reads your session, writes a Capability and Recipe in YAML, validates them with the CLI, and asks for your sign-off. From that point forward, the same operation runs locally for zero tokens, every time.
doppel freeze is a skill for AI agents — not a CLI subcommand. There is no doppels freeze command in the binary. The agent writes the YAML; the CLI validates and runs it.Step 1: Install the freeze skill
Install the skill once per machine or per project. It registers itself with your agent environment so that any supported agent can pick it up.- Claude
- Cursor
- Codex
- OpenCode
- Windsurf
- VS Code
You also need the
doppels CLI on your PATH. If you haven’t installed it yet, see the installation guide.Step 2: Do real work in your agent
Open a session in your agent of choice and work through the task you want to capture. There is nothing special to do at this stage — write code, run commands, call APIs, fix the migration, whatever the job is. The freeze skill will read the session history, so the more concrete and complete the work, the better the resulting Capability. Good candidates for freezing include:- Fetching data from an API and writing it to a file
- Running a database migration
- Building and packaging a release artifact
- Rotating credentials or applying configuration changes
- Generating a report from raw data
Step 3: Say the freeze phrase
When the work is done and you’re satisfied with the result, tell your agent to freeze it. Use natural language — something like:“doppel freeze — turn what we just did into a Capability”or
“doppel freeze this as hn-top-stories”
The agent recognizes the doppel freeze trigger and activates the skill. You don’t need to use an exact incantation; the skill is designed to recognize intent.
What the freeze skill does
Once triggered, the skill works through a fixed sequence without requiring further prompting from you:1
Check for the doppels CLI
The skill verifies that
doppels is available on your PATH. If it isn’t, it tells you exactly how to install it before proceeding.2
Initialize the Space if needed
If the current folder doesn’t have a
.doppels/ directory yet, the skill runs doppels spaces init to create the standard layout: capabilities/, recipes/, and .doppels/.3
Identify what to capture
The skill asks you to confirm what outcome to capture. Each distinct outcome becomes one Capability. If the session produced multiple separable results, you can freeze them individually.
4
Write the YAML by hand
The agent reads through the session — commands run, files written, inputs received, outputs produced — and writes
capabilities/<name>.yaml and recipes/<name>.yaml directly. There is no code generator or doppels freeze command doing this work; the agent is authoring the YAML.5
Validate and test
The skill loops
doppels validate and a test doppels run until the manifests are clean and the Capability executes correctly. It fixes any schema errors or expression problems it finds.6
Ask for your sign-off
The skill shows you the full contract — inputs, outputs, steps — and waits for your approval before treating the Capability as done.
Step 4: Review and commit the YAML
After the skill finishes, you’ll have two new files in your project:capabilities/<name>.yaml— the public contract (inputs and outputs)recipes/<name>.yaml— how it runs (steps, shell commands, return values)
Sample frozen YAML
Here is what a frozen Capability and Recipe look like for a Hacker News story fetcher — the kind of task you might build in a single agent session and want to replay indefinitely.capabilities/hn-top-stories.yaml
recipes/hn-top-stories.yaml