Mitchell Hashimoto on Agentic Coding

Table of content

Mitchell Hashimoto co-founded HashiCorp and was the driving force behind Vagrant, Terraform, Vault, Consul, and other infrastructure tools used by millions. After leaving HashiCorp in 2023, he’s been building Ghostty, a GPU-accelerated terminal emulator written in Zig. He’s also one of the most thoughtful writers on how to actually use AI for software development.

The distinction that matters

Hashimoto draws a sharp line between two types of prompting that most people conflate.

Interactive prompting is ChatGPT-style conversation. If the model gives you something unclear, you ask follow-up questions. It’s driven by a human.

Transactional prompting treats the model like a function. Input in, output out. You’re building something that needs to work reliably at scale, driven by software.

“Prompt engineering is about getting the desired result from a language model with the most accuracy and lowest cost,” he writes. “These goals lend themselves more to transactional use cases.”

Most of what people call “prompt engineering” is actually just trial and error — what he calls “blind prompting.” Real prompt engineering involves demonstration sets, multiple candidate prompts, systematic testing across different models, and actual accuracy metrics.

Vibing with intention

In October 2025, Hashimoto published a detailed walkthrough of building a non-trivial Ghostty feature using AI agents. The feature: unobtrusive macOS update notifications that don’t interrupt users mid-demo (a famous OpenAI keynote was interrupted by a Ghostty update prompt).

His process reveals how an expert uses these tools:

Pre-AI planning first. Before touching any AI tooling, he researched Sparkle’s documentation, identified the right APIs, and formed a rough plan. “AI is a very good prototyper, so even knowing what you don’t know is useful enough to get started.”

Small chunks, not full features. Rather than asking the agent to build everything, he scoped down to just the UI prototype first. “Smaller chunks of work are easier to review, understand, and iterate on.”

Plans before code. “Creating a comprehensive plan interactively with an agent is a really important first-step for anything non-trivial.” He often saves these to spec.md for reference in future sessions.

Cleanup as a discipline. He calls this the “anti-slop session” — going through AI-generated code, understanding it deeply, reorganizing, adding documentation. “Better organized and documented code helps future agentic sessions perform better.”

Know when to stop. When the agent failed repeatedly to fix a bug with macOS titlebar styling, he backed off: “It’s at this point that I know I need to step back, review what it did, and come up with my own plans. It’s time to educate myself and think critically. AI is no longer the solution; it is a liability.”

The fill-in-the-blank pattern

One of his most effective techniques: create scaffolding with descriptive function names, parameters, and TODO comments, then let the AI complete it. “AI is very good at fill-in-the-blank or draw-the-rest-of-the-owl.”

He also frequently uses AI for:

The oracle pattern

Hashimoto uses Amp for agentic coding. A key technique: consulting “the oracle” — a read-only subagent that uses a slower, higher-cost model for planning and reasoning. He always consults it before major work.

His last prompt for any feature is always: “Are there any other improvements you can see to be made? Don’t write any code. Consult the oracle.”

Cost and time reality

For the Ghostty update feature:

“Many people on the internet argue whether AI enables you to work faster or not. In this case, I think I shipped this faster than I would have if I had done it all myself, in particular because iterating on minor SwiftUI styling is so tedious and time consuming for me personally and AI does it so well.”

AI as platform shift

Hashimoto sees AI through the lens of cloud computing’s rise. Both provided immediate value to early adopters. Both had impractical beginnings that gradually became more capable. Both forced an evolution in software properties.

“I predict that a similar situation will arise with AI. Some sort of properties will present themselves that differentiate between ‘old’ and ’new’, and the products and businesses that embrace the ’new’ will become more attractive to a shifting generation of users.”

He notes that dismissals follow the same pattern as cloud: “it’ll never generate large amounts of code” echoes “real businesses won’t ever be able to use cloud.”

The expert’s edge

A recurring theme: AI doesn’t replace domain expertise, it amplifies it. Hashimoto is effective with these tools because he understands infrastructure, systems programming, and UI development deeply.

“I believe good AI drivers are experts in their domains and utilize AI as an assistant, not a replacement.”

When an agent goes down a bad path, he recognizes it. When it produces working but obviously wrong code, he knows to throw it away and restructure. When the model fails, he can research and solve the problem himself.

The tools are a multiplier, not a shortcut.