Use Squiid with
Claude Code
Claude Code needs credentials for every service your project touches. Give it one instead: SQUIID_API_KEY in .env, and every service in the catalog behind it.
What Claude Code is
Claude Code is Anthropic command line coding agent. It runs in your terminal inside a project directory, reads and edits files, runs shell commands and tests, and works through multi-step tasks rather than completing single lines. Because it executes commands in your working directory, it inherits your shell environment, which is exactly the property that makes a single gateway key practical.
The problem: every agent wants keys
The moment a coding agent stops writing a component and starts wiring up a product, it needs credentials. A database URL for Supabase. A deploy token for Vercel. An API key for Resend. Another for Twilio, another for Stripe, another for whichever model provider the feature calls. Each one is a signup, a dashboard, a billing relationship and a secret that has to exist somewhere Claude Code can reach.
What happens next is worse than a long .env file. People paste secrets into prompts to get better answers, and keys end up in chat transcripts, in screenshots posted for help, and in committed config. Because each key belongs to a different vendor, rotating one after a leak means finding it, regenerating it and updating every place it was copied to.
The fix: one key, one convention
Squiid holds the upstream credentials for every service in the catalog. Your project gets one variable:
SQUIID_API_KEY=sq_live_xxxxxxxxxxxxxxxxxxxx
Then every call your app or your agent makes goes to the gateway with that one key:
curl https://api.squiid.io/v1/supabase/... \
-H "Authorization: Bearer $SQUIID_API_KEY"
Official SDKs take a base URL, so most integrations are a one line change rather than a rewrite:
import { createClient } from '@supabase/supabase-js';
const db = createClient(
'https://api.squiid.io/v1/supabase',
process.env.SQUIID_API_KEY,
);
That is the gateway convention: https://api.squiid.io/v1/<service>/ with Authorization: Bearer $SQUIID_API_KEY. It is the same for every service, which is why an agent only has to learn it once. Full detail is on the gateway convention page.
Setting it up in Claude Code
- Claude Code runs in your shell, so it sees the environment variables that shell exports. Keeping
SQUIID_API_KEYin your project.envand loading it the way your app already does is usually enough. - Put the gateway convention in
CLAUDE.mdat the root of the repository. Claude Code reads that file as project context, so writing the base URL and the header there means you do not repeat it in every prompt. - Project settings live under
.claude/in the repo. Recent versions support setting environment variables through settings files. Check the Claude Code documentation for the exact key names, since they have changed between releases.
What it costs
Usage is paid from prepaid credits at par: $1 of credit is $1 at the provider, no markup. The free plan is $0/month with a 15% fee on credit top-ups and a $50 minimum top-up. Solo is $19.97/month and its top-up fee starts at 8%, falling to 6.5%, 5% and 3.5% as trailing 30-day API spend passes $100, $500 and $2,000. Team is $29.97 per seat per month for seats 1-5, $24.97 for seats 6-20 and $19.97 above that, with the same ladder one point lower. Custom pricing is 3% or less against a commitment. Subscription-priced services such as Supabase Pro at $25 a month pass through at the provider price with no fee. Credits pause at zero rather than overdrawing, with alerts at 75%, 90% and 100%. See spend controls.
Services agents ask for most
The eight services that come up first in almost every Claude Code project, all reachable with the same key.
Supabase
DatabasePostgres with auth, storage and realtime.
Vercel
HostingDeploy from a git push, preview per branch.
Resend
EmailTransactional email in one POST request.
Twilio
MessagingSMS, voice and phone numbers worldwide.
Cloudflare R2
StorageR2 object storage, Workers, KV and D1.
Stripe
PaymentsCheckout, subscriptions and webhooks.
Anthropic
LLM APIClaude models for app-side generation.
OpenAI
LLM APIChat, embeddings, images and audio.
Set it up in 3 steps
Add the services in Squiid
Create a Squiid account, top up credits, and click add on the services this project needs. Squiid provisions them upstream and keeps the provider credentials.
One line in .env
Put SQUIID_API_KEY=sq_live_… in .env and remove every provider key you were carrying. That is the whole secret surface of the project.
Tell Claude Code the convention
Write the base URL and the header into CLAUDE.md so Claude Code generates correct calls without being reminded.
Questions people ask
How do I give Claude Code access to my database and email provider?
Add the services on Squiid, put SQUIID_API_KEY=sq_live_… in your project .env, and note the gateway convention in CLAUDE.md. Claude Code then calls https://api.squiid.io/v1/<service>/ with that one key and never handles a provider credential.
Does Squiid replace my Claude Code subscription?
No. Claude Code bills you for its own model usage under your Anthropic plan. Squiid covers the services your application uses at runtime, such as Supabase, Vercel, Resend and Twilio, plus any API calls your app makes to model providers.
Where should I write the gateway convention so Claude Code remembers it?
In CLAUDE.md at the repository root. That file is loaded as project context at the start of a session, so the base URL and the header are available without you restating them. A short block of four lines is enough.
Can Claude Code see my provider API keys?
Not if there are none in the project. That is the point of the Squiid model: the provider credentials stay in Squiid, and the repository holds one gateway key that you can rotate in a click if a session log or a commit ever exposes it.
Give Claude Code one key.
Not twelve.
One account, one API key, one bill and one dashboard for every service in the catalog your project needs.