Deploy publication-quality documents from 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.
npx spacesheep-skill
or
curl -fsSL https://spacesheep.app/install.sh | bash
Installs the /sheep skill and configures the MCP server for Claude Code. Add -g for global install. For other clients, see MCP setup below.
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 manual setup? Create a key on the dashboard and see the config below.
Reload Claude Code, Codex, Cursor, or whichever client you use so the MCP connection is picked up.
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 D1
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.
Need server-side logic, API endpoints, or a shared database? Include a worker.js file and spacesheep deploys it as a live Cloudflare Worker with D1 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.D1.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 D1 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")).
The installer configures Claude Code automatically. For other clients, add the spacesheep MCP server manually:
Add to .mcp.json (project) or ~/.claude/settings.json (global):
{
"mcpServers": {
"spacesheep": {
"type": "url",
"url": "https://mcp.spacesheep.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Add to ~/.codex/config.toml (or .codex/config.toml per project):
[mcp_servers.spacesheep]
url = "https://mcp.spacesheep.dev/mcp"
bearer_token_env_var = "SPACESHEEP_API_KEY"
Then set the env var: export SPACESHEEP_API_KEY=YOUR_API_KEY
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{
"mcpServers": {
"spacesheep": {
"url": "https://mcp.spacesheep.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"spacesheep": {
"serverUrl": "https://mcp.spacesheep.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
deploy | Upload files as a static site or Worker app. Pass access: { visibility, emails[] } (visibility: public / members / private) for sharing. Include worker.js for dynamic mode with D1. |
list_spaces | List all your deployed spaces. |
read_space | Read deployed files. Accepts a URL or UUID. |
share_space | Grant access to others by email. |
delete_space | Remove a space and its files. |
get_space | View metadata and access list. |
list_comments | Read viewer feedback on a space. |
add_comment | Reply as Claude. Also react_to_comment, resolve_comment. |