Sign in

Philip Z

@philz.dev
238 followers 935 following 96 posts
PostsRepliesMedia
Philip Z @philz.dev · 23/09/2026
I recently reverted to old habit and wrote a "Jenkins job" (it was Buildkite, but pot-ay-to pot-ah-to) to nag me about Fireworks model updates. Eventually, I came to my senses, and used a VM with a timer and an agent instead. So much better.
blog.exe.dev
Tales from the Software Factory: The Cron and the VM - exe.dev blog
"My old mindset was wanting a bot to nag me into doing the thing. The new mindset is to have the bot take the task as close to the finish line as possible."
161
Philip Z @philz.dev · 16/09/2026
Group chat for agents! blog.exe.dev/mayfly-chat
blog.exe.dev
Mayfly Chat: Transient Chat for Agents - exe.dev blog
Click 'new channel,' give the URL to your agents, and voilà, they can talk to each other.
120
Philip Z @philz.dev · 13/09/2026
Handy prompt of the day: Produce a mermaid diagram or similar with a full sequence diagram of how <X> happens including all the players and rpcs and such
080
Philip Z @philz.dev · 02/09/2026
TIL from @commaok.xyz: git plumbing to synthesize a commit equivalent to resetting to main and cherry-picking a single commit c. git commit-tree -p main \ $(git merge-tree --write-tree --merge-base c^ main c) c^ as "merge-base" "subtracts" the delta b/w main and c^. philz.dev/blog/git-vir...
Visualization for "git commit-tree -p origin/main `git merge-tree --write-tree --merge-base c^ origin/main c`"
000
Philip Z @philz.dev · 01/09/2026
> Cache reads now cost $0.25 per million tokens, 75% less than Fable 5 This is a *huge* price drop, given that cache reads inevitably end up most of your costs, because of the quadratic nature of LLM conversations. blog.exe.dev/expensively-...
blog.exe.dev
Expensively Quadratic: the LLM Agent Cost Curve - exe.dev blog
Cache reads are quadratic and dominate your long agentic conversations.
081
Philip Z @philz.dev · 31/08/2026
The Joel Test was 26 (!) years ago. I revisited it at blog.exe.dev/revisiting-j.... What questions did I leave out?
blog.exe.dev
Revisiting Joel's Test - exe.dev blog
Joel Spolsky's twelve questions still hold, but agents demand nine more. Call it the Shelley test.
2102
Philip Z @philz.dev · 26/08/2026
A wise person once told me that the best wireless microphone is almost as good as a wired microphone. I got a new wireless split keyboard, and really feeling that right now. The right half drs es e craz My kingdom for a split traditionally staggered keyboard with a trackpoint for the index finger.
000
Philip Z @philz.dev · 26/08/2026
fzakaria.com/2026/08/24/a... code is data. Love me some binfmt_misc and SQLite hijinks.
fzakaria.com
Actually Queryable Executables
I was pleasantly surprised and happy to see that my article ‘Your executable is a SQLite database’ resonated with people. It is a format I have been thinking about for a while, and the idea seems to h...
051
Philip Z @philz.dev · 24/08/2026
Gave Shelley (gpt-5.6-sol, in this case) a pointer to www.texttocad.dev and English instructions of a keyboard tilt thingamajig, and it one-shot it. (Keyboard is NocFree&; not my favorite.)
Prompt to build a 3d printed laptop tilting riser.3d model of a keyboard riser
050
Philip Z @philz.dev · 21/08/2026
Ian's solution at blog.exe.dev/we-taught-sq... is clever. Associate cache entries with the WHERE clause they were produced by and invalidate when updates hit the same WHERE clause. Made possible by some code-generation and a single-writer database.
blog.exe.dev
We Taught sqlc to Invalidate Our Caches - exe.dev blog
How exe's proxies stay fast and correct without anyone hand-writing invalidation logic.
020
Philip Z @philz.dev · 20/08/2026
TIL: memfd_create will let me ship a single file binary that needs to bundle a different single file binary without unpacking it to tmp. As the joke goes, I had one problem. I used an obscure Linux syscall. Now I have two problems.
100
Reposted by Philip Z
Jeremy Morrell @jeremymorrell.dev · 18/08/2026
I wrote up what I meant by this jeremymorrell.dev/blog/extensi...
jeremymorrell.dev
Extensible Software in the age of LLMs | Jeremy Morrell
Solid core + capability-based sandboxes + LLMs = Users with superpowers
3252
Philip Z @philz.dev · 18/08/2026
blog.exe.dev/athena-deplo... 💯 Never going without this again. Build an agent to babysit your deployment. Give it only the code, the git log, the metrics, the logs, a way to send you messages, a way to pause the deploy. This is the way.
blog.exe.dev
Have an Agent Babysit Your Deployments - exe.dev blog
The question is not: could a human do it better? The question is: in practice, will a human actually do it at all?
041
Philip Z @philz.dev · 17/08/2026
Friends don't let friends complicate their deploys with Spinnaker. Build the 5% you need; having your own deployment console and CD system is fantastic. It's been a game-changer for our deploys at @exe.dev. turbopuffer has one too: turbopuffer.com/blog/control...
turbopuffer.com
How to ship a database every day
We deploy many database upgrades every day across ~100 public, single-tenant, and BYOC clusters. It would be insane to use Terraform or Helm to do that, so we built our own control plane.
000
Philip Z @philz.dev · 16/08/2026
If you use gRPC this is your reminder that the default max message size fits on a very short stack of floppies.
070
Philip Z @philz.dev · 14/08/2026
A month in the lab can save a day in the library. But what if it’s the agent in the lab (vm)? And it doesn’t take a month? blog.exe.dev/planning
blog.exe.dev
No Plan Survives Contact With the Enemy (Reality) - exe.dev blog
People who use coding agents are either planner or iterators (or somewhere on that spectrum). The two sides are closer than you think.
060
Philip Z @philz.dev · 10/08/2026
An under-appreciated benefit of running sqlite is seeing your query execution in the same profiles as your application logic. If running a database separately, you have to work to connect the dots when the database is busy.
090
Philip Z @philz.dev · 10/08/2026
Your agents need computers. Giving the agents computers without persistent disks would be like having to pick up a freshly blank laptop everyday. (See also blog.exe.dev/persistent .)
blog.exe.dev
Why exe.dev VMs Are Persistent - exe.dev blog
On the design decision to make VMs persistent, with persistent disks.
030
Philip Z @philz.dev · 06/08/2026
In which I write some reflections on No Code at blog.exe.dev/the-end-of-n....
Always has been meme: "Linux is the best platform"
010
Philip Z @philz.dev · 06/08/2026
I am adamant about keeping bots out of human spaces. Also, about linking bot messages back to their code and runtime environment. blog.exe.dev/botiquette
blog.exe.dev
Botiquette - exe.dev blog
We have a lot of bots doing work at exe. Here's how they should behave.
142
Philip Z @philz.dev · 04/08/2026
An embeddable terminal library is such a boon. To get scrollback to work across a handful of terminal surfaces, we built it into the session manager. Read all about it! blog.exe.dev/exe-scroll
blog.exe.dev
Ghostty in the Machine: the saga of exe-scroll - exe.dev blog
Two ghostty instances stand between you and your shell. How exe-scroll keeps remote terminal sessions alive, plus a tour of the prior art: mosh, tmux, dtach, and web terminals.
000
Philip Z @philz.dev · 02/08/2026
SaaSpocalypse happens like bankruptcy: gradually first, then all at once. Just this past month, I’ve built several bots/agents for work that correspond to products I’m “supposed” to have bought. Sam Schillace wrote “what if I can just do it faster than talking to you?” That applies to SaaS.
040
Philip Z @philz.dev · 30/07/2026
ssh -R and -L are so powerful. Needed to let agent on my VM connect to iOS sim on Mac, far behind a NAT. 1. ssh exe.dev ssh-key add --vm vm ... 2. mac: cat >> authorized_keys 3. mac: ssh -R 1111:localhost:22 vm.exe.xyz 4. vm: ssh -p 1111 user@localhost 5. Shelley happily driving the simulator
Screenshot from a Shelley coding agent conversation, with tool calls in pills, and a screenshot of an iOS simulator with a terminal emulator inside of it.
042
Philip Z @philz.dev · 29/07/2026
Four quick prompts to make a custom feed bsky.app/profile/did:... for myself on an @exe.dev VM.
[Screenshot of shelley's Table of Contents widget]

Jump to...

↑ Top of conversation

• I want to make a custom bluesky feed. How do I do it?

✓ Custom Bluesky feeds are built as **feed generators** — small...

• Build a feed that captures any posts that mention exe.dev or ...

✓ Done. I built a complete, working Bluesky feed generator in Go...

• It’s public already. Can you do an oauth flow with Bsky for me?

✓ Everything's wired and tested. I built a full atproto OAuth flow i...

• Yep, keep this running. Turn off the oauth login thing so othe...

✓ Done on both counts. ## Persistence ✅ - Installed as a syste...

↓ End of conversation
140
Philip Z @philz.dev · 28/07/2026
Once you've got a stable of agents right in your pocket, you can't go back! www.youtube.com/watch?v=BhBF...
youtube.com
Agents Ship from Anywhere: exe.dev on iOS
YouTube video by Official Channel for Exe Dev
030
Reposted by Philip Z
Josh Bleecher Snyder @commaok.xyz · 26/07/2026
A rapidly increasing share of the software I use on a daily basis is bespoke. It makes bugs and papercuts in other software ever more exasperating. Once you've experienced mutable software there's no going back. I think blog.exe.dev/customizing-... may be most important thing ever on the exe blog.
blog.exe.dev
Customizing Shelley, Customizing Software - exe.dev blog
With a coding agent living next to your software, customizing it is as easy as asking. Shelley even rebases your changes onto each upgrade.
121
Philip Z @philz.dev · 26/07/2026
As far as I can tell, S3 charges you based on the uncompressed size, but surely they compress. It is a failure of their APIs that uploading uncompressed is easier than compressed. LLM providers will also eventually compress your tokens (eg call out to another model to reduce tool output).
040
Philip Z @philz.dev · 24/07/2026
"The solution was fairly straightforward" blog.exe.dev/a-tale-of-tw... by Maisem is very cool. Learning cool stuff at work is fun.
blog.exe.dev
tailmix: Connect to Multiple Tailnets at Once - exe.dev blog
0141
Reposted by Philip Z
Antithesis @antithesis.com · 22/07/2026
We 🐡🐡🐡 exe.dev -- simple, effective, fast. If you've noticed improvements in our user experience over the last 6 months, they were accelerated by how simple exe.dev made things.
exe.dev
exe.dev - ssh exe.dev
Build apps or SSH into a persistent Linux VM. ssh exe.dev.
0102
Philip Z @philz.dev · 22/07/2026
Plugin architectures are awful, right? Either it’s a versioning dependency mess or you’re coding in config files. I’m tickled by how well blog.exe.dev/customizing-... works. The upgrade button does an agentic rebase.
blog.exe.dev
Customizing Shelley, Customizing Software - exe.dev blog
With a coding agent living next to your software, customizing it is as easy as asking. Shelley even rebases your changes onto each upgrade.
000
Reposted by Philip Z
Will Gorman @willgorman.net · 16/07/2026
The part about using the exe.dev iOS app to create a VM from a short idea as a replacement for just jotting down a note was a major 💡 moment for me
exe.dev
exe.dev - ssh exe.dev
Build apps or SSH into a persistent Linux VM. ssh exe.dev.
012
Philip Z @philz.dev · 19/07/2026
Coding agents: definitely on team monorepo!
010
Philip Z @philz.dev · 18/07/2026
For an api that’s essentially f: string -> string, the LLM providers have managed to break coding agents at basically every model release.
030
Philip Z @philz.dev · 14/07/2026
Always such a delight when folks use your product for cool stuff. bsky.app/profile/exe....
020
Philip Z @philz.dev · 04/07/2026
Agent Topology is about balancing capability (what can you get done) with security (what can be done to you).
010
Philip Z @philz.dev · 03/07/2026
Using exe.dev with a ChatGPT subscription just got easier! blog.exe.dev/chatgpt-subs...
Diagram of how Shelley (a coding agent) discovers LLM models it can talk to.
072
Philip Z @philz.dev · 02/07/2026
The age-old conundrum of long-lived SSH connections and frequent deploys. Read All About It at blog.exe.dev/adding-featu.... Thing I learned from Ian: sendmsg(2) can pass file descriptors from one process to another.
blog.exe.dev
Adding Features Without Interrupting Network Connections - exe.dev blog
How exe.dev ships updates without breaking connections.
010
Philip Z @philz.dev · 01/07/2026
Preferences... Accessibility... Other Display Options: Automatically play animations in Slack.
010
Philip Z @philz.dev · 24/06/2026
Dependency-less python3 is my preferred scripting language. Every OS I use ships it. Today I learned that it doesn't include a websocket client. RFC6455 batteries not included.
000
Philip Z @philz.dev · 23/06/2026
Behind the scenes on how the exe.dev iOS app was built: blog.exe.dev/ios-developm.... Step 1: buy mac mini. Step 2: give Shelley access to simulator. Step 3: over the air updates, Step 4: prompt app into existence from itself. Also, gratuitous profiler. boldsoftware.github.io/public_html/...
exe.dev
exe.dev - ssh exe.dev
Build apps or SSH into a persistent Linux VM. ssh exe.dev.
2122
Philip Z @philz.dev · 16/06/2026
“Reflections on Trusting Trust” hits different when trusting LLMs.
000
Reposted by Philip Z
David Crawshaw @crawshaw.io · 15/06/2026
there is a exe.dev iOS app now. it’s my favorite way to program.
1668
Philip Z @philz.dev · 16/06/2026
Me, reaping: *startled* *fart noises emanating from Mac* TEN MIN PRIOR Me, sowing: "Shelley, build an iPad sound machine; test with the simulator." THIRTY MIN PRIOR "I learned how to build iPad apps at work; kids, what shall we make?" TODAY exe.dev has an iOS app blog.exe.dev/ios
0112
Philip Z @philz.dev · 11/06/2026
Q: Why isn't Shelley a TUI? A: "Tip: Paste images into Claude Code using control+v (not cmd+v!)"
130
Philip Z @philz.dev · 08/06/2026
agent zero is the new inbox zero
010
Philip Z @philz.dev · 08/06/2026
Conway's Law is alive & well. If you want a Gemini-free experience in a Google product, go to Google Ads. If you want to use a coding agent to set up an ad campaign, good luck; they won't give you an API key.
Google Ads UI. Lots of menus. Strong 2010 vibes. Zero AI buttons.
030
Philip Z @philz.dev · 08/06/2026
If you need to look at 1M rows in a browser, you could do a lot worse than DataTables. Whatever you do, do the paging on the client. Better to take the big download latency at the beginning than for every click. blog.philz.dev/blog/page/
blog.philz.dev
Page on the client, really, even for 1M rows
020
Philip Z @philz.dev · 04/06/2026
Isn't it ironic that distributing JS programs for the command line is kind of an unsolved problem (install node, which node, etc.), and yet we've been shipping JS programs on the web for three decades!
100
Philip Z @philz.dev · 04/06/2026
I’m a big fan of Clickhouse for observability with their otlp ingest and HTTP SQL endpoint (and an agent pointed at the latter). Also keeping an eye on smithclay.github.io/duckdb-otlp/ for the same sort of stack with DuckDB.
smithclay.github.io
DuckDB OpenTelemetry Extension
duckdb-otlp: query OpenTelemetry traces, logs, and metrics with DuckDB.
1112
Philip Z @philz.dev · 02/06/2026
OH: deploy first, git later
020