Show HN: Supapool – a Supabase per coding agent in ~400 ms

Hacker News Top Tools

Summary

Supapool is a CLI tool that provides isolated, ephemeral Supabase instances for each coding agent or CI run, spinning up in ~400 ms to enable parallel, production-like testing without interference.

hi HN,<p>I built supapool.io, an ephemeral full copy of supabase&#x27;s services that you can spin up in ~400 ms (Auth, postgres, storage, realtime).<p>so if you run multiple coding agents in parallel in different worktrees, they can now have their own copy of supabase without making changes that conflict with eachother.<p>&gt; why not use supabase docker locally?<p>when I run 3-4 instances locally, my macbook gets hot and sometimes freezes.<p>&gt; why not use supabase branches?<p>branches take minutes to setup, and are designed for persistence. this is expensive, and for a dev environment, it is too slow.<p>&gt; why not use mocks?<p>mocks are bad for agents. i expect agents to test their migrations, SQL against real prod service behavior. agents hallucinate working mocks often. However, upside of mocks is that its faster and runs locally, but with supapool, the upside is less convincing.<p>&gt; how does it work&#x2F;how is this economically viable?<p>starting supabase in 400ms requires a few things: 1. a pool of ready supabase instances running warm, and colocated with region failover (us-east, us-west, europe-west, asia-southeast) 2. fast autoscaling when pool starts to shrink with microVM&#x2F;firecracker 3. gutting strong persistence guarantees. dev agents don&#x27;t need WAL, fsync, PITR, replication. anything for HA on a ephemeral supabase instance is bloat<p>its in beta right now, and i&#x27;m using our gcp credits to bankroll this, so its free. the eventual pricing will be something like $&#x2F;instance second and more cost effective than branching or self hosting&#x2F;maintaining a supabase cluster.<p>would love to get your feedback if you use supabase, and if you think there&#x27;s something better that would fit your local coding agent setup. Thanks!
Original Article
View Cached Full Text

Cached at: 07/30/26, 07:51 PM

# Supapool: Real Supabase for parallel coding agents Source: [https://supapool.io/](https://supapool.io/) [Discord](https://discord.gg/V5aB8xw7Ps) ## How it works ``` npx @supapool/cli run -- npm run dev ``` Wrap any command\. Supapool leases a clean instance, injects its credentials, keeps it alive, and releases it when the command exits\. ## Why - **Real Supabase\.**Postgres, Auth, and S3\-compatible Storage\. - **Parallel agents need this\.**Agents never wipe each other's databases mid\-run\. - **No mocks\.**Test migrations and database operations against a real, isolated Supabase stack without touching production\. - **Branching is slow and expensive\.**Branches can take minutes to create and bill as if they were production instances\. - **Colocated\.**Instances are ephemeral, so they spin up close to where your agent is doing the work instead of living in a fixed home region\. - **CLI\-only\.**There is no dashboard\. Accounts, usage, and cost are exposed through the CLI and API, built for agent ergonomics, so you can pipe everything straight into your company brain\. - **Free during beta\.**Email agent@supapool\.io for an immediate automated response with a fix or a request for the information needed to solve it\. ## Docs ### Commands The CLI has two commands\. ``` npx @supapool/cli login npx @supapool/cli run -- <command> ``` `login`opens GitHub sign\-in and saves an API key to`~/\.config/supapool/config\.json`\.`run`does the same sign\-in on first use, so most people never run`login`directly\. `run`acquires a clean instance, applies every`\.sql`file in`supabase/migrations`in filename order, starts your command with the instance credentials in its environment, renews the lease while the command is alive, and releases the instance when it exits\. Your repository's environment files are never modified\. ### What gets injected The wrapped command receives standard Supabase variables:`SUPABASE\_URL`,`SUPABASE\_ANON\_KEY`,`SUPABASE\_SERVICE\_ROLE\_KEY`, and`DATABASE\_URL`\. The same values are mirrored to the current publishable and secret key names, the public prefixes used by Next\.js, Vite, Astro, Svelte, Expo, Create React App, Gatsby, and Nuxt, Prisma and Postgres URL aliases, and the standard`PG\*`connection variables\. Secret keys are never assigned to browser\-public variables\.`SUPAPOOL\_INSTANCE\_ID`identifies the lease\. ### Leases Every instance is a lease with a TTL, 30 minutes by default\. The CLI renews it every 5 minutes while your command runs\. When the command exits, or if the process dies and renewals stop, the lease expires and the slot is wiped and returned to the pool\. Nothing you store in an instance survives release, so treat every run as disposable\. ### CI CI jobs skip the browser login\. Sign in once on a laptop, copy the key from`~/\.config/supapool/config\.json`into a CI secret, and set it as`SUPAPOOL\_API\_KEY`: ``` SUPAPOOL_API_KEY=sp_live_... npx @supapool/cli run -- pnpm test ``` ### Use it from code The npm package is also a library\.`withInstance`acquires a lease, renews it while your callback runs, and always releases it, even when the callback throws: ``` import { withInstance } from '@supapool/cli' await withInstance(async (instance) => { const { SUPABASE_URL, SUPABASE_ANON_KEY, DATABASE_URL } = instance.env // run tests, seed data, exercise the real stack }) ``` The lifecycle primitives`acquire`,`renew`,`release`, and`startRenewer`are exported for code that manages its own lease boundaries\. See the[package README](https://www.npmjs.com/package/@supapool/cli)for the full API\.

Similar Articles

Launch HN: Superset (YC P26) – IDE for the agents era

Hacker News Top

Superset is an open-source IDE for orchestrating multiple CLI-based AI coding agents in parallel, with isolated git worktrees, built-in monitoring, and a diff viewer. It supports various agents like Claude Code, Codex CLI, and Gemini CLI.