etch

module
v0.0.0-...-19665b2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 4, 2026 License: MIT

README

etch

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.

Features

  • 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: --plan emits the canonical transaction plan, and --dry-run emits 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.

Install

GOEXPERIMENT=jsonv2 go install github.com/brandonbloom/etch/cmd/etch@latest

Requires Go 1.26.2+ with GOEXPERIMENT=jsonv2, plus Git. Released under the MIT License.

Try it

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 HEAD

The set command creates state.json, creates a commit, and materializes the new file into the checkout.

Documentation

The CLI also includes reference help:

etch help
etch help <topic>
etch help --all

Useful 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.

Development

See DEVELOPING.md for contributor workflow notes, including local build, test, and website commands.

License

etch is open-source software released under the MIT License.

Directories

Path Synopsis
cmd
etch command
etch-validate command
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL