Skip to content

Getting started

Deploy publication-quality spaces from ChatGPT, Claude Code, Codex, Cursor, Windsurf, and any MCP-compatible client. The /sheep skill generates polished HTML pages and publishes them to a private, shareable URL in one step.

  • ChatGPT & Codex
  • Claude
  • Cursor
  • Windsurf
  • Antigravity

Fastest: hand it to your agent

Paste this into Claude Code, Codex, Cursor, Windsurf — anything that can open a URL. Your agent reads the guide, writes the right config for whichever client it's running in, and checks the connection.

Set up spacesheep for me: https://spacesheep.dev/setup

Rather do it yourself? The steps below cover every client by hand. Claude Code in auto mode will hand you one line to run with ! in front — it won't install a plugin on its own, and that's expected. On ChatGPT, Claude.ai or Grok? Those can't configure themselves — it's two clicks in their settings, here. In Claude Code on the web, spacesheep.dev isn't on the default network list, so the agent can't even open the guide: add spacesheep as a Claude.ai connector, which needs no network change, or first allow spacesheep.dev and mcp.spacesheep.dev under the environment's network access.

Or in one click: Connect to Claude Add to Cursor

Set it up by hand

1
Install
npx spacesheep-skill

or

curl -fsSL https://spacesheep.app/install.sh | bash

Required after installation: Restart your Claude session (exit and run claude again, or start a new terminal) for the MCP server and tools to take effect.

Installs the /sheep skill and configures the MCP server for Claude Code. Add -g for global install. For other clients, see MCP setup below.

2
Sign in via your browser

The installer opens spacesheep.dev, you approve with one click, and it wires up the MCP server automatically — no API key to copy and paste. First time, you'll claim an @username: it becomes your URL namespace, so spaces publish to spacesheep.dev/@you/<title>. Prefer a key? Create one in Settings → API keys and set it as an environment variable, export SPACESHEEP_KEY=ss_… — the CLI and every config below read it by that name.

3
Restart your client

Restart your Claude session (exit and run claude again, or start a new terminal) for the MCP server and tools to take effect. For Codex, start a new task and reload the client if needed. For Cursor or other clients, restart the client so the MCP connection is picked up.

4
Create something
Deploy a quarterly metrics report from this data to spacesheep
Build an architecture overview and publish it
Create a comparison page: Postgres vs SQLite vs DuckDB

The MCP deploy tool builds a self-contained HTML document and publishes it to a private URL you can share. In Claude Code, the /sheep skill adds design best practices automatically.

Connect your accounts

Nothing to install and nothing to paste: click Connect, approve it in the browser, and your agent can read these for you. Connect Zoom and a meeting that ends becomes a recap page — what was decided, who owes what — waiting for you when you close the call.

Change your mind any time in Settings → Integrations — disconnecting takes the access away immediately.

Worker mode

Worker mode is invite-only for now. Use static HTML with the built-in records API for forms and shared data. With Worker access, include a worker.js file and spacesheep deploys it as a live server-side app with SQL database access.

// worker.js — ES module format
export default {
  async fetch(request, env) {
    const url = new URL(request.url);
    if (url.pathname === "api/votes") {
      const rows = await env.AWS_DB.prepare("SELECT * FROM votes").all();
      return Response.json(rows.results);
    }
    return new Response("<h1>Hello</h1>", {
      headers: { "Content-Type": "text/html" }
    });
  }
};

Include a schema.sql file for database migrations — it runs against the space's database on every deploy. Use CREATE TABLE IF NOT EXISTS for idempotent migrations.

Deploy with worker.js + any other files — worker mode is detected automatically. Use relative URLs in frontend code (e.g. fetch("api/data")).

MCP setup by client

The installer configures Claude Code automatically. For other clients, add the spacesheep MCP server manually:

ChatGPT, Claude.ai, Grok — hosted assistants

No terminal, no config file, and nothing for the assistant to install: a connector is a setting you add, which is why asking ChatGPT to set itself up never works. Copy the server URL, then add it in your assistant's settings and approve the browser sign-in.

https://mcp.spacesheep.dev/mcp
  • ChatGPT — turn on Developer mode (Settings → Security and login), then add the URL as a custom server: MCP in the composer's + menu where your account shows it, or chatgpt.com/plugins → + → Create plugin. Approve the sign-in.
  • Claude (web, Desktop, mobile) — Connect to Claude opens Add custom connector with spacesheep filled in; or Settings → Connectors → Add custom connector and paste the URL. Then start a new conversation/session so the MCP tools become available.
  • Grok — grok.com/connectors → New connector → Custom.

No API key: all three speak OAuth, so you approve once in the browser and the assistant holds a token it can rotate. If spacesheep is already listed but its tools look wrong or out of date, remove the connector and add it again — these clients snapshot the tool list when you connect and won't refresh it on their own.

Claude Code

Easiest is the CLI — it writes the right file in the right shape, and OAuth means no key to manage:

claude mcp add --transport http --scope user spacesheep https://mcp.spacesheep.dev/mcp

Required after installation: Restart your Claude session (exit and run claude again, or start a new terminal) for the MCP server and tools to take effect.

Then run /mcp inside Claude Code to finish the browser sign-in. To write it by hand instead, the file is ~/.claude.json for user scope or .mcp.json in the project root — not ~/.claude/settings.json, which doesn't read mcpServers:

{
  "mcpServers": {
    "spacesheep": {
      "type": "http",
      "url": "https://mcp.spacesheep.dev/mcp"
    }
  }
}

"type": "http" is required — an entry with a url and no type is read as a stdio server and errors. If you can't use OAuth, add "headers": { "Authorization": "Bearer ${SPACESHEEP_KEY}" } and export SPACESHEEP_KEY=ss_…; Claude Code expands ${VAR}, so the key stays out of a file you might commit. Running headless (claude -p) or in a cloud session, where nobody can finish the OAuth sign-in? Publish with the CLI instead.

Codex (OpenAI)

On your own machine, use the CLI and sign in with OAuth — no API key needed:

codex mcp add spacesheep --url https://mcp.spacesheep.dev/mcp

Open the authorization link printed by the command, approve the browser sign-in, and wait for Successfully logged in. If the server is already configured or sign-in needs another try, run codex mcp login spacesheep.

Check the saved connection with codex mcp get spacesheep. Start a new Codex task to load its tools (reload the client if needed), then ask it to run list_spaces. This connects Codex on this machine; ChatGPT needs its own connector.

For manual configuration, remote machines, or an API-key fallback, see the Codex setup guide.

Cursor

Add to Cursor opens Cursor's install prompt with spacesheep filled in; confirm it, then sign in from Cursor's MCP settings. Or add it by hand to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):

{
  "mcpServers": {
    "spacesheep": {
      "url": "https://mcp.spacesheep.dev/mcp"
    }
  }
}

Cursor runs the OAuth sign-in, so no key is needed. Only if you must use one, add "headers": { "Authorization": "Bearer YOUR_API_KEY" } in the global file — the project file gets committed.

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "spacesheep": {
      "serverUrl": "https://mcp.spacesheep.dev/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Chrome — the page in your tab

No agent and no terminal: the spacesheep Chrome extension moves whatever you have open (a page with its images and styles, a picture, a PDF, a video, a document) to a link in one click, and files or whole folders from your computer. Click it again after an edit and the same link shows the new version.

Terminal and CI — the spacesheep CLI

No agent needed. The CLI is an open-source MCP client (github.com/micmmakarov/spacesheep-cli) that publishes a folder with an index.html, or a single HTML file:

npx spacesheep login          # sign in through the browser once
npx spacesheep deploy ./dist  # prints the URL; run again to publish a new version

It reaches every MCP tool, not only deploy: npx spacesheep delete <space> deletes one of your spaces, npx spacesheep tools lists the rest, and npx spacesheep call <tool> key=value runs any of them.

On a machine that can't open a browser — a lab box, a server, a shared workstation — create a key at Settings → API keys and paste the line it gives you on each machine. Every machine gets its own key, named after its hostname (add a name after the key to choose one) and revocable on its own in that list:

npx -y spacesheep@latest connect ss_…            # key named after the hostname
npx -y spacesheep@latest connect ss_… bench-03    # or name it yourself

Or skip the stored login and hand it the key as an environment variable — every command reads SPACESHEEP_KEY first:

export SPACESHEEP_KEY=ss_…
npx -y spacesheep@latest deploy ./dist

For agents that can't finish an MCP sign-in — a non-interactive claude -p run, CI, a Claude Code cloud session — this is the way to publish: MCP shows “needs authentication” there, and the CLI talks to the same server with the key. In a cloud session, set SPACESHEEP_KEY=ss_… under the environment’s variables and allow spacesheep.dev and mcp.spacesheep.dev under its network access; the setup guide has the details. A deploy that warns the page was auto-anchored (no data-ss-id) needs nothing for a game, an app or a one-off page.

To deploy automatically on every push, add an API key from settings to the repo as the SPACESHEEP_KEY secret and use the GitHub Action:

- uses: actions/checkout@v4
- uses: micmmakarov/spacesheep-cli@v1
  with:
    dir: dist
    key: ${{ secrets.SPACESHEEP_KEY }}

MCP tools

The ones you'll reach for first. The server has 123 — live updates, screenshots and design review, memory, teams, settings — all listed in the docs.

deployUpload files as a static site or Worker app. Pass access: { visibility, emails[] } (visibility: private / members / signed_in / public — what each means) for sharing. Worker mode is invite-only for now; use the built-in records API for shared data.
editChange a word or a block of a published space without sending the whole page again.
list_spacesList all your deployed spaces.
read_spaceRead deployed files. Accepts a URL or UUID.
share_spaceGrant access to others by email or @username — they can edit unless you pass role: "view".
delete_spaceRemove a space and its files.
get_spaceView metadata and access list.
screenshotSee the published page as a reader does, on a desktop or a phone.
list_commentsRead viewer feedback on a space.
add_commentReply as Claude. Also react_to_comment, resolve_comment.
download_pdfExport a space as a PDF — a short-lived download link for the current version.
Was this page helpful?