Working Notes on Agent Systems/Brad Zhang

@teach_fireworks / X longform

Many people think that the difference between Codex CLI and Codex App is just: "One terminal, one GUI".

Many people think that the difference between Codex CLI and Codex App is just: "One terminal, one GUI". But once you really start using the computer, you will find that...

May 6, 2026 · 3 min read

Many people think that the difference between Codex CLI and Codex App is just: "One terminal, one GUI".
Figure 1 / source image

Many people think that the difference between Codex CLI and Codex App is just: "One terminal, one GUI". But once you really start using the computer, you will find that they actually represent two completely different AI agent designs, and for different scenarios, even if the same model collaborates, the results and quality vary greatly. —

  • The core of the Codex CLI is more like the "automation pipeline" CLI + computer use is not the GUI. It's the Agent Runtime. You give it a goal: "Filter these 3000 NEFs, automatically score them, export the web version, and upload the NAS." It will go into a kind of continuous loop: look at the state and perform the action check before proceeding to the next step. The point is: it does not depend on you. This is actually not an assistant anymore, but an unattended agent. The real advantage of the CLI has never been “clicking the mouse.” It can be autonomous orchestration for a long time. So the CLI is perfect for: Bulk workflow Long run shell/script Linkage Massive asset handling Automatic ingest/export/archive Essentially: the CLI is more like an AI Ops system. —
  • Codex Apps are more like Desktop Collaboration Assistants, but there's a problem with GUI-like software: it's a highly visual GUI. Plenty of sliders. Plenty of panels. A lot of visual judgments. At this point, the benefits of the app are instantly amplified. Computer use of the latest version of the Codex App: It's not a simple screenshot + OCR anymore. It's more like: Desktop-native agent. It will: Understand the current UI state, understand the window hierarchy Look at the histogram, judge the skin color, perceive the light change You will obviously feel that it is "looking at the screen". This is critical. Because the essence of GUI software is “continuous correction based on visual feedback”. —
  • The real difference: who controls the loop? This is the core distinction. The loop of the CLI is at runtime. The loop of the app is in the model. What does it mean? Codex CLI is more like: "System level agent". The Codex App is more like: "assistant with computer use". So: CLI is more stable for long time execution. Apps are more natural for human-computer collaboration. —
  • Why do so many people misjudge? Because now the Codex App has been introduced: Goal Long Task Continuous execution Multi-stage planning So the surface looks: has become more and more like the CLI. But the ground floor is actually quite different. The CLI is: agent runtime first, then UI. The app is: Desktop context first, then gradually expose agent capabilities. —
  • The GUI software installed on the computer is the best touchstone because it amplifies the weaknesses of all agents. CLI FAQ: Modal lost panel state drift after redraw can not find the control slider accuracy problem App: Significantly better at GUI state tracking. But the other way around: if you let it run for 6 hours: the CLI wins again. —
  • I now think that the strongest way to play is actually: App: "visual judgment". CLI do: "Pipeline Execution". For example: First in the app: call up a set of master presets. Then let the CLI: Batch Sync Automatic Export Automatic Archiving Automatic Upload The biggest change in 2026 may be more and more individuals, and it is obvious that Agent Runtime is becoming a new operating system layer.

Visual summary

Article argument map

Generated from the post's content graph

FORMATTOPICCAPABILITYMARKETcoverscoverscoverssignalssignalssignalssignalssignalsFORMATarticle featureTOPICagentsTOPICmemoryTOPICtoolingCAPABILITYagent workflowCAPABILITYAI-native workbenchCAPABILITYdeveloper toolingCAPABILITYevaluationCAPABILITYproduct surfaceMARKETapplied AI team
Mermaid outline
flowchart LR
  format-article["article feature"]
  topic-agents["agents"]
  topic-memory["memory"]
  topic-tooling["tooling"]
  capability-agent-workflow["agent workflow"]
  capability-ai-native-workbench["AI-native workbench"]
  capability-developer-tooling["developer tooling"]
  capability-evaluation["evaluation"]
  capability-product-surface["product surface"]
  market-applied-ai-team["applied AI team"]
  format-article -->|covers| topic-agents
  format-article -->|covers| topic-memory
  format-article -->|covers| topic-tooling
  format-article -->|signals| capability-agent-workflow
  format-article -->|signals| capability-ai-native-workbench
  format-article -->|signals| capability-developer-tooling
  format-article -->|signals| capability-evaluation
  format-article -->|signals| capability-product-surface

Visual structure

Essay structure map

Built from summary and key paragraph positions

Many people think that the difference between Codex CLI and Codex App is just: "One t...THESISMany people think thatthe difference betweenCodex CLI and CodexApp is just: "OneSIGNALMany people think thatthe difference betweenCodex CLI and CodexApp is just: "OneOPERATOR3. The realdifference: whocontrols the loop?This is the coreIMPLICATION6. I now think thatthe strongest way toplay is actually: App:"visual judgment". CLI
Mermaid outline
flowchart LR
  thesis["Many people think that the difference between Codex CLI and Codex App is just: \"One terminal, one GUI\". But..."]
  signal["Many people think that the difference between Codex CLI and Codex App is just: \"One terminal, one GUI\". But..."]
  operator["3. The real difference: who controls the loop? This is the core distinction. The loop of the CLI is at runt..."]
  implication["6. I now think that the strongest way to play is actually: App: \"visual judgment\". CLI do: \"Pipeline Execut..."]
  thesis -->|frames| signal
  signal -->|develops| operator
  operator -->|lands in| implication

Source: View the original post