Use Squiid with
Windsurf

Windsurf 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 Windsurf is

Windsurf is an agentic development environment whose Cascade agent keeps track of what you are working on across files, proposes multi-file edits and can run commands. It is an editor on your machine, so it operates on a real checkout with a real .env, and the practical question is how you tell Cascade the house rules for calling external services.

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 Windsurf 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 Windsurf

Agent tooling changes quickly. Where a file path or a settings panel is named above, confirm it against the agent own current documentation before relying on it.

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 Windsurf project, all reachable with the same key.

Set it up in 3 steps

STEP 1

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.

STEP 2

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.

STEP 3

Tell Windsurf the convention

Write the base URL and the header into your project rules file so Windsurf generates correct calls without being reminded.

Questions people ask

How do I tell Cascade to use the Squiid gateway?

Add a rules file under .windsurf/rules/ stating that all third party calls use https://api.squiid.io/v1/<service>/ with Authorization: Bearer $SQUIID_API_KEY. Rules are persistent context, so it applies to every Cascade session in that project.

Where does Windsurf keep project rules?

In a .windsurf/rules/ directory in recent versions, with a legacy .windsurfrules file supported from earlier releases. Check the Windsurf documentation for your version, since the format has evolved.

Can Windsurf provision a database for me?

It can write the code and the migrations. Creating the upstream project is a click in Squiid, which then holds the credential. That separation is deliberate: an agent should not be able to open a paid account on your behalf.

Does Squiid change how Windsurf bills me?

No. Windsurf bills for its own model usage. Squiid bills for the services your application calls, from prepaid credits at provider prices, on one monthly invoice.

Give Windsurf one key.
Not twelve.

One account, one API key, one bill and one dashboard for every service in the catalog your project needs.