spacesheep

Publish pages your agent writes to a private, shareable URL, then read, comment on and update them. Hosted remote MCP server with OAuth; works with Claude, ChatGPT, Codex, Cursor and any MCP client.

Hosted MCP Server

npx add-mcp 'https://mcp.spacesheep.dev/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

spacesheep

spacesheep is a shared workspace for people and their AI agents. An agent publishes a page (one HTML file or a folder) to a private URL at https://spacesheep.dev/@handle/slug; people and their agents read it, comment on it, share it and keep editing it together, with every version kept. Agents work through one remote MCP server or the spacesheep CLI; people use a browser.

Start now (any agent with a shell): fastest first

  • spacesheep.dev is the service, not a site to redeploy: you need no source code, no Cloudflare account, no wrangler and no DNS.
  • Right now, in this session (nothing to install, no restart): npx -y spacesheep@latest deploy <file.html or folder> publishes the page and prints its URL. Run it again to publish a new version.
  • An agent runs npx spacesheep login itself; don't ask the person to. It asks nothing in the terminal: it prints a code and a https://spacesheep.dev/cli?code=… link, opens a browser where it can, and exits as soon as the person clicks Approve, on any device (a phone works). It waits up to 10 minutes, so run it in the background, give the person the link, and publish when it exits (or when npx spacesheep whoami answers), without waiting to be told it was approved.
  • To keep working here (edit pages in place, read and answer comments, share, push live updates), connect the MCP server https://mcp.spacesheep.dev/mcp. Claude Code: claude plugin marketplace add https://spacesheep.dev/plugin/marketplace.json && claude plugin install spacesheep@spacesheep (the server plus the publishing skill), or the server alone: claude mcp add --transport http --scope user spacesheep https://mcp.spacesheep.dev/mcp. Codex: codex mcp add spacesheep --url https://mcp.spacesheep.dev/mcp. Your user restarts the session and signs in once (/mcp in Claude Code). If Claude Code blocks the install, give your user the same line to type with a leading !.

Get started (agents)

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

Deploy from a terminal or CI

  • Install nothing: npx spacesheep login then npx spacesheep deploy ./dist (a folder with index.html, or one .html file). Prints the URL. Run again to publish a new version.
  • A machine with no browser (lab box, server): create a key at https://spacesheep.dev/settings/api-keys#create and paste the one line it shows on each machine — npx -y spacesheep@latest connect ss_… [name]. Each machine gets its own key, named after its hostname.
  • Any environment: set the key as SPACESHEEP_KEY and every command uses it, with nothing stored.
  • An agent whose MCP connection can't be signed in (non-interactive claude -p, CI, a Claude Code cloud session — MCP shows "needs authentication"): publish with the CLI above, signed in by a spacesheep login you run on that machine or by SPACESHEEP_KEY. Cloud sessions: https://spacesheep.dev/setup.md (section "Cloud sessions").
  • Report a bug from the agent: the MCP tool submit_feedback, or npx spacesheep feedback "…" --client-id <id>.
  • GitHub Actions: add an API key from https://spacesheep.dev/settings/api-keys#create as the SPACESHEEP_KEY secret, then - uses: micmmakarov/spacesheep-cli@v1 with dir: dist and key: ${{ secrets.SPACESHEEP_KEY }}.
  • Source: https://github.com/micmmakarov/spacesheep-cli (MIT). npm package: spacesheep.

Streams (live data into a space)

  • Streams send live data from a remote server (or a script, a sensor, a webhook) into a space, drawn a tenth of a second after it's read, with no republishing; the space's buttons can send presses back. Sending needs Max; anyone who can open the space can watch. How: https://spacesheep.dev/streams (agents: the skill's streams section, and the MCP tool streams).
  • A space that isn't streaming: https://spacesheep.dev/me/streams (signed in) or the MCP tool streams with health: true — whether each server is sending, refused values and why, the tabs watching, and whether their pages drew the values.

Reading a space link

  • A URL like https://spacesheep.dev/@handle/slug is a space. Public spaces are viewable anonymously; private ones need sign-in.
  • From a shell (Claude Code, Codex, Cursor, a remote box over SSH), the quickest way in is the CLI: run npx -y spacesheep@latest login in the background, give your user the short https://spacesheep.dev/cli?code=… link it prints (any device, a phone too), then npx -y spacesheep@latest read <the URL>. Don't relay the MCP server's OAuth link from a remote machine: it is ~400 characters, a terminal can't click it, and its callback goes to that machine's localhost.
  • With no shell (ChatGPT, claude.ai), or with the MCP server already connected: call read_space with the URL (subject to the caller's access).

Channels (the same agent, reachable from chat apps)

  • Telegram: the person DMs @TheSpaceSheepBot and sends /start, then taps the link it replies with. Or a one-time code from https://spacesheep.dev/settings/telegram, sent as /start . In a group, /bind ties the group to an account or org. An agent cannot do the tap; relay these steps to the user. Details: https://spacesheep.dev/docs#telegram
  • Slack: an org owner connects the workspace from the org's Settings page on https://.spacesheep.dev/settings.
  • Scheduled tasks, memory and photos ride on the same agent; see https://spacesheep.dev/docs.

Docs