etch turns small structured file changes into one command and one Git commit.
It is built for agentic coding workflows and knowledge repos where mechanical edits are too slow and token-hungry as tool choreography: set this JSON field, close that Markdown task, append this JSONL event, replace that section, update this table.
Instead of asking an agent to inspect a file, construct a patch, re-check the
result, inspect Git state, stage, and commit, etch makes the edit itself the
transaction.
- Applies structural operations to JSON, JSONL/NDJSON, YAML, Markdown frontmatter, Markdown sections, Markdown tasks and lists, CSV tables, Markdown pipe tables, and plain files.
- Records each successful mutation as a Git commit, making repository history the transaction log.
- Supports concurrent humans, agents, and subagents in one repo: invocations
plan from
HEAD, commit atomically, and retry when another writer moves the branch. - Treats multi-operation scripts as one transaction: all operations commit together, or none of them do.
- Fits live human and agent worktrees by materializing committed changes back into the index and working tree, merging around local checkout edits when possible.
- Supports review before execution:
--planemits the canonical transaction plan, and--dry-runemits the patch preview without changing files. - Stays bounded to the caller's current working directory, which makes it practical to allow-list for agent use.
GOEXPERIMENT=jsonv2 go install github.com/brandonbloom/etch/cmd/etch@latestRequires Go 1.26.2+ with GOEXPERIMENT=jsonv2, plus Git.
Released under the MIT License.
Run etch from inside a Git worktree.
git init
etch --dry-run set state.json status open
etch set state.json status open
git show --stat --oneline HEADThe set command creates state.json, creates a commit, and materializes the
new file into the checkout.
The CLI also includes reference help:
etch help
etch help <topic>
etch help --allUseful starting topics include model, invocation, values, formats,
addressing, fields, scripts, plans, and conflicts.
For the design record, see spec.md. For proposal history, see docs/proposals.
See DEVELOPING.md for contributor workflow notes, including local build, test, and website commands.
etch is open-source software released under the MIT License.