Navan opened a browser tab and typed localhost:18080. The Control UI loaded in under a second. It was clean, functional, unburdened by the kind of decorative design that signaled insecurity about what the product actually did. This product knew what it did.
In the center panel, a live feed: the agent's activity, streaming in real time. Every file read, every file write, every tool call, every network request. Not raw logs—structured data, rendered as a timeline. Each event had a timestamp, a category, a brief description, and a severity indicator. Most events were green. Routine. Expected.
Navan had launched a Claude session ten minutes ago with a single instruction: refactor the authentication module in the DTU's Okta twin. The agent had been working steadily since, and the Control UI was its witness.
He watched a sequence of file reads scroll past. The agent was reading every file in the auth/ directory, building context. Navan could see the exact order: auth/handler.go, then auth/middleware.go, then auth/token.go, then auth/session.go. A logical traversal. The agent was reading the code the way a new engineer would read the code—starting with the entry point and following the dependency chain inward.
Then the writes began. The agent created a new file: auth/errors.go. Navan clicked the event in the timeline and a diff panel opened on the right side of the screen, showing exactly what the agent had written. Forty-seven lines of error type definitions and constructor functions. Clean Go. Idiomatic.
A network event appeared: the agent was calling an MCP tool to run the test suite. Navan watched the tool call appear in the MCP panel—the tool name, the parameters, the duration, the result. Tests passed. The agent continued.
Jay wandered over with his coffee and looked at Navan's screen. "Is that the Control UI?"
"Localhost eighteen-oh-eighty," Navan confirmed.
Jay pulled up a chair. They watched together as the agent modified auth/handler.go, replacing inline error strings with the new error types from auth/errors.go. The diff panel showed each change. The timeline grew. The test suite ran again. Passed again.
"It's like watching a nature documentary," Jay said. "You're observing the animal in its habitat. You can see everything it does, but you're not interfering."
Navan wrote in his notebook: The Control UI turns opacity from a principle into a practice. You don't have to trust what the agent says it did. You can watch what it actually does.
The agent finished the refactor. The timeline ended with a clean summary: fourteen files read, four files modified, one file created, twelve test runs, zero policy violations. Twenty-three minutes of work, fully visible, fully auditable.
Navan closed the browser tab. The session logs persisted. They always did. The UI was ephemeral. The record was permanent.
"Unburdened by the kind of decorative design that signaled insecurity about what the product actually did." That's the most precise description of good developer tooling I've ever read.