Mitchell Hashimoto¶
Founder of HashiCorp (Terraform, Vagrant, Packer, Consul, Vault, Nomad). Now working mostly on Ghostty, a high-performance GPU-accelerated terminal emulator written in Zig + Swift (Zig core, Swift macOS shell).
Shape of his AI-coding practice (Zed session, June 2025)¶
Self-described "architect" — he owns the code structure, data flow, and where state lives, then steers agents within that shape. Treats LLMs as a team of junior-to-mid engineers who are great at execution but lack senior judgment (maintainability, cross-team consistency, non-regressing fixes).
Key operating rules:
- Never let it drive unsupervised for long stretches. "I'm driving into mud" is his metaphor for vague, long-running agent sessions — each iteration gets slower as new changes break previous ones. He tightens scope ruthlessly.
- Disable the agent's self-tests for Ghostty. Ghostty's Zig↔Swift architecture means Claude can't build/run the Mac app or read screenshots, so self-verification is worse than useless; he verifies manually via Xcode
⌘Rafter adiffsanity check. - Snapshots, not commits, during an interactive session. Uses Jujutsu (jj) not git, takes lightweight snapshots mid-session so he can rewind when an agent heads the wrong way — without a formal commit message per step.
- Triage slash-command. A custom Claude slash-command takes a GitHub issue number, pulls the issue, and — crucially — does not fix it. It explains why the bug exists and proposes a path. Used as "Hail Mary" triage across 5+ issues at once while doing other things.
- Parallel agents as a competition, not a pipeline. When confidence is low he'll copy Ghostty into
ghostty-2/3/4/, run different models/agents on the same prompt, and adjudicate the outputs. Only viable with machines — "you can't do that with people without getting in a lot of trouble." - TDD with bugs. Brought up in a strict TDD shop (no line of code without a failing test). Not that strict day-to-day, but for bugs he still writes the failing test first, then has the agent fix it.
- Zig is the hardest case. Underrepresented in training data — he routinely asks the model to solve the problem in Python/C/Rust first and hand-ports back to Zig. Swift refactors are near-perfect; Zig reasoning about fixed-size virtual memory pages and 16-bit pointer offsets "blows it up into a totally different problem."
Stance¶
- AI-generated code is ~25% of Ghostty in the last two months (June 2025), far less than 1% across the whole project.
- Quality-bar first: echoing Karpathy's agentic-engineering frame, he's explicitly in the "raise the quality bar, don't just go faster" camp.
- Language servers are optional: his autocomplete is increasingly just LLM tab completion because the tools now pull the right open-buffer context.