Your agent designs it
Cori runs it
Describe the work once in chat (Codex, Claude or any other agent harness). Cori saves it as a real program on your machine — typed TypeScript running on Temporal — so it reruns on demand, survives restarts, and makes zero LLM calls at runtime unless you asked for one.
Works with the agents you already use.
Cori is a skill, not another harness. Your agent designs the workflow; Cori runs the result.
- Codex
- Pi
- OpenCode
- Claude Code
- Gemini CLI
- Cursor
- DeepSeek
- Kimi
- Cline
- GitHub Copilot
- Conductor
- Mistral AI
+ and many more — any agent that supports skills
You already had this conversation.
The agent reads the sheet, checks the spec, translates, drafts the mail. It got there by searching — and on Monday it searches again. Same dead ends, same tokens.
One line ends that. Cori writes down what the agent just did — four typed steps, schemas at both edges, fixtures — as a directory in your repo. The transcript is not what gets saved. The code is.
save_workflow is the only line you had to learn →
> Q3 supplier sheet just landed. Check every product against the GPSR fields, translate the missing FR descriptions, and mail me what's still incomplete.
⏺ 12 products are missing a declaration. Draft is in your outbox.
Open it. Press run.
One window is the whole product. Your workflows on the left, the one you picked on the right, and the four steps it was compiled with — what kind each one is, and what each one cost. No terminal, no credentials.
The clock is the real one: two seconds, and only step three was declared an LLM step. That rerun bills €0.004 against the €0.41 it took the agent to work it out the first time.
- translate_product_sheets_fr
- hello_worldcori-do/workflows
- weekly_pipeline_digest
- 01fetch_sheetcli✓ 0.2s
- 02check_gpsrcode✓ 0.5s
- 03translatellm✓ 1.2s
- 04mail_reportmcp_tool✓ 0.2s
One person, or the whole company.
Nothing changes on the way up. Each team keeps its own folder in the same registry, and every workflow in it runs the same way — compiled steps on Temporal, on the machines you point at them. There are just more folders.
- translate_product_sheets_fr
- enrich_inbound_leads
- weekly_pipeline_digest
- reconcile_invoices
- close_the_month
- rebill_fx_spread
- triage_new_tickets
- draft_first_reply
- escalate_breached_sla
- version
- A workflow is a directory of files, so
gitalready works on it. Diff a step, revert a bad one, review the change in a pull request. - share
- Push the folder. Whoever pulls it gets the same program — not a prompt that may behave differently on their machine.
- grab
- Paste a reference and the launcher installs someone else’s registry.
cori-do/workflowsis howhello_worldgot here.
Nothing we host. Yet.
Every run lands on a machine you already own — the laptop in front of you, the box under your desk, the runner your CI already pays for. There is no worker of ours in the path, and nothing to sign into.
- this maclocal
The app bundles the engine. Nothing to stand up, nothing to sign into.
- ops-box.lanremote
The box under your desk, taking work off the same queue.
- ci-runnerremote
Anything that can reach the queue counts as a worker.
- cori cloudsoon
Workers we run, for when you would rather own none of them.
The part you can check.
Ten multi-step Google Workspace tasks. Three fresh-agent runs each, graded from Workspace state rather than from the agent’s closing message — then the same ten replayed as Cori workflows.
Execution time
Average wall time per run, across all 30 trials.
7.5x faster execution time. Useful for those who want to scale automation
Runtime LLM tokens
Tokens per run on customer meeting prep, the widest of the ten tasks.
No prompt runs at runtime, so there is nothing left to bill.
All 30 replays succeeded: 294 CLI and code activities, every one on its first attempt. Three trials per task, so these are descriptive results and not a universal estimate — the caveats are in the post. Read the benchmark →
Small enough to hold in your head.
The agent is the design tool. Once the work is right, Cori turns it into typed steps, Temporal keeps their place, and your own machines do the work.
Your agent
The work is figured out once.
Turns the proven path into code.
manifest.md · steps/*.ts · fixtures/
Cori engine
Loads one folder or git ref.
Types the DAG and assigns each step.
Retries · timeouts · resume
Your machines
Routes work to the right identity.
Owns credentials and every side effect.
Workflows, cache, run traces and configuration are plain files. No hosted control plane. No hidden runtime.
One download. Under a minute.
The app bundles the whole engine — no runtime to install, nothing to configure.
- 02
⌘L cori-do/workflowsOpen the launcher, paste this reference, press Enter, run hello_world. No credentials.
- 03
$ npx skills add cori-do/coriGive your agent the Cori skill so it can save your next conversation as a workflow.
Prefer the terminal? The launcher’s footer installs the cori command on your PATH. The skill works beyond Claude Code — Cursor, Gemini CLI and Copilot CLI too. See the install flags →