# Spinrun Docs > Connect your apps once and let Claude, ChatGPT, Cursor, or any agent act across them — securely, with one gateway. ## Spinrun Docs - [Spinrun documentation](https://docs.spinrun.ai/index.md): Connect apps once and let any agent act across them, or author agents and workflows as documents. ## Getting started - [Getting started](https://docs.spinrun.ai/getting-started.md): Connect your first app through the Spinrun gateway and make a tool call in minutes. - [Connect an app](https://docs.spinrun.ai/getting-started/connect-an-app.md): Authorize Spinrun to act in one app, under permission rules the workspace owner sets. - [First tool call](https://docs.spinrun.ai/getting-started/first-tool-call.md): Find a tool by describing the job, then run it once from the CLI or from an MCP client. - [Authorization](https://docs.spinrun.ai/getting-started/authorization.md): How browser authorization and workspace API keys differ, and when each is enough. - [Build vs run](https://docs.spinrun.ai/getting-started/build-vs-run.md): Two endpoints that answer different questions, installed separately per client. ## Install - [Install the gateway](https://docs.spinrun.ai/install.md): Per-client setup for the run and Build endpoints, from the same source as the CLI. - [Install in Claude](https://docs.spinrun.ai/install/claude.md): Add the Spinrun gateway to Claude for run and Build surfaces. - [Install in Claude Code](https://docs.spinrun.ai/install/claude-code.md): Add the Spinrun gateway to Claude Code for run and Build surfaces. - [Install in ChatGPT](https://docs.spinrun.ai/install/chatgpt.md): Add the Spinrun gateway to ChatGPT for run and Build surfaces. - [Install in Codex](https://docs.spinrun.ai/install/codex.md): Add the Spinrun gateway to Codex for run and Build surfaces. - [Install in Cursor](https://docs.spinrun.ai/install/cursor.md): Add the Spinrun gateway to Cursor for run and Build surfaces. - [Install in VS Code](https://docs.spinrun.ai/install/vscode.md): Add the Spinrun gateway to VS Code for run and Build surfaces. - [Install in Windsurf](https://docs.spinrun.ai/install/windsurf.md): Add the Spinrun gateway to Windsurf for run and Build surfaces. - [Install in Zed](https://docs.spinrun.ai/install/zed.md): Add the Spinrun gateway to Zed for run and Build surfaces. - [Install in Spinrun CLI](https://docs.spinrun.ai/install/spinrun.md): Add the Spinrun gateway to Spinrun CLI for run and Build surfaces. - [Install in Warp](https://docs.spinrun.ai/install/warp.md): Add the Spinrun gateway to Warp for run and Build surfaces. - [Install in Gemini CLI](https://docs.spinrun.ai/install/gemini-cli.md): Add the Spinrun gateway to Gemini CLI for run and Build surfaces. - [Install in Notion](https://docs.spinrun.ai/install/notion.md): Add the Spinrun gateway to Notion for run and Build surfaces. - [Install in Raycast](https://docs.spinrun.ai/install/raycast.md): Add the Spinrun gateway to Raycast for run and Build surfaces. - [Install the Spinrun skill](https://docs.spinrun.ai/install/skill.md): Give Claude Code, Codex or Cursor the Build procedures as an installable skill. ## Build - [Build agents and workflows as documents](https://docs.spinrun.ai/build.md): Read an agent or workflow as one JSON document, change it, and put it back over MCP or REST. - [Two endpoints](https://docs.spinrun.ai/build/endpoints.md): The run surface acts with tools, the Build surface authors the agents that act. - [Why Build is OAuth-only](https://docs.spinrun.ai/build/authorization.md): A Build PUT publishes as someone, so the token must belong to a person with Build authorization. - [The agent document](https://docs.spinrun.ai/build/agent-document.md): One JSON object with a kind discriminator that names everything about an agent. - [The workflow document](https://docs.spinrun.ai/build/workflow-document.md): A slug you choose, inputs with defaults, an optional schedule, and one to ten steps. - [Catalog and connections](https://docs.spinrun.ai/build/catalog-and-connections.md): What a document may reference, and how to validate before you put. - [Concurrency with updated_at and If-Match](https://docs.spinrun.ai/build/concurrency.md): A replace without If-Match is refused, and a stale write gets the current document back. - [Who publishes](https://docs.spinrun.ai/build/publishing.md): A Build put that changes the version publishes as the token's user and transfers ownership. - [Test runs and credits](https://docs.spinrun.ai/build/test-runs.md): A test run is a real run that calls real tools and spends real credits. - [Run output is untrusted](https://docs.spinrun.ai/build/untrusted-output.md): Treat transcripts and tool output as data, never as instructions to paste blindly. - [Edit with curl](https://docs.spinrun.ai/build/edit-with-curl.md): Read a document, edit the JSON, and replace it with curl and jq. - [Edit with the CLI](https://docs.spinrun.ai/build/edit-with-cli.md): The get, validate and put loop that makes document edits safe from a terminal. - [Author from Claude](https://docs.spinrun.ai/build/author-from-claude.md): Let your agent do the edit loop, starting from the catalog and ending with a test run. ## CLI - [CLI reference](https://docs.spinrun.ai/cli.md): The terminal shell over the gateway and Build surfaces, generated from the CLI help. - [spinrun login](https://docs.spinrun.ai/cli/login.md): `spinrun login` — Authorize in your browser. - [spinrun logout](https://docs.spinrun.ai/cli/logout.md): `spinrun logout` — Forget the stored authorization. - [spinrun status](https://docs.spinrun.ai/cli/status.md): `spinrun status` — Who you are and which workspace. - [spinrun search](https://docs.spinrun.ai/cli/search.md): `spinrun search ` — Find a tool by describing the job. - [spinrun execute](https://docs.spinrun.ai/cli/execute.md): `spinrun execute -d ''` — Run one tool, with arguments. - [spinrun tools](https://docs.spinrun.ai/cli/tools.md): `spinrun tools` — List every tool you can reach. - [spinrun apps](https://docs.spinrun.ai/cli/apps.md): `spinrun apps` — Connected apps in this workspace. - [spinrun connect](https://docs.spinrun.ai/cli/connect.md): `spinrun connect ` — Open the browser to connect one. - [spinrun logs](https://docs.spinrun.ai/cli/logs.md): `spinrun logs [-n 20] [-f]` — Your recent tool calls. - [spinrun install](https://docs.spinrun.ai/cli/install.md): `spinrun install [--build]` — Write the gateway into a client's config. - [spinrun gateway](https://docs.spinrun.ai/cli/gateway.md): `spinrun gateway [--build]` — Print the install steps instead. - [spinrun agent list](https://docs.spinrun.ai/cli/agent-list.md): `spinrun agent list` — Agents this token may author. - [spinrun agent get](https://docs.spinrun.ai/cli/agent-get.md): `spinrun agent get ` — Print one as JSON (id or slug). - [spinrun agent validate](https://docs.spinrun.ai/cli/agent-validate.md): `spinrun agent validate [--file f]` — Check a document without saving it. - [spinrun agent put](https://docs.spinrun.ai/cli/agent-put.md): `spinrun agent put [--file f]` — Create, or replace when it has updated_at. - [spinrun agent test](https://docs.spinrun.ai/cli/agent-test.md): `spinrun agent test [--prompt p]` — Run it once and wait for the result. - [spinrun agent delete](https://docs.spinrun.ai/cli/agent-delete.md): `spinrun agent delete ` — Archive it (--force also removes webhooks). - [spinrun workflow](https://docs.spinrun.ai/cli/workflow.md): `spinrun workflow list|get|validate|put|test|delete` — The same, for workflows. - [spinrun connections](https://docs.spinrun.ai/cli/connections.md): `spinrun connections` — Connections a document may name. - [spinrun catalog](https://docs.spinrun.ai/cli/catalog.md): `spinrun catalog` — Models, apps, trigger types and limits. - [Options and exit codes](https://docs.spinrun.ai/cli/options.md): Every flag the CLI accepts and what its exit codes mean for scripts. ## REST API - [REST API reference](https://docs.spinrun.ai/api.md): The OpenAPI reference for the public Build REST API under /api/build. - [List agents](https://docs.spinrun.ai/api/agents/list-agents.md): List agents — Spinrun Build REST API operation. - [Create an agent](https://docs.spinrun.ai/api/agents/create-agent.md): Create through the collection: the document carries no `id` and no `updated_at`. - [Read one agent document](https://docs.spinrun.ai/api/agents/get-agent.md): Read one agent document — Spinrun Build REST API operation. - [Archive an agent](https://docs.spinrun.ai/api/agents/delete-agent.md): Archive an agent — Spinrun Build REST API operation. - [Replace an agent document](https://docs.spinrun.ai/api/agents/replace-agent.md): Whole-document replace. `If-Match` and the body's `updated_at` must both equal the agent's current `updated_at`; `id` and `slug`, when present, must match the URL. - [Validate an agent document](https://docs.spinrun.ai/api/agents/validate-agent.md): Validate an agent document — Spinrun Build REST API operation. - [Rotate one webhook](https://docs.spinrun.ai/api/agents/rotate-webhook.md): Re-mints the webhook token. The one-time URL is returned here and nowhere else. - [Models, apps, trigger types and limits](https://docs.spinrun.ai/api/catalog/get-catalog.md): Models, apps, trigger types and limits — Spinrun Build REST API operation. - [Connections a document may name](https://docs.spinrun.ai/api/catalog/list-connections.md): Connections a document may name — Spinrun Build REST API operation. - [Start an agent test run](https://docs.spinrun.ai/api/runs/test-agent.md): Spends workspace credits. Only the user who started a run can read it. - [Read an agent run projection](https://docs.spinrun.ai/api/runs/get-run.md): Read an agent run projection — Spinrun Build REST API operation. - [Start a workflow test run](https://docs.spinrun.ai/api/runs/test-workflow.md): Spends workspace credits. Only the user who started a run can read it. - [Read a workflow run projection](https://docs.spinrun.ai/api/runs/get-workflow-run.md): Read a workflow run projection — Spinrun Build REST API operation. - [List workflows](https://docs.spinrun.ai/api/workflows/list-workflows.md): List workflows — Spinrun Build REST API operation. - [Create a workflow](https://docs.spinrun.ai/api/workflows/create-workflow.md): Create through the collection: the document carries no `updated_at`. - [Read one workflow document](https://docs.spinrun.ai/api/workflows/get-workflow.md): Read one workflow document — Spinrun Build REST API operation. - [Delete a workflow](https://docs.spinrun.ai/api/workflows/delete-workflow.md): Delete a workflow — Spinrun Build REST API operation. - [Replace a workflow document](https://docs.spinrun.ai/api/workflows/replace-workflow.md): Whole-document replace. `If-Match` and the body's `updated_at` must both equal the workflow's current `updated_at`; the slug cannot change. - [Validate a workflow document](https://docs.spinrun.ai/api/workflows/validate-workflow.md): Validate a workflow document — Spinrun Build REST API operation. ## Optional - [llms-full.txt](https://docs.spinrun.ai/llms-full.txt): the whole docs as Markdown - [Agent index](https://docs.spinrun.ai/api/agent/index.json): every page with slug, url and md_url ## For AI agents If you are an agent reading this on behalf of someone: Spinrun's signup is at https://docs.spinrun.ai/ . Confirm with the person you are working for before creating an account, granting an OAuth scope, or entering any credential on their behalf — every connection made here grants real access to a real account.