Cloude is the Claude Agent SDK packaged as a one-click Railway deploy. You get a cloud-native agent with a powerful API, so you can build anything you would with Claude Code, but natively in the...
Overview
Cloude is the Claude Agent SDK packaged as a one-click Railway deploy. You get a cloud-native agent with a powerful API, so you can build anything you would with Claude Code, but natively in the cloud. Instead of working on files on your computer, the agent reads and writes files on its own hard drive in the cloud (the Railway volume). The included chat UI is one example app: enter your app API URL and key, then start working with the agent. You can build many other apps on top of the same API, and the agent can even build those apps for you and host them in its own workspace. 1) Click the deploy button above. 2) Set these environment variables: - OPENROUTER_API_KEY (recommended) — defaults the provider to OpenRouter - API_KEY — your app auth key (any strong random string) - ANTHROPIC_API_KEY (optional) — only if you want Anthropic directly 3) In Railway, generate a public domain for the service. See this Loom for instructions. 4) Open the chat UI: - https://your-app-name.up.
README
Cloude ☁️ Agent
Cloude is the Claude Agent SDK packaged as a one-click Railway deploy. You get a cloud-native agent with a powerful API, so you can build anything you would with Claude Code, but natively in the cloud.
Instead of working on files on your computer, the agent reads and writes files on its own hard drive in the cloud (the Railway volume). The included chat UI is one example app: enter your app API URL and key, then start working with the agent. You can build many other apps on top of the same API, and the agent can even build those apps for you and host them in its own workspace.
Quick start (template deploy)
- Click the deploy button above.
- Set these environment variables:
OPENROUTER_API_KEY(recommended) — defaults the provider to OpenRouterAPI_KEY— your app auth key (any strong random string)ANTHROPIC_API_KEY(optional) — only if you want Anthropic directly
- In Railway, generate a public domain for the service. See this Loom for instructions.
- Open the chat UI:
https://your-app-name.up.railway.app/chat.html
- Click Settings (gear icon) and enter:
- API URL:
https://your-app-name.up.railway.app - API Key: the
API_KEYyou set above
- API URL:
You are ready to chat and use the agent.
What you can build
- A custom chat UI or inbox that talks to the agent
- Webhook-driven automation (forms, transcripts, CRM, etc.)
- File-based workflows that read/write the agent’s cloud workspace
- Agent-built apps hosted in its own workspace or published from
/artifacts
How the cloud workspace works
- The agent works inside
/app/workspace(persistent Railway volume). - Skills and commands live under
/app/workspace/.claude. - Files placed in
/app/workspace/artifactsare publicly served at/artifacts/{path}.
API overview
All API calls require X-API-Key: unless noted. /webhook also accepts ?api_key= for clients that can’t set headers.
Public endpoints (no API key):
GET /health— health checkGET /chat.html— chat UIGET /— API infoGET /artifacts/{path}— serve public filesPOST /realtime— OpenAI realtime webhook (validated viaOPENAI_WEBHOOK_SECRET)
Core agent endpoints:
POST /chat— non-streaming chat (supportscommandfor slash command wrapper)POST /chat/stream— streaming chat (SSE, supportscommand)POST /chat/interrupt— interrupt an active streaming sessionGET /models— list available models and server defaultsPOST /webhook— map external payloads to chat requests
Workspace endpoints:
GET /workspace— list files in the workspaceGET /workspace/{path}— download file from workspacePUT /workspace/{path}— create/update a text fileDELETE /workspace/{path}— delete a file or directoryPOST /workspace/move— move/rename a file or directory
Artifacts:
POST /artifacts/upload— upload public filesGET /artifacts/{path}— serve public files (no auth)
Skills:
GET /skills— list skillsGET /skills/{id}— get skill content and file listingPOST /skills— create/update a simple skill (SKILL.md only)POST /skills/upload— upload a full skill zipGET /skills/{id}/download— download a skill zipDELETE /skills/{id}— delete a skill
Commands and prompts:
GET /commands— list commandsGET /commands/{id}— get a commandPOST /commands— create/update a commandDELETE /commands/{id}— delete a commandGET /prompts— list prompt overrides
Sessions and debug:
GET /sessions— list sessions (newest first)GET /sessions/{id}— get session content (?raw=truefor JSONL)POST /debug/permissions— inspect effective settings + permission resolutionGET /debug/permission-log— fetch recent permission decisions
Model defaults and providers
OPENROUTER_API_KEYmakes OpenRouter the default provider.ANTHROPIC_API_KEYis optional for direct Anthropic use.- Default model aliases can be set via env vars or in
.claude/settings.json(no restart needed).
Example .claude/settings.json override:
{
"env": {
"ANTHROPIC_DEFAULT_OPUS_MODEL": "openai/gpt-5.1-codex",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "z-ai/glm-4.7",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "openai/gpt-5.1-codex-mini"
}
}
Local development (optional)
python -m venv .venv && source .venv/bin/activatepip install -r requirements.txtexport API_KEY="$(openssl rand -hex 32)"- Start Redis (required for sessions):
- Homebrew:
brew install redis && brew services start redis - Docker:
docker run -d --name clawed-redis -p 6379:6379 redis:7
- Homebrew:
uvicorn main:app --reload- Open
chat.htmland set:- API URL:
http://127.0.0.1:8000 - API Key: the key you exported in step 3
- API URL:
Notable files
main.py— FastAPI app and endpointsagent_manager.py— chat logic, streaming, skills, workspace helperschat.html— single-page UIentrypoint.sh— volume seeding for.claudeand workspace.claude/settings.json— permissions and shared config
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add chrisboden/cloude-agent