Dev.to AI πŸ€– Ai πŸ‘ 0 πŸ“– 6 min read

Thirty minutes, this time with Codex

Today I had some free time and tokens to use. We finished the Codex integration into cuvm, so I gave GPT-6.1 Sol the same half-hour screensaver challenge I gave Opus 5.5. For this run, Codex had shell and file tools, a

Thirty minutes, this time with Codex

Today I had some free time and tokens to use. We finished the Codex integration into cuvm, so I gave GPT-6.1 Sol the same half-hour screensaver challenge I gave Opus 5.5.

For this run, Codex had shell and file tools, a project workspace, a local dev server, and Playwright driving WebKit inside a disposable Mac. Same idea: keep talking, keep building, and stop when the clock runs out.

Metric Result
interactive session 30:00
screensavers 7
easter eggs 3
Metric Result
model GPT-6.1 Sol
output tokens 40.1K
cached input tokens read 4.15M
estimated API equivalent β‰ˆ$1.14

I used a subscription. The dollar figure estimates these tokens at standard API rates; it is not a per-run bill.

Play with Sol's screensaver site β†’

The collected build, with relative asset paths for this preview. Contains continuous animation and flashing effects in one hidden extra.

Idle Hours: a dark olive and lime homepage with large Do Nothing Beautifully lettering, a screensaver carousel, and its taskbar along the bottom.

The homepage, freshly captured from the collected final build. This version has all seven screensavers.

Scientific Analysis

My observations from these two runs.

Feature Claude Codex
Faster βœ… ❌
Cheaper ❌ βœ…
Overall 90s Vibe βœ… ❌
Digital Rain vibe ❌ βœ…
MIDI Sound βœ… ❌
Sharks & whales βœ… ❌
Literal fishbowl ❌ βœ…

Final score: 4 - 3 Claude, but Codex could make 3 of Claude's sites for the same price.*

*Napkin math.

Sol made the better overall site and the better Tetris, with seven screensavers against Opus's nine.

I can't really quantify it. It feels more smooth, and Codex did add density in addition to speed, which Claude doesn't have. Codex's β€œAsteroid Field” is honestly pretty chill and matches the more polished look.

Digital Rain has that Matrix or Hackers vibe.

Claude absolutely nailed the Windows settings screen styles. It's perfect: the blue header with white text, the X in the corner goes back to the carousel, an old CRT shows the screensavers, dropdown, preview, speed, and silly descriptions to add flavor.

Claude had sound. On its site there is a MIDI button that plays some old sounding tune.

Claude also added teapots to the pipes. I looked for them and never spotted one, but I did see the β€œall teapots” mode.

Codex did try on the vibe. There are elements like the visitor counter and coffee cup. It's possible it interpreted the prompt as a modern website with an old theme, not literally a site from 1995.

Opus's homepage, with a Windows 95 style layout and colorful personal-homepage decorations.

**Opus 5.5.* Closer to the requested 90s vibe. Open the Claude demo.*

Sol's homepage, with a large modern headline, a limited lime and olive palette, and a structured gallery.

**GPT-6.1 Sol.* A more modern interpretation. Both homepage captures are shown in full; click to enlarge.*

Still too crisp

The brief was the same: start with an asteroid field, put the screensavers in a carousel, and give each one a detail view. Then I asked for Flying Toasters and Fishbowl.

As with Opus, I asked for less crisp sprites, more aquatic diversity, pipes, and toasters that bounce off the sides.

Opus was literally faster. I was really impressed with the speed for graphics code.

Blocky chrome toasters with feathered wings and slices of toast inside Sol's screensaver viewer.

Flying Toasters, captured near the end of the original session.

Before feedback: smoothly drawn fish in a glass bowl, with plants and a small shelter.

**Before.* The first Fishbowl screenshot, at about 19:49.*

After feedback: a pixelated aquarium with different fish, a jellyfish, a seahorse, and a starfish.

**After.* More pixelation and more creatures, at about 24:39.*

Easter eggs before sharks

I reused the main prompts from the Opus experiment. Near the end, I changed the order.

cuvm warned me that five minutes remained, so I moved the three easter eggs ahead of sharks and whales. One of Sol's choosing, then games from the same list I gave Opus.

It completed the three easter eggs. Tetris was one of them, and I liked its version better.

I'm a Tetris subject-matter expert, as I've installed it on every scientific calculator I ever owned, studied a lot of math, and had it as a default game on a couple of old school cell phones. Codex's plays more like the real thing. Piece distribution mainly. Claude didn't give me enough | even early on, when the difficulty should be lower.

Sol's falling-block game, with a ghost landing outline, line and score counters, and visible movement and drop controls.

The falling-block game in an original run screenshot, at about 28:22. The other two extras are left for you to find.

Thirty-one seconds for a whale

Then I delivered the sharks-and-whales request. The clock was at 29:29. Sol had 31 seconds left, and the session ended before it completed the change.

My final prompt, from the saved operator history.

29:29  Me
sharks and whales sometimes in fishbowl not often plz

Time left for the sharks-and-whales request

Run Time remaining
Opus 7m 37s
Sol 31s

Follow-up order and timing differed; these bars show the opportunity each request had.

What the tokens looked like

Codex was considerably cheaper and more efficient, coming in at roughly 40k output tokens, 4M input tokens, and $1.14 at API rates. That's a steal.

Opus recorded about 100,000 output tokens, with an estimated API equivalent of roughly $5.50.

Recorded token usage across each session

Usage Opus 5.5 GPT-6.1 Sol
Uncached input 5,260 161,385
Cache writes 185,087 0 reported
Cached input reads 9,995,317 4,148,736
Output 99,837 40,123
Of which reasoning 21,649 6,081
API equivalent β‰ˆ$5.50 β‰ˆ$1.14

Cached input is read again across requests. Reasoning is included in output. The Opus estimate includes a tiny amount of Haiku usage; its token column covers Opus only. Token counts alone do not measure how quickly the website came together.

I used subscriptions for both runs. Sol's estimate uses published standard API rates: $2 per million uncached input tokens, $0.10 for cached input, and $10 for output. That works out to about $0.323 + $0.415 + $0.401, or $1.14 rounded. These figures compare recorded token usage at API rates; they do not allocate the cost of either subscription.

Based on what it completed, I think it could add the remaining adjustments to match Claude's features in another 15 minutes and about $0.75. I arrived at this using a highly scientific technique called β€œnapkin math.”

Run notes

The clock, integration, source, and evidence

The recorded clock

The harness recorded a 1,800-second limit and a 1,800.2-second interactive session. Setup happened before that clock; thinking, typing, and waiting happened inside it.

  • Startup to attach: 1m 19.3s
  • Interactive session: 30m 00.2s
  • Collection after session: 13.4s
  • Entire run, including cleanup: 32m 20s

The main brief arrived at approximately 6:11 in Sol's session and 5:40 in Opus's. Sol's easter-egg request arrived at 26:10; sharks and whales at 29:29. Offsets are approximate because the saved Codex prompt times have whole-second resolution.

What we integrated

The Codex integration reused cuvm's disposable VM, credential proxy, checks, collection, and cleanup. Native macOS desktop support needed a separate pinned runtime, desktop tools, and an app-activation helper.

This web experiment used the browser configuration: Codex CLI 0.167.0, shell and file tools, and Playwright controlling WebKit. Native desktop controls were exercised in separate integration runs. The browser and native desktop configurations were separate at this milestone.

What the run preserved

The cleaned export contains 19 original screenshots, the 13 operator prompts with their times, a run summary, and a source-and-build ZIP. The record also reports 61 saved browser page snapshots.

All 13 files in the exported project matched the guest's recorded hashes. Unchanged files came from the exact input snapshot; changed files were collected from the guest. The ZIP contains the collected build without a new build or transcript replay. Source-to-build correspondence has not been independently verified by rebuilding.

The preview copies that collected build. Its JavaScript and CSS are unchanged; only the HTML asset URLs were made relative so it works in this folder.

The four screensaver and game screenshots on this page are original run captures, with their recorded hashes preserved. The Codex homepage image is a fresh viewport capture of the collected final build. Both homepage comparison images are shown in full; click to enlarge. The raw record, transcripts, account metadata, network logs, and certificate material remain private.

About the collected demo

Some of the demo's small category counts, years, and technical labels have low contrast. A later accessibility check flagged 19 text elements on the homepage. I've kept the collected build unchanged.

What PASS means here

All 31 pre-run and 30 post-run checks passed. The VM was removed, the proxy stopped, and the inputs and golden image were unchanged. No forbidden tool use or leak errors were reported.

The harness PASS covers containment, collection, and cleanup. Feature and aesthetic observations above are my experience of these two sessions. Preview browser checks are documented separately from the original run.

The cost calculation

Sol reported 4,310,121 total input tokens, including 4,148,736 cached input tokens, and 40,123 output tokens. Its 6,081 reasoning tokens are included in output. No cache-write input tokens were reported.

The standard API estimate is (161,385 Γ— $2 + 4,148,736 Γ— $0.10 + 40,123 Γ— $10) / 1,000,000 = $1.1388736. The largest reported request had 121,759 input tokens, below the published long-context pricing threshold. Rates were checked November 11, 2026.

The earlier run's approximately $5.50 is Claude Code's recorded API-equivalent estimate. Its method and token breakdown are in the original experiment and its run summary.

πŸ“° Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes β€” full credit and traffic to the original publisher.