Abstrak is a thin API over Firebase. An AI agent holding one key can list projects, inspect data, create databases, merge, deploy security rules, mint sign-ins — everything you'd otherwise click through the Firebase console for. Humans get a dashboard; agents get the same thing as endpoints.
$ curl https://abstrak.zenithurl.com/api/v1/state \
-H "Authorization: Bearer ak_live_a3f2b47c…"{
"defaultProjectId": "seraphic-scarab-499010-s5",
"projects": [
{ "id": "runik-77e07", "label": "Runic", "hasDatabase": true,
"collections": ["artifacts"], "subProjects": [] },
{ "id": "zenithurl-e9909", "label": "ZenithURL", "hasDatabase": true,
"collections": ["artifacts"], "subProjects": ["from_zenithmc"] }
],
"gates": [
{ "publicKey": "pk_live_1df6…", "mode": "accounts",
"projectId": "zenithurl-e9909", "subPath": "from_zenithmc/all" }
]
}Authorization: Bearer ak_live_…. Keys are per-account and cover every Firebase project on your connected Google — no per-project scoping, no admin keys to juggle.Mint a pk_live_key in the dashboard, drop it in your frontend, and visitors sign in through Abstrak's hosted popup — no Google Console setup, no Firebase Auth boilerplate. Permission checks run on Abstrak's server; they can't be bypassed in the browser.
import { abstrak } from "abstrak";
const gate = abstrak("pk_live_…");
const user = await gate.signIn(); // verified, one tap
await gate.require({ role: "admin" }); // enforced on Abstrak's server