avatar vian's notes

Learning in public, one post at a time

  • HOME
  • CATEGORIES
  • TAGS
  • ARCHIVES
  • ABOUT
Home This Is My ADE
Post

This Is My ADE

Posted Jul 8, 2026 Updated Jul 10, 2026
By Alvian
4 min read
This Is My ADE
This Is My ADE

I hit send on a prompt. Watched the spinner. Started calculating — was I past the cap yet? Three weeks into the billing cycle, OpenCode Go had hit its limit. I’d been conditioned to expect the error.

The spinner stopped. Code appeared. No error.

The request had routed through 9router’s fallback chain — from my paid subscription, through a cheap API, to a free provider. Compressed by the headroom proxy. Delivered in under a second. I didn’t notice the provider swap. The router handled it silently.

That’s when I realized the stack had become invisible.

I hadn’t planned for that moment. Six months earlier I’d been staring at a rate-limit error, frustrated that a subscription model controlled when I could work. I didn’t set out to build an ADE. I just kept hitting walls and kept building ladders.

Somewhere along the way, the ladders became infrastructure.

It took six months to get here. The Hono server starts in 200ms. Routing config lives in ~/.ai/combos.json — model tiers with fallback strategies, token compression, multiple accounts per provider in round-robin. The tunnel at https://api.mydomain.com routes through Cloudflare to cloudflared on my machine, forwarding to localhost:20128. The Hono server manages the tunnel lifecycle, headroom proxy, provider connections. Everything runs from a SQLite database in ~/.9router/. No external databases. No cloud services.

The entire runtime footprint fits in one directory.

I rebuilt the router from a 200MB Next.js monolith to a 2.5MB CLI. I built a tunnel when I discovered Warp’s Oz agents couldn’t reach localhost. I migrated the agent system from OpenCode’s bolt-on delegate to Warp’s native orchestration. Each layer was built because the previous one had a wall I couldn’t go through.

Things broke. OAuth tokens expired mid-request. cloudflared crashed after macOS sleep. Model-level rate limits hit shared accounts. Each failure taught me where to reinforce: proactive refresh, launchd KeepAlive, per-model lock keys in the database.

Things that held: the Hono server has never crashed. Format translation between providers works silently — I forget it’s happening. The tunnel stays up for weeks. Orchestration with parallel child agents has been stable. The biggest risk is forgetting to give each child its own git worktree.

The reliability of the whole stack is determined by the weakest recovery path. I learned that at 1am more than once.

But the real win isn’t reliability. It’s interchangeability. I can swap 9router for Ollama tomorrow. Replace Warp with Cursor next week. Run a different tunnel. None of the other layers care. That’s the property that makes the setup cost worth paying.

If you’re starting today: fix routing before infrastructure. Tiered fallback changes your cost structure immediately. Add the tunnel only when you need remote access. Everything else follows from those two decisions.

I’ve probably spent 80 hours on this stack. That’s two working weeks, scattered across six months of nights and weekends. Some people would pay $20/month for ChatGPT Plus and never think about it again. That’s a valid choice — the subscription is cheaper than their time. But every hour I spent on infrastructure unlocked capabilities the subscription model can’t offer: zero-cost fallback, transparent token compression, parallel agent orchestration, complete provider interchangeability.


Sources: ChatGPT Plus pricing ($20/month) · 9router upstream README (RTK 20-40% token savings)

OpenCode is an appliance. This is a chassis. One works out of the box. The other lets you swap every component.

What started with a rate-limit error and a refusal to accept that a subscription should control when I can code became something larger. Six posts, four infrastructure layers, two tool migrations, zero subscriptions that lock me in. Every layer is mine to own, swap, or replace.

The best AI development environment is the one you can take apart and rebuild. That was the thesis of Why I Left GitHub Copilot. Six posts later, I mean it more than I did then.

And if I decide tomorrow that Warp isn’t the right shell, or 9router isn’t the right router, or I want to switch from OpenAI-compatible to Anthropic-native — nothing else breaks.

That’s the ceiling a custom ADE buys you. Not a better subscription. A better ceiling.

The Series

This post is the end of a six-month story. Here’s how to read it:

  1. Why I Left GitHub Copilot — The privacy problem that started everything
  2. Warp Tried to Sell Me AI Again — The subscription wall
  3. OpenCode: The $10/mo TUI — Finding a tool that fit the budget
  4. The Tools I Built Around OpenCode — Building the gaps closed
  5. The Router My Colleague Showed Me — Discovering 9router
  6. What I Changed in 9router — Forking and customizing the router
  7. The Tunnel — Making local AI reachable from the internet
  8. Warp Came Back Around — The platform caught up
  9. This Is My ADE — You are here

Start from Post 1 for the full arc, or jump to any post that interests you — each one has enough context to stand alone.


ade warp 9router orchestration personal
This post is licensed under CC BY-NC 4.0 by the author.
Share

Recently Updated

  • Building Memory Into 9router: A Proxy-Layer Experiment
  • The Tunnel
  • This Is My ADE
  • Why I Left GitHub Copilot
  • The Router My Colleague Showed Me

Trending Tags

9router tooling technical personal ai warp ade analytics postmortem agents

Contents

Further Reading

May 20, 2026

Warp Tried to Sell Me AI Again

I downloaded Warp on a Thursday afternoon. The hype was everywhere — every terminal thread had someone saying “try Warp, it’s the future.” A terminal built for the modern era. GPU-accelerated rend...

Jul 1, 2026

Warp Came Back Around

I remember my first Warp trial ending with a shrug. A terminal with AI features — nice inline assistant, sure, but tied to yet another subscription. I’d already walked away from Copilot for the sa...

Jul 24, 2026

Building Memory Into 9router: A Proxy-Layer Experiment

Every coding AI I tried was great at problems, terrible at context. I’d start a new session and describe my stack, my preferences, my ongoing projects — everything the AI needed to be useful. Next...

Older
Warp Came Back Around
Newer
Building Memory Into 9router: A Proxy-Layer Experiment

© 2026 Alvian. Some rights reserved.

This blog is open source — view on GitHub

Using the Chirpy theme for Jekyll.

Trending Tags

9router tooling technical personal ai warp ade analytics postmortem agents