Most AI tools hand you an answer. Wishware handed you an app.
You opened it on an Android phone and said what you wished the phone could do: a timer for 24-minute strength sessions, a clock that looked the way you liked, a little tool that did one annoying job. Then you watched the phone write the code, compile it, sign it, install it, and launch it. Not a web page pretending to be an app. A native Android package, built on the same device that would run it, with no remote build server anywhere in the loop.
We shipped it as a free public preview in August 2026. On October 24, 2026, we retired it.
This is the whole story: the architecture, the money, the measurements, and the honest reason it stopped.
Answers scroll away. Software stays.#
That line became the headline of the Wishware site, and it was the whole thesis. A chatbot conversation is gone the moment you scroll past it. An installed app is still on your home screen tomorrow. It works offline. It does the same thing every time. You can open it without asking anyone for anything.
The bet was that a phone with a real development environment and a capable coding agent could close the gap between “I wish there were an app for this” and having that app—without a laptop, an app store, or a developer account.
The bet paid off technically. On a physical Pixel, a plain-English request became an installed, launched app in 6 minutes 24 seconds.
Three owners, one phone#
Wishware itself was deliberately thin. It was the Android product layer on top of two systems the lab had already built, and it refused to duplicate either one.
| Layer | What it owned |
|---|---|
| Wishware | The Android app: onboarding, chat, the home catalog of your apps, notifications, self-update, and the moments where Android needs a human to tap “Install.” |
| FloofClaw | Nix, the agent you talked to; durable conversations, memory, and the record of every app and every build request. |
| Blackwall | A complete Linux and Android development environment running on the phone: terminal, toolchains, Codex, Gradle, project builds, signing, and the exact build and install records. |
| Android | Package installation, permissions, and launching the finished app. |
A wish flowed through all of them:
Wishware Home / Chat
│
local, authenticated FloofClaw gateway
│
Nix → one durable "affair" per app, one immutable work item per build
│
a fresh Codex run inside the app's Blackwall project
│
Blackwall build record → install job → Android approval
│
launch, and the app appears on Wishware's Home screen
One app was one FloofClaw affair. Every build or update was a new, immutable work item on that affair. The first build started the app’s Codex thread; every later change resumed it in the same project directory. Ask for a change next week and the phone picked up exactly where it left off.
The hard rules#
Most of the engineering in Wishware is a list of things it refused to do.
- Never believe the agent’s prose. A coding agent will cheerfully announce “the app is built” when it is not. Wishware never inferred success from what Codex said or from a process exiting. It followed Blackwall’s linked build and install records, and only those decided whether an app existed.
- No second database. The home screen catalog was reconstructed from FloofClaw’s existing affairs. Build state came from Blackwall. Account balance came from the server. Wishware kept no shadow copy of anything it did not own.
- No product hacks in the engines. Wishware-specific behavior lived in Wishware, in its FloofClaw “floop,” or in an explicit overlay applied to Blackwall’s output. It never patched FloofClaw or Blackwall in place to get its way.
- Updates must keep your stuff. Every public release had to pass an update-preservation gate on a real API-28 emulator: install the exact previous public build, then update in place to the candidate, and prove that conversations, apps, and settings survived. The release signing key was treated as part of the user’s data, because without it Android cannot update an app in place.
- Keep the human in the loop where Android does. Android still asks you to allow installs from Wishware and to approve each app. Wishware surfaced those prompts honestly instead of asking anyone to weaken Play Protect.
The result was an app whose job was mostly coordination, which is exactly what made the end-to-end path dependable.
Manawire and Merlin#
A coding agent on a phone still needs a model. We did not want people pasting API keys into a phone, so we built Manawire: Google sign-in, a prepaid credit called Mana, Stripe Checkout for top-ups, and an OpenAI-compatible endpoint that FloofClaw and Codex could call.
New accounts received 5,000 Mana. A top-up was 10,000 Mana for US $9.99. The retail rate was pegged to the list price of a flagship model, so private routing and caching could lower our cost but never the customer’s price. Behind it, a LiteLLM gateway chose the actual provider; the phone never saw a model name or a provider key.
All of it ran on one Debian virtual machine named Merlin: Caddy in front, one FastAPI process, one LiteLLM process, and one PostgreSQL database with an append-only Mana ledger. No Docker, no Redis, no queue, no orchestration. Deployments were a Git bundle copied over Tailscale and one activation script. It carried real accounts, real purchases, and real builds from mid-August until the day it was retired.
Eighty-six days#
- — The plan is accepted and the first commit lands.
- — wishware.flooflogic.com goes live.
- — The first production-signed APK is built.
- — Merlin comes up and Manawire’s first commit lands.
- — The paid build benchmark runs: eighteen real app builds, every token accounted for.
- — The build measurements below are recorded on Spike, our Pixel 10 Pro.
- — Wishware 0.1.76, the final public release.
- — Floof Logic decides Mardo is the product it markets. Wishware becomes a lab demonstration: still downloadable, no growth plan.
- — Wishware and Manawire are retired and Merlin is shut down.
By the end there were 317 commits in Wishware and 124 in Manawire.
The numbers#
Speed
- 6:24 from a plain-English request to an installed, launched app on a physical Pixel.
- 30.9 seconds for a full app build (Spike Clock, 30,952 ms) and 7.2 seconds for a warm rebuild (NFC Swapper, 7,294 ms), both read from Blackwall’s own build ledger on Spike.
The two build times are the Android build stage only. They do not include the agent’s conversation or planning time, and we never presented them as guarantees.
Cost
On August 18 we paid for eighteen builds of the same clock app across several open models routed through Hugging Face, and reconstructed the cost of every one.
| Measure | Result |
|---|---|
| Paid app-build attempts | 18 |
| Accepted builds | 12 |
| Upstream inference, all 18 | about $2.02 |
| Per attempted app | about $0.11 |
| Per accepted app | about $0.15 |
| Mana charged | 7,981 |
| Share of Mana spent on failed attempts | 32.9% |
Eleven cents to try to build an app on a phone is a remarkable number. The 32.9% is the honest one: a third of the spend went to attempts that never produced an accepted app, and the user would have paid for those too.
Reach
The public APK was about 239 MiB, Android 9 and newer, 64-bit ARM only, and installed outside Google Play. Between August 25 and October 23 the public download button counted 131 download requests, some of them link-preview robots. A small circle of people used it for real.
Why we stopped#
Wishware worked. That was never the question.
The question was whether it was the thing Floof Logic should spend itself on. In September we decided it was not: Mardo is the product we want everybody to use, and everything else in the lab is proof of what we can build.
Wishware was also unusually expensive to keep honest. It was a sideloaded, preview-grade Android app that depended on a live paid service: Stripe, Google sign-in, an inference gateway, upstream model providers, a database of balances, and a server that had to stay up for people who had paid for credit. Keeping that running for a project we were not going to grow would have been upkeep for its own sake, with real money and real accounts on the line.
So we stopped it cleanly. Purchases closed, Manawire shut down, and Merlin was retired. The Mardo licensing service that had shared Merlin moved to a small dedicated server of its own. Every key, database, and line of source went into an encrypted archive first, with written instructions, so Wishware can be rebuilt if we ever want it back.
What lives on#
Blackwall, the development environment that made the phone a build machine, continues. So does FloofClaw, the open-source agent runtime that did the work. Wishware was the clearest demonstration either of them will probably ever get.
The lessons travel with them: follow records, not narration; keep exactly one owner for each fact; put product policy at the edge instead of inside the engine; and treat an in-place update as a promise about someone’s data.
For the curious#
The Wishware archive keeps the real recording and the final public build, 0.1.76, with its SHA-256 and signing fingerprint. It is unsupported: with Manawire gone, the app’s sign-in and default AI route no longer work, and there will be no more updates. It stays there as a record of what a phone could do in 2026.
Wishware was good for no reason. It just also happened to work.
Sources#
- Wishware and Manawire source repositories, release manifests, and architecture notes, archived October 24, 2026.
- The August 18, 2026 Wishware build-benchmark spend ledger: per-build tokens, provider prices, and Mana charged.
- Blackwall’s build ledger on Spike for the 30.952 s and 7.294 s measurements, and Blackwall’s published acceptance measurements.
- The Wishware download gateway’s counted download requests, August 25 to October 23, 2026.
Figures were last verified on October 24, 2026.