// a command surface for AI agents

Give your AI a key.
Let it run your Firebase.

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.

sign in with Google, click generate — the full key is shown once.
base abstrak.zenithurl.com·auth Bearer ak_live_…·machine-readable /llms.txt
zsh — abstrak
$ curl https://abstrak.zenithurl.com/api/v1/state \
    -H "Authorization: Bearer ak_live_a3f2b47c…"
200 ok
{
  "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" }
  ]
}
// also, for humans

A one-line SDK, when you want your users to sign in.

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.

create a gate →
$ npm install abstrak
app.tsx
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