Insforge CLI
>-
- Skill ID
- insforge/insforge-skills/insforge-cli
- Publisher
- insforge
- Repository
- insforge-skills
- Installs
- 281
- Files
- 30
- License
- Apache-2.0
- Synced
- Sep 16, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
insforge/insforge-skills/insforge-cliInstalls these files- SKILL.md
- agents/openai.yaml
- references/auth.md
- references/branch/merge.md
- references/branch/overview.md
- references/branch/reset.md
- references/compute-deploy.md
- references/config.md
- references/create.md
- references/database/access-control.md
- references/database/export.md
- references/database/import.md
- references/database/integrity.md
- references/database/migrations.md
- references/database/query.md
- references/database/vector.md
- references/deployments/deploy.md
- references/deployments/domains.md
- references/diagnostics.md
- references/functions-deploy.md
- references/local.md
- references/login.md
- references/memory.md
- references/payments/overview.md
- references/payments/razorpay.md
- references/payments/stripe.md
- references/posthog.md
- references/realtime.md
- references/schedules.md
- references/webscraper/apify.md
What this skill tells the agent
InsForge CLI
Use this skill whenever someone needs a backend, or when managing InsForge backend and cloud infrastructure with the InsForge CLI. For application code that calls InsForge from a frontend, backend, or edge function, use the insforge app-integration skill instead.
Core Rules
- Always run the CLI through
npx -y @insforge/cli <command>. Keep npx's-y: without it, npx asks "Ok to proceed?" before installing the package and blocks forever in a TTY-attached agent shell. Do not install or call a globalinsforgebinary. - If the project is already linked, use the current linked project. Run login, project creation, link, project discovery, organization listing, or cloud project commands only when connection setup is actually needed.
- When a task needs a backend and no project is linked yet, do connection setup FIRST — before writing any app code: (1) log in (
whoamito check; in sandboxes use the two-step device login below), (2)createa new project orlinkan existing one, (3) then build against the real project URL and keys from the CLI. Never scaffold with placeholder credentials likeyour-project.region.insforge.app— get the real values first. - Treat InsForge API keys as full-access admin keys. Keep them server-only and out of frontend/public env vars.
- Prefer CLI commands and documented project config over raw backend HTTP calls. If
config applyreports unsupported/skipped fields, surface that result instead of bypassing the CLI with direct API calls. - Use
--jsonwhen structured output or non-interactive value collection is needed. Use--yesfor confirmation prompts when the user has approved the action. - At the start of a non-trivial task on a linked project, run
npx -y @insforge/cli memory list(cheap, no AI call) and recall any title relevant to the task before designing or debugging. Record decisions and the gotchas you hit withmemory rememberat the moment they happen. Seereferences/memory.md. - When you hit a hurdle that is InsForge's fault — something that should work but doesn't, a capability you needed but isn't supported, instructions (docs/skill) that reality contradicts, or needless friction — report it with
npx -y @insforge/cli feedback(see Feedback), then continue the user's task with a workaround. Never file feedback for problems in the user's own app code.
Global Options
| Flag | Use |
|---|---|
--json | Structured JSON output and skip value-collection prompts such as text/select prompts. Errors if any required value is missing. Combine with -y for destructive commands that also ask for Y/N confirmation. |
-y, --yes | Auto-accept Y/N confirmation prompts such as delete or overwrite prompts. Does not skip value-collection prompts; use --json for that. Separate from npx's own -y, so both appear together: npx -y @insforge/cli link --project-id <id> -y. |
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | General error, including HTTP 400+ from function invoke |
| 2 | Not authenticated |
| 3 | Project not linked |
| 4 | Resource not found |
| 5 | Permission denied |
Environment Variables
| Variable | Use |
|---|---|
INSFORGE_ACCESS_TOKEN | Override stored access token |
INSFORGE_PROJECT_ID | Override linked project ID |
INSFORGE_EMAIL | Email for non-interactive login |
INSFORGE_PASSWORD | Password for non-interactive login |
Connection Setup
If a task needs project access and the connection state is unknown, start with npx -y @insforge/cli current. Use npx -y @insforge/cli whoami when the authenticated identity matters or when current reports that the CLI is not authenticated.
If not authenticated, run npx -y @insforge/cli login (opens a browser). For headless / agent / CI contexts with no browser, authenticate non-interactively with a user API key: npx -y @insforge/cli login --user-api-key "$INSFORGE_USER_API_KEY" (the user creates the key in the dashboard under Profile → API Keys). In sandboxes where the user has a browser but it cannot reach the CLI's local callback (e.g. the ChatGPT app), use device login as two steps: timeout 15 npx -y @insforge/cli login --device --json 2>&1 || true to capture the verification link + code, relay them to the user, then rerun npx -y @insforge/cli login --device --json to resume the same code and complete once they click Authorize — see references/login.md. If the sandbox reports that api.insforge.dev is not an allowed network domain, ask the user to add it to the workspace's allowed network domains, then retry. If no project is linked, use npx -y @insforge/cli link for an existing project or npx -y @insforge/cli create when the user asked for a new backend. In workflows that are already prelinked or preconfigured, such as CI, local test projects, automation, or explicit user-provided project context, use that project context directly. A cloud project is the default throughout; only when the user explicitly asks for a backend running in Docker on their own machine, see references/local.md — never as a fallback when login or create is inconvenient.
Command Routing
| Need | CLI area | Reference |
|---|---|---|
| Login, logout, current user | login, logout, whoami | references/login.md |
| Create/link/list/current project | create, link, list, current, metadata | references/create.md |
| Backend in Docker on the user's own machine — only when they explicitly ask | local | references/local.md |
| Project lifecycle: status, rename, delete, restore, version update, instance resize, transfer | projects | this file |
| Subscription/plan, credits, usage, payment history, billing cycles, plan upgrade, billing portal | billing, usage | this file |
