AI NewsProductivityReported

A coding agent built a Kindle photo frame with a feedback loop

Niraj Rajgor used Codex and T3 Code to connect a coding agent to his unused Kindle over Wi-Fi, and gave the agent a persistent diagnostic connection so it could read logs, inspect the screen and test its own fixes without him in the loop.

AI News

Editorial3 min read

LinkedInX

Why it mattersAn agent that can only see your test runs will ship code that passes tests and still fails on the hardware, so give it live access to the running device before the first prompt and let it close its own loop on real logs and screen captures.

A coding agent that can only see your test runs will write code that passes the tests and fails on the device. Niraj Rajgor, writing on his own blog, turned an unused Kindle into a photo frame by giving a coding agent something more useful than a prompt: a persistent connection to the Kindle itself, so the agent could read logs and inspect the screen before deciding what to try next.

Rajgor's account reached the front page of Hacker News this week with 146 points. The project is called KindleCTL. The device is a 10th-generation Kindle Basic. The models tried were GPT-5.6 Sol, Fable 5.1, Opus 5.5 and GPT-6 Astra; the harness was Codex and T3 Code. Everything happened over Wi-Fi, with no USB cable.

What the first attempts missed

Rajgor started with GPT-5.6 Sol on extra-high reasoning. It got as far as loading a helper on the Kindle, but the helper could not find a filesystem it could write to and the setup step never reported ready. Fable 5.1 and Opus 5.5 were both blocked by Anthropic's cybersecurity safeguards after two prompts. GPT-6 Astra on high reasoning succeeded, using the open-source SpiderCat jailbreak from the KindleModding community as a reference, and the two of them built the KindleCTL tools around it.

The agent reached the Kindle and could run code, but could not display anything. To debug, it kept asking Rajgor to take a photo of the screen with his phone and share it. Rajgor's own reaction is the lesson of the piece: the agent was already connected to the device, so why could it not see the screen itself?

The change that mattered

He asked the agent to set up a feedback loop. The agent built a persistent diagnostic connection and later added remote screen captures. From there, Rajgor writes, "this was a turning point that let the agent continue implementing changes on autopilot. Its reasoning traces showed it figuring out which folders survived a restart and which could store external data."

The slideshow then passed every automated check on his Mac. But when the Kindle switched photos, traces of the previous image stayed on the e-ink screen. "The tests hadn't caught how the physical display refreshed", he writes. The agent's screen captures showed clean images because they recorded what the Kindle wrote to the framebuffer; the physical ink was slower to catch up. The fix was for the agent to call the Kindle's built-in screen refresh after each slide change.

What ships

The result is a Photo Slideshow entry on the Kindle's home screen, next to the books. It cycles through ten photos for four minutes each, keeps aspect ratio, remembers position across sleep, and runs without Wi-Fi because the photos sit on the device. The code is mostly Python, with a C launcher and shell scripts for installation. Rajgor's own closing note is the useful one for anyone copying this pattern: "Next time, I'd set up the feedback loop from the start so the agent could read logs, inspect screen captures, and test fixes on the device."

The fact for a team shipping anything that runs outside the laptop is plain. A coding agent writes to what it can see. Give it only the test suite, and it writes code that passes the suite. Give it the live log stream and a way to try again on the real device, and it writes code that works where the code has to work.

Source

Reported byNiraj Rajgor

This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.

Share
LinkedInX
Start a project