The Keyboard Wasn’t the Work

A black and white mechanical keyboard with red Escape and Enter keys

Photo by JL Cabrera on Unsplash.

Oscar Gallo

Oscar Gallo

Published on August 13, 2026

What happened when I started a real build from my phone, put it back in my pocket, and kept walking.

A week and a half before recording, I kept building after a client meeting while walking Freya through a park near home. I didn’t open a terminal. I didn’t touch a keyboard. I talked to my phone, put it away, and came back a few hours later to the work I expected.

At first, I treated it as a neat productivity win. The more I thought about it, the less the speed mattered. What stayed with me was the fact that typing code had stopped being the bottleneck.

The build

I described the system. Codex did the typing.

I opened a cloud Codex session from my phone and talked through the build. I explained what the system needed to do, where it couldn’t cut corners, and that it had to use Postgres. Then I switched to plan mode.

I skimmed the plan and approved the permissions it needed. Then I put the phone back in my pocket and carried on walking.

A few hours later, the work was done.

I had already been using the Codex desktop app heavily for about a month. One unattended run had gone on for more than eight hours. Even so, starting this one from my phone felt different. I barely needed an interface at all.

I never opened a terminal or an IDE. I didn’t even touch a keyboard.

The conversation started the job, but I still owned the engineering.

I had to decide what to build and how it should work. I had to inspect the plan, catch bad assumptions, and judge the result. Codex saved me the typing; it didn’t make the decisions for me.

Agents are making implementation cheaper. That puts more weight on architecture, because a bad decision can now be executed much faster.

My version of the loop is pretty simple:

  • Write down the outcome and the constraints.
  • Choose the architecture before execution starts.
  • Read the agent’s plan and look for bad assumptions.
  • Keep the definition of "done," along with failures and decisions, somewhere durable.
  • Review the result before it becomes real.

At Vallyseed, that last part has become an engineering effort of its own. We tried keeping agent state in a local Markdown file. It failed miserably: context was easy to lose, and another agent could overwrite the record.

So we moved the recovery trail into GitHub issues. When a long-running agent fails, it records where and why it stopped before the context resets. The next run reads the issue and continues from that evidence.

I can do without the keyboard. I can’t do without reliable state and review.

The signal

The harness is becoming the product

Meta says Muse Code can coordinate persistent workers in isolated worktrees and reconstruct a session from a local append-only event log after a crash. In one company demonstration, it made more than 1,000 tool calls over as long as 24 hours.

That does not make it ready for an ordinary production repository. I only tested Muse Code briefly, but the error handling felt solid. The smaller model was useful because the harness kept it on track.

Meta: Introducing Muse Code and Muse Spark 1.2

Cheap workers make routing practical

DeepSeek lists V4 Flash at $0.14 per million uncached input tokens and $0.28 per million output tokens, with a 1 million-token context window and compatibility with common coding-agent interfaces.

For the first time, I can imagine OpenCode as a serious competitor to Claude Code and Codex. A strong model could own the main task while a cheaper one handles narrow subproblems. I care less about the price of one token than the total cost of getting a result I can accept after retries and review.

DeepSeek API: Change Log

Verifiable research beats another benchmark

OpenAI published ten Astra-generated results across mathematics and theoretical computer science, a 249-page paper, and machine-checkable Lean certificates.

I want more AI systems doing scientific research. It is one of the best uses of this technology. Matt pushed back on one thing, and I agree with him: OpenAI can’t be the final reviewer of OpenAI’s claim. At least outside specialists now have certificates they can check.

OpenAI: Ten advances in mathematics and theoretical computer science

The reflection

Freedom from the desk, dependence on the cloud

Walking through the park while a real build moved forward felt incredible. It also freaked me out.

I could work without a keyboard and without keeping my computer on. But that meant the work was running on somebody else’s computer. The same system that freed me from the desk made the dependency impossible to ignore.

I’m not giving up the convenience; I’m already using it. But a natural interface doesn’t erase the tradeoff.

I still can’t decide whether an optional computer is progress or the start of giving up another layer of control. Right now, it feels like both.

What I’m reading, watching, and using

  • Codex in the ChatGPT desktop app has been my main workspace for about a month. I’ve started cloud tasks from my phone and left one run unattended for more than eight hours.
  • I still reach for Warp when I want named and color-coded agents, worktrees, a file tree, and diff review.
  • I run Claude Code inside Warp when I want the terminal workflow.
  • I’ve only tested Muse Code briefly. Its error handling felt solid, and the harness made the smaller model more useful.

The harder question

The next time you catch yourself arguing about language syntax or terminal preference, ask a harder question: can you explain the architecture and definition of done well enough that the system can execute without you typing every line?

The keyboard may become optional. Judgment won’t.

Watch or listen to Human in the Loop, Episode 18: