galdr
galdr — Old Norse for a chanted spell: a sequence performed once and sung again.
Record & Replay for agent skills. Your agent just did a multi-step task well. Rather than re-explain it next time, galdr records the tool calls it made and distills them into a reusable skill the agent can replay with judgment. It runs entirely on your machine.
Why tool calls, not pixels
A screen-recording Record & Replay breaks the moment a button moves. An agent already emits a clean, structured trace of what it did — each tool call, its input, its result. galdr records that. The replay isn't a pixel re-enactment; it's a skill the agent reads and applies. That includes the agent's own browser and Computer-Use work — those clicks and types are tool calls too, so galdr keeps the action and drops the screenshot. The one thing out of scope is capturing a human's manual gestures in an app the agent never touched.
Quickstart
# ... a few tool calls ...
No 26-character ids to copy — galdr resolves a recording by the latest, a name, or a short
prefix. Run galdr with no arguments for a one-screen overview of where you are.
The loop
- Record — start a recording, do the task with your agent, stop. Its tool calls are captured automatically; nothing to narrate.
- Distill — a replay of the tool calls is not yet a skill.
galdr distillrenders a faithful draft and hands the agent an authoring brief: supply the why, the inputs that vary, each step's intent, the gotchas. Install your version with--from.--fasttakes the mechanical draft as-is;--autolets a local model write it. - Replay — the skill is discoverable by name in every harness on the machine. Invoke it later with new inputs; interpret it, don't replay it verbatim.
What else it does
galdr suggest— finds repeated tasks (the same shape across recordings) worth a skill.galdr bench— how reliably your skills replay, aggregated from the outcomes you record.galdr tui— a terminal UI: an Overview dashboard, then tabs for recordings, skills, and harnesses; read aSKILL.mdor a recording's (noise-filtered) steps at a glance.galdr skills/galdr doctor— a small readiness-scored skill catalog, and a health check for your setup.- Every read command takes
--json, so an agent consumes galdr without scraping a table.
One skill, every harness
galdr distills a skill once and makes it discoverable in every harness it finds — Claude
Code, Codex, and Cursor — and it can record in any of them. galdr setup <harness> prints
the one-line snippet to wire the sensor and the per-harness step (e.g. trusting the hook in
Codex). Record in one, reuse everywhere.
Local and private
- Everything lives on your machine, under
~/.galdr. galdr makes no network egress — it never phones home. The single opt-in exception, local-model distillation, talks only to loopback. - An install-time gate redacts secrets and personal paths, and Computer-Use screenshots are dropped (the action is kept, the pixels are not). A recording can still hold sensitive command output, so keep that in mind before sharing one. See SECURITY.md.
- The recorder never breaks your agent session: if it fails internally it records nothing and exits cleanly.
Install
Or grab a prebuilt binary from a release: each ships signed and checksummed (Sigstore + SHA-256) with an SBOM, for macOS and Linux (arm64 + x86_64).
Roadmap
Shipped: the record → distill → replay loop with author-by-default distillation,
galdr suggest and galdr bench, an Overview-led TUI, multi-harness skills and
sensors (Claude Code, Codex, Cursor), optional vision-assisted authoring (keep the
screenshots ephemerally so the authoring pass writes semantic GUI steps), and a safe,
redacted export path.
Next: a live end-to-end recording verified in each harness, capture of a human's GUI gestures (the deliberate scope gap above), and a multi-agent broker over the same model.
Contributing
See CONTRIBUTING.md. Commits follow Conventional Commits; the project uses Semantic Versioning.
License
MIT © Petru Arakiss. Simple and permissive: use it, fork it, ship it.