Skip to content
NEWTry Pilot Cloud

InsForge · io.pilot.insforge

Insforge

The agent-native cloud (an AWS for agents) as ONE Pilot app. insforge.signup provisions your OWN isolated InsForge backe

Infrastructure · Live on the catalogue

$ pilotctl appstore install io.pilot.insforge
Version
v1.0.0
Methods
24
Size
8.8 MB
Permissions
None declared
Platforms
macOS · Linux

About Insforge

The agent-native cloud (an AWS for agents) as ONE Pilot app. insforge.signup provisions your OWN isolated InsForge backend in one call — no email, no browser: a dedicated Postgres database, authentication, S3-style storage, Deno edge functions, and a Model Gateway OpenRouter key seeded with $1 of AI credits. Pilot's broker mints and manages the account; every method then talks directly to your backend, authenticated as you. Free to provision — pay only for what your backend uses.

Methods · 24

insforge.signupProvision your OWN isolated InsForge backend in ONE call — no email, no browser, no human step. This signs a keyless request to Pilot's InsForge signup broker, which mints a fresh InsForge project under Pilot's managed account and returns its access key + backend URL. The adapter caches {api_key, backend_url} to $APP/secrets.json, and from then on EVERY other insforge.* method talks directly to YOUR backend, authenticated as you. You get a dedicated Postgres database, authentication, S3-style storage, edge functions, and a Model Gateway OpenRouter key seeded with $1 of AI credits. Idempotent: the broker provisions at most one project per Pilot identity, so a repeat call (or a fresh install) returns the SAME backend. Run this ONCE before any other method. FREE to provision — you pay only for the resources your backend actually uses (see per-method costs and insforge.help). Retrieve your backend URL + key any time via insforge.account. Takes no arguments.insforge.accountRetrieve your provisioned InsForge backend — its backend_url, your api_key, and project id — plus a signed_up flag. Local, instant, FREE (reads $APP/secrets.json; no backend call). Use it to confirm you're provisioned or to read your key/URL (e.g. to call the backend from your own code). If signed_up is false, call insforge.signup first.insforge.metadataGet your backend's full configuration — auth providers/SMTP, database tables, storage buckets, edge functions, realtime, and AI models — in one call. FREE (control-plane / metadata).insforge.db_list_tablesList all database tables with their schemas (columns, types, constraints). FREE (control-plane / metadata).insforge.db_create_tableCreate a Postgres table. Body: {tableName, columns:[{columnName, type, isNullable, isUnique, defaultValue?}]} — type is one of string, integer, float, boolean, datetime, date, uuid, json. An id (uuid) + createdAt/updatedAt are added automatically. Rows count toward Postgres storage (500 MB free, then $0.125/GB); reads toward bandwidth (5 GB free, then $0.09/GB).insforge.db_queryQuery records from a table with PostgREST-style filtering, sorting, pagination. Path: table name. Query params: limit (1-1000, default 100), offset, order (e.g. createdAt.desc), select (comma columns), and any {field}=. filter (op: eq, neq, gt, gte, lt, lte, like, ilike, in, is). Counts toward bandwidth (5 GB free, then $0.09/GB).insforge.db_insertInsert one or more records into a table. Path: table name. Body: a JSON array of row objects (e.g. [{"title":"hi"}]) — always an array, even for one row. Returns the inserted rows with generated ids. Note: just after db_create_table, wait ~3s before the first insert (the database reloads its schema cache after DDL; an immediate insert can 404). Rows count toward Postgres storage (500 MB free, then $0.125/GB); reads toward bandwidth (5 GB free, then $0.09/GB).insforge.db_updateUpdate records matching PostgREST filters. Path: table name. Pass filter(s) as query params ({field}=eq.) and the new column values in the body. Returns the updated rows. Rows count toward Postgres storage (500 MB free, then $0.125/GB); reads toward bandwidth (5 GB free, then $0.09/GB).insforge.db_deleteDelete records matching PostgREST filters. Path: table name. Pass filter(s) as query params ({field}=eq.). Returns the deleted rows. Rows count toward Postgres storage (500 MB free, then $0.125/GB); reads toward bandwidth (5 GB free, then $0.09/GB).insforge.db_sqlRun raw parameterized SQL against your Postgres database. Body: {query, params?}. Powerful — use for joins, aggregates, DDL, migrations. Rows count toward Postgres storage (500 MB free, then $0.125/GB); reads toward bandwidth (5 GB free, then $0.09/GB).insforge.storage_list_bucketsList your storage buckets. FREE (control-plane / metadata).insforge.storage_create_bucketCreate a storage bucket. Body: {bucketName, isPublic}. A public bucket serves objects without auth; a private one requires the key. FREE (control-plane / metadata).insforge.storage_list_objectsList objects in a bucket (paginated). Path: bucket name. Query: limit, offset, prefix. Counts toward bandwidth (5 GB free, then $0.09/GB).insforge.storage_downloadDownload an object (returns its content). Path: bucket + object key. Counts toward bandwidth (5 GB free, then $0.09/GB).insforge.storage_deleteDelete an object. Path: bucket + object key. FREE (control-plane / metadata).insforge.auth_configGet your backend's auth configuration (enabled OAuth providers, JWT settings, SMTP). FREE (control-plane / metadata).insforge.auth_list_usersList the end-users registered in your backend's auth (paginated). Query: limit, offset. Auth users count toward MAU (50,000 free, then $0.00325 per monthly active user).insforge.functions_listList your deployed edge functions (Deno/TypeScript) and the runtime status. FREE (control-plane / metadata).insforge.function_invokeInvoke a deployed edge function by slug. Path: function slug. Body: the JSON payload passed to the function. Each invocation counts toward edge-function calls (100,000 free, then $0.01 per 1,000).insforge.ai_gateway_keyGet your project's Model Gateway OpenRouter API key (sk-or-...). InsForge provisions it seeded with $1 of AI credits; call it directly against https://openrouter.ai/api/v1 with any OpenAI-compatible SDK (models like openai/gpt-4o, anthropic/claude-3.5-haiku). Returns the project's Model Gateway OpenRouter key, seeded with $1 of AI credits; usage bills per OpenRouter token pricing on that key.insforge.secrets_listList your backend's secrets/keys (names + metadata; values are not returned). FREE (control-plane / metadata).insforge.getEscape hatch: GET any backend API path under /api. Path param is the sub-path (e.g. "database/tables", "storage/config"); extra fields become query params. Covers endpoints not given a dedicated method. Cost depends on the endpoint — see insforge.help.insforge.postEscape hatch: POST any backend API path under /api. Path param is the sub-path; the rest of the payload is sent as the JSON body. Covers endpoints not given a dedicated method. Cost depends on the endpoint.insforge.helpThis document — methods grouped by plane (local vs cloud), with params, latency, and cost.

Full usage demo

When your agent needs its own isolated cloud backend — Postgres, auth, S3-style storage, edge functions, and an AI gateway key — provisioned in a single call.

Run this first — Provision your own isolated backend in one call (no email, no browser)Call
pilotctl appstore call io.pilot.insforge insforge.signup '{}'
→{"signed_up":true,"backend_url":"https://...insforge.dev","api_key":"..."}

Run this ONCE. It caches your backend URL + key; every other insforge.* call then talks directly to YOUR backend. Idempotent per Pilot identity.

Worked examples

Create a Postgres tableCall
pilotctl appstore call io.pilot.insforge insforge.db_create_table '{"tableName":"notes","columns":[{"columnName":"title","type":"string","isNullable":false}]}'
→{"tableName":"notes","columns":[...]}

id (uuid) + createdAt/updatedAt are added automatically. Wait ~3s before the first insert (schema cache reload).

Insert rows (always a JSON array)Call
pilotctl appstore call io.pilot.insforge insforge.db_insert '{"table":"notes","records":[{"title":"hello"}]}'
→[{"id":"...","title":"hello","createdAt":"..."}]Query with filters + orderingCall
pilotctl appstore call io.pilot.insforge insforge.db_query '{"table":"notes","order":"createdAt.desc","limit":10}'
→[{"id":"...","title":"hello"}]Get your seeded AI Model Gateway keyCall
pilotctl appstore call io.pilot.insforge insforge.ai_gateway_key '{}'
→{"api_key":"sk-or-..."}

OpenRouter key seeded with $1 of credits — call it against https://openrouter.ai/api/v1 with any OpenAI-compatible SDK.

Inspect the whole backend configCall
pilotctl appstore call io.pilot.insforge insforge.metadata '{}'
→{"database":{...},"storage":{...},"functions":{...},"auth":{...}}

Good to know

  • Run insforge.signup once first — it provisions and caches your backend URL + key; every other method targets YOUR backend, and a repeat call is idempotent (same backend).
  • Each Pilot identity gets its OWN isolated InsForge backend (dedicated Postgres, storage, functions, AI credits) — no shared state with other users.
  • After db_create_table wait ~3s before the first db_insert — the database reloads its schema cache after DDL and an immediate insert can 404.
  • db_insert always takes a JSON array of row objects, even for a single row.
  • Free to provision; you pay only for resources your backend actually uses (500MB Postgres, 1GB storage, 5GB bandwidth, 50k MAU, 100k function calls, $1 AI credits free).

Next

  • io.pilot.insforge insforge.help '{}'

What’s New

v1.0.0Latest—
  • Published v 1.0.0

Platform Compatibility

macOSApple Silicon4.7 MBSupportedmacOSIntel5.0 MBSupportedLinuxarm644.5 MBSupportedLinuxamd644.9 MBSupported