Ptacek buries TUIs, Willison pins openai<3, Webb learns quaternions
Three named developers post unrelated workflow moves today: Ptacek eulogizes TUIs, Willison pins a broken SDK, Webb tutors with ChatGPT.
Ptacek buries TUIs, Willison pins openai<3, Webb learns quaternions
TL;DR
- Thomas Ptacek declares TUIs obsolete now that agents make native GUIs cheap to build.
- Simon Willison ships LLM 0.32.1 pinning
openai<3after two upstream shocks in two weeks. - Matt Webb learns quaternions via ChatGPT to ship Galactic Compass 2’s AR arrow to Sagittarius A*.
- 45% of AI-generated code ships OWASP Top 10 bugs, per VibeAppScanner’s 2026 audit.
- Anthropic RCT finds AI-assisted developers score 17% lower on mastery quizzes than manual coders.
Today’s tech pool is three named developers taking three unrelated stances on AI-era personal engineering — Thomas Ptacek eulogizing TUIs, Simon Willison shipping a defensive dependency pin, Matt Webb using ChatGPT as a quaternions tutor. No shared thread runs through them; each is worth reading on its own merits.
Ptacek’s manifesto lands the same week Claude Code and OpenCode are moving toward TUIs, and Ratatui’s maintainer answers that the terminal protocol is what’s antiquated, not the form factor. Willison’s LLM 0.32.1 exists because upstream broke twice inside two weeks: httpx’s maintainer disabled issues in February, and OpenAI’s SDK 3.0 stopped installing the legacy version. Webb’s tutoring genuinely unblocked a shipped AR feature — and sits next to an Anthropic RCT where AI-assisted developers scored 17% lower on mastery quizzes than manual coders.
Ptacek says kill TUIs; Ratatui and SSH users disagree
Source: simon-willison · published 2026-08-21
TL;DR
- Thomas Ptacek says coding agents made native GUIs cheap enough that personal CLIs and TUIs have no excuse.
- Ratatui’s maintainer concedes the plumbing is antiquated but wants a modern terminal protocol, not the form factor’s end.
- Agent CLIs like Claude Code and OpenCode are moving toward TUIs because plan/diff/approve loops beat IDE sidebars.
- 45% of AI-generated code ships OWASP Top 10 bugs, per VibeAppScanner’s 2026 audit.
The argument
Thomas Ptacek’s pitch, boosted by Simon Willison, is short: coding agents have collapsed the cost of a usable native GUI to roughly nothing, so your 500 throwaway CLIs and Bubble Tea TUIs should now be menubar apps. Willison offers himself as evidence — his vibe-coded macOS bandwidth and GPU monitors, first shipped in March, are still in daily use five months later.
That’s a real data point. It’s also the easy case: single-user, single-platform, read-only, no network trust boundary. The pushback is about everything outside that box.
The maintainers half-agree
Josh McKinney, who maintains Ratatui, responded on Hacker News by conceding most of Ptacek’s technical complaints. Terminal protocols are a patchwork of xterm and ANSI cruft that fights accessibility, regions, and modern keyboard input. His counter is to fix the substrate — “throw away the compatibility mess” in favor of a modern terminal protocol — not abandon the form factor 1. The people writing the leading TUI library don’t think TUIs are obsolete; they think the 1970s plumbing under them is.
The SSH and agent-loop counter
The most durable objection Ptacek waves off: a native GUI is useless over SSH, and cross-platform GUI toolkits feel non-native everywhere they run, while a TUI is consistent on every box you can reach 2. Reddit’s agent-tooling threads make the same point from the opposite direction — Claude Code, OpenCode, and Warp deliberately picked TUI over GUI because the plan → diff → approve → run cycle feels more fluid in a terminal next to git and vim than in “crowded IDE sidebars.” Charm’s Bubble Tea now delivers diffs, animations and permission modals that used to be the GUI’s exclusive turf 3.
So the frontier of AI tooling itself is standardizing on glamorous TUIs at exactly the moment Ptacek declares the form dead.
Vibe-coded natives: cheaper, not free
Willison’s “cost is nearly zero” framing needs an asterisk. Michael Tsai’s roundup on LLM-generated SwiftUI reports agents ship menubar apps quickly but hallucinate on the exact macOS-specific glue Ptacek’s examples depend on — MenuBarExtra state, the SwiftUI ↔ AppKit NSStatusItem bridge, and silent process terminations when a user hides the icon via System Settings 4.
Zoom out and the picture gets worse. A 2026 METR study found experienced engineers were 19% slower with AI on familiar codebases even while self-reporting 2–3× speedups 5. VibeAppScanner’s audit found over 45% of AI-generated code carried OWASP Top 10 vulnerabilities, with AI-linked security incidents rising sixfold in Q1 2026 6.
Takeaway
Ptacek is right about the narrow case: for a solo-user macOS status bar toy, a vibe-coded SwiftUI app now beats a Python CLI. He is wrong to generalize. TUIs survived because they compose with SSH, tmux, pipes and shell history — and the current wave of AI coding agents is betting on that composition, not against it. “Stop making TUIs” is really “start making GUIs too.” That’s a fine call. The stronger one — retire the terminal — doesn’t survive contact with the people actually building on it.
Matt Webb learned quaternions via ChatGPT to ship AR compass
Source: simon-willison · published 2026-08-21
TL;DR
- Matt Webb used ChatGPT as a tutor to learn quaternions well enough to ship Galactic Compass 2’s AR mode.
- The tutoring unblocked a real feature: an AR arrow to Sagittarius A* that works at any phone orientation.
- An Anthropic RCT found AI-assisted developers scored 17% lower on mastery quizzes than manual coders.
- Practitioners report LLM tutoring as an unlock, echoing Webb’s experience on 3D math bugs.
- Controlled studies keep finding retention lags the feeling of learning.
The anecdote has a shipping artifact behind it
Simon Willison’s quote-post lifts one paragraph from Matt Webb: after releasing Galactic Compass 1.0, Webb sat down with ChatGPT not to generate rotation code, but to be taught quaternions well enough to write it himself. Books hadn’t worked. Mathematician friends hadn’t worked. A patient interactive tutor did.
The reason to take this seriously — beyond it being a nice story — is that the tutoring produced a load-bearing feature. Independent coverage of the 2.0 release describes an ARKit sensor-fusion overlay that plants a floating green arrow toward the galactic center in the user’s physical environment, and specifically fixes the 1.0 limitation where the heading projection collapsed unless the phone was held flat 7. That fix is the quaternion work. Euler-angle projection was the reason the old version broke; quaternions are the reason the new one doesn’t. Webb didn’t outsource that — he learned it.
A Hacker News thread on LLMs and 3D math corroborates the shape of the experience: one commenter reports an LLM resolving a spaceship-rotation bug in seconds that had cost two days of manual study, though notably the model didn’t reach for quaternions to avoid gimbal lock until the human prompted it 8. The tutor works, but the human still steers.
The tutor-as-teacher claim is contested
Webb’s stronger claim — that offloading to AI pushes him to learn more — is where the evidence gets messier.
An Anthropic randomized study found developers using AI assistance scored 17% lower on subsequent mastery quizzes than developers who coded manually, which is roughly the opposite of “AI deepens learning” 9. Learning-science researchers add that LLM tutors have documented “conceptual blind spots” — misreading mathematical symbols, missing errors in multi-step reasoning — that can leave students confidently memorizing wrong methods 10. And older math-accuracy audits put ChatGPT at as low as 38% on complex calculations, with hallucinated intermediate steps in two out of three final answers 11.
The code runs, so the learner assumes the model taught correctly.
That’s the failure mode Webb’s “learned just enough to make the app work” flirts with. Working code is not the same signal as correct understanding, especially in a domain where wrong-but-plausible derivations are the norm.
What’s changed since the skeptical studies
One caveat cuts the other way. Most of the “ChatGPT is bad at math” literature predates reasoning models. OpenAI’s o1 jumped from GPT-4o’s 13% on the AIME to 83% 12 — a large enough shift that “is the LLM tutor mathematically reliable?” is a materially different question in 2026 than it was in 2023. Webb doesn’t say which model he used, but the ceiling has moved.
The honest read: Galactic Compass 2 shipped, the AR mode works at arbitrary orientation 7, and the tutoring cleared a block that human resources hadn’t. Whether Webb actually learned quaternions or learned a quaternion-shaped path through this specific problem is the open question — and it’s the same question every developer using an LLM tutor should be asking about their own recent “aha” moments.
Willison ships LLM 0.32.1 to survive the httpx maintainer exit
Source: simon-willison · published 2026-08-21
TL;DR
- LLM 0.32.1 pins
openai<3after OpenAI’s SDK stopped installing legacyhttpx, breaking fresh installs - httpx’s maintainer disabled GitHub issues in February 2026, freezing the library and pushing downstream onto
httpx2 - Companion
llm-openrouter 0.7shipped the same day to adopt OpenAI’s new Responses API surface - Two upstream shocks — a maintainer walkout and OpenAI SDK 3.0 — landed inside a two-week window
A one-line release note hiding two upstream shocks
Willison’s 0.32.1 changelog is three sentences long: fresh installs broke, so LLM now pins openai<3, and 0.33 will switch to httpx2. Read alone, it’s a boring dot-release. Read against the ecosystem, it’s the visible symptom of two simultaneous upheavals in the Python AI stack.
The immediate trigger is OpenAI Python SDK 3.0.0, released August 12, 2026, which stopped installing legacy httpx entirely 13. LLM had been silently piggybacking on that transitive dependency — as had a long tail of downstream tools. The same 3.0 release finalized the Assistants API sunset and pushed callers to the new Responses API, which is exactly the surface that the paired llm-openrouter 0.7 had to adopt. The two Willison releases aren’t a coincidence; they’re both downstream of one forcing function.
Why httpx died: governance, not code
The deeper cause is that OpenAI had to move at all. On February 27, 2026, httpx maintainer Tom Christie closed GitHub issues and discussions on the repo, citing “absurdly skewed gender representation” in the community 14. With no stable release since December 2024 and no public bug tracker, one of Python’s most-depended-on async HTTP libraries was effectively frozen. Downstream, that reclassifies httpx as a supply-chain risk.
Pydantic Services’ response was httpx2, a near drop-in that swaps certifi for truststore (using the OS-native CA store instead of Mozilla’s bundled certificates) and requires Python 3.10+ 15. LangChain, LiteLLM, and aider are all executing the same migration in parallel. Willison’s 0.33 plan puts LLM in the same convoy; 0.32.1’s openai<3 pin just buys a few weeks.
flowchart LR
A[httpx maintainer<br/>disables issues Feb 2026] --> B[httpx frozen]
B --> C[Pydantic forks httpx2]
B --> D[OpenAI SDK 3.0<br/>drops httpx]
D --> E[LLM installs break]
E --> F[LLM 0.32.1<br/>pins openai<3]
C --> G[LLM 0.33<br/>switches to httpx2]
Don’t miss what 0.32 actually shipped
The dot-release framing under-sells the base users are upgrading into. LLM 0.32 was the largest refactor in the tool’s history: a content-addressable SQLite message store modeled on Git — Willison recommends llm logs backup before upgrading 16 — plus reasoning traces to stderr, a PauseChain primitive for human-in-the-loop agents, GPT-5.6 Luna as the new default, and server-side provider tools including CodeInterpreter, WebSearch, and Anthropic MCP 17. The companion llm-openrouter 0.7 mirrors that surface against OpenRouter’s Responses API implementation.
The grumpy takeaway
Practitioner commentary on the pace has been sharp. The forced httpx→httpx2 cutover “often requires rewriting core infrastructure rather than just updating a model name,” and stacking it on the Assistants API sunset in the same month has been called a “dense” deprecation cycle 18. A three-sentence patch note is doing a lot of work here: it’s the seam where a maintainer walkout and a major-vendor SDK rewrite meet, and every serious Python AI project is quietly shipping the same fix this week.
Further reading
- llm-openrouter 0.7 — simon-willison
Footnotes
-
Hacker News discussion (Ratatui maintainer joshka) — https://news.ycombinator.com/item?id=49384210
↩The primary issue is not the TUI concept itself, but the antiquated protocols (ANSI, xterm, etc.) that underpin them… the industry should focus on ‘throwing away the compatibility mess’ in favor of a modern terminal protocol that natively supports accessibility, regions, and advanced keyboard input.
-
Hacker News commenters on ‘Stop Making TUIs’ — https://news.ycombinator.com/item?id=49384210
↩A native GUI might offer a superior experience on a local machine, [but] it is useless when interacting with a remote server via SSH… cross-platform GUIs often feel ‘non-native’ on every platform they support, whereas TUIs offer a consistent, if spartan, interface everywhere.
-
r/AgentContext_dev — Claude Code vs OpenCode in 2026 — https://www.reddit.com/r/AgentContext_dev/comments/1umadys/claude_code_vs_opencode_in_2026_when_does_each/
↩Agentic sessions—characterized by a rapid back-and-forth between model planning and file execution—often feel more fluid in the terminal than in crowded IDE sidebars… modern TUIs utilize frameworks like Charm’s Bubble Tea to provide high-fidelity visual feedback, including clear file diffs, animations, and interactive permission modals.
-
Michael Tsai blog roundup on LLM-generated SwiftUI — https://mjtsai.com/blog/2025/12/31/apple-llm-generating-swiftui/
↩LLMs often hallucinate solutions for complex system behaviors, such as how an app should behave when its menubar icon is hidden via System Settings; this can lead to silent process terminations that are difficult to debug… LLMs often struggle to bridge the gap between SwiftUI and the older AppKit (specifically NSStatusItem).
-
The Next Web on METR productivity study — https://thenextweb.com/news/developers-refuse-work-without-ai-coding-productivity-paradox
↩A 2026 METR study found that while developers self-report being 2–3x faster with AI, experienced engineers were actually 19% slower when completing tasks on familiar codebases.
-
VibeAppScanner risk report — https://vibeappscanner.com/ai-coding-agent-risks
↩Over 45% of AI-generated code was found to contain OWASP Top 10 vulnerabilities, and security incidents linked to AI code increased sixfold in the first quarter [of 2026] alone.
-
80aj.com coverage of the Galactic Compass 2 update — https://www.80aj.com/2026/08/22/iphone-galactic-compass-update/
↩ ↩2The AR mode uses the phone’s camera and sensor fusion to overlay a floating green arrow in the user’s physical environment, pointing directly to the galactic center… maintaining accuracy when the device is held vertically, a known limitation in the 1.0 release
-
Hacker News discussion on LLMs for 3D math — https://news.ycombinator.com/item?id=46831133
↩a task that previously took two days of manual study to fix—debugging a spaceship’s movement in 3D space—was solved by an LLM in seconds… still had to intervene to suggest quaternion-based solutions specifically to avoid gimbal lock, as the model did not instinctively prioritize them
-
Anthropic research on AI-assisted coding skills — https://www.anthropic.com/research/AI-assistance-coding-skills
↩developers using AI assistance scored 17% lower on mastery quizzes compared to those who coded manually, suggesting that cognitive offloading prevents users from deeply understanding the systems they build
-
Learning Scientists blog on AI tutoring risks — https://www.learningscientists.org/blog/2024/2/15-1
↩AI tutors often struggle with ‘conceptual blind spots,’ such as misinterpreting mathematical symbols or failing to recognize student errors in multi-step word problems, which can lead to students memorizing incorrect methodologies
-
99helpers.com — ChatGPT math accuracy analysis — https://99helpers.com/blog/how-accurate-is-chatgpt/for-math
↩some benchmarks recorded accuracy as low as 38% for complex calculations, with ‘hallucinated’ steps appearing in two out of three final results
-
DeepLearning.AI — The Batch on OpenAI o1 — https://www.deeplearning.ai/the-batch/openais-o1-models-excel-in-reasoning-outperform-gpt-4o-in-math-and-coding
↩the o1 model achieved an 83% score on the American Invitational Mathematics Examination (AIME), a massive leap from GPT-4o’s 13%
-
newreleases.io — openai-python v3.0.0 release notes — https://newreleases.io/project/github/openai/openai-python/release/v3.0.0
↩This version no longer installs legacy httpx automatically… immediately breaks any application utilizing custom transports, configuration objects, or manual event hooks built on the older library.
-
r/learnpython — ‘Pydantic httpx2 vs httpx’ thread — https://www.reddit.com/r/learnpython/comments/1tg2xox/pydantic_httpx2_vs_httpx/
↩On February 27, 2026… Christie closed community access to the repository, citing dissatisfaction with the ‘absurdly skewed gender representation’… effectively halted public bug reporting for one of Python’s most critical async libraries.
-
manueltgomes.com — Pydantic httpx2 deep dive — https://manueltgomes.com/python/pydantic-httpx2-whats-new-and-how-to-take-proper-advantage-of-it/
↩httpx2 is designed as a drop-in replacement for httpx 0.28.1… removes the certifi dependency in favor of truststore, defaulting to the operating system’s native certificate store rather than Mozilla’s bundled certificates.
-
Simon Willison — ‘New release of LLM’ (0.32) — https://simonwillison.net/2026/Aug/4/new-release-of-llm/
↩The previous JSON-based logging has been replaced by a content-addressable SQLite message store modeled after Git… Willison recommended that users run
llm logs backupbefore upgrading. -
AI Weekly — coverage of LLM 0.32 — https://aiweekly.co/alerts/simon-willisons-llm-032-adds-reasoning-traces-and-agent-tools
↩Coinciding with this release, the tool has updated its default model to GPT-5.6 Luna… Version 0.32 significantly expands the tool’s ‘agentic’ capabilities by supporting server-side provider tools.
-
YouTube short — OpenAI 3.0 migration commentary — https://www.youtube.com/shorts/FG60oI6EEWo
↩The developer community has expressed significant frustration regarding the ‘density’ of this deprecation cycle, noting that the forced move from httpx to httpx2 often requires rewriting core infrastructure rather than just updating a model name.