Drew Butler.

Projects

I build open-source tools that give people and agents predictable ways to work with software. They make rules explicit, provide clear guardrails, and produce results you can inspect and trust.

Good tools should be forgiving when you make a mistake, but structured enough to keep you on the right path. They should have an obvious lifecycle, sensible defaults, and clear boundaries, so the person or agent using them can focus on the problem instead of figuring out how to use the tool.

cargo install --git https://github.com/dbtlr/norn norn-run
norn -C ~/vault validate --summary
norn -C ~/vault find --eq type:task --format records
norn mcp --cwd ~/vault   # serve the vault to agents

norn

A Rust CLI and MCP server that turns a Markdown vault into a deterministic graph you can query, validate, and repair — for shells, scripts, and coding agents.

Rust active
mimir overview     # current direction and active work
mimir next         # ready tasks, in rank order
mimir list         # the live work queue

mimir

A local-first work-state engine over a Norn-managed, git-backed Markdown vault. The CLI, MCP server, HTTP API, and operator console share one work model.

TypeScript active
# From the Loom repository
pnpm install --frozen-lockfile
pnpm build
node examples/textstat/dist/src/main.js --metric words README.md

Loom

A batteries-included, strongly typed framework for building CLI applications that are beautiful for humans and agent-native by default.

TypeScript early
# Connect to a local Artifacts server
codex mcp add artifacts --url http://localhost:4242/mcp

Artifacts

An MCP server and web interface that turn agent-generated documents, images, and PDFs into persistent links. Unversioned pre-alpha software for trusted networks.

TypeScript pre-alpha
cargo install skald-cli
sk commit          # carousel of AI commit messages
sk pr -y           # open a PR, title + body written for you
sk doctor          # check providers and config

skald

An AI-powered git workflow CLI (sk) that generates commit messages, PR titles, and descriptions from your diff and history. One Rust binary, multiple AI providers and platforms.

Rust active