Launch any GitHub repository as an AI-powered development environment instantly using Cloudflare Sandbox and OpenCode with Claude Opus 4.5.
- Instant Environments: Visit
https://cloudx.sh/github.com/owner/repoto launch any public repository - Claude Opus 4.5: Powered by Anthropic's most capable model for intelligent code assistance
- OpenCode Integration: Full-featured AI development environment with terminal, editor, and chat
- Live Preview: Get a public URL to your running development environment instantly
- Edge-Powered: Built on Cloudflare's global network for fast, secure execution
Just visit any URL in this format:
https://cloudx.sh/github.com/owner/repo
For example:
https://cloudx.sh/github.com/facebook/reacthttps://cloudx.sh/github.com/vercel/next.jshttps://cloudx.sh/github.com/denoland/deno
- URL Interception: Visit
/github.com/owner/repoto trigger environment creation - Repository Cloning: The repo is cloned into a Cloudflare Sandbox container
- OpenCode Launch: OpenCode server starts with Claude Opus 4.5 as the AI backend
- Live Access: Get a URL to access the full OpenCode web IDE with your repository
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ User Request │────▶│ Cloudflare │────▶│ Cloudflare │
│ /github.com/ │ │ Worker │ │ Sandbox │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ OpenCode │
│ + Claude 4.5 │
└─────────────────┘
- Bun or Node.js 18+
- Docker Desktop (for local development)
- Cloudflare account
- Anthropic API key
# Clone the repository
git clone https://github.com/danielbodnar/cloudx.sh.git
cd cloudx.sh
# Install dependencies
bun install
# or: npm install
# Set up wrangler (Cloudflare CLI)
bunx wrangler login- Copy the environment template:
cp .dev.vars.example .dev.vars- Add your Anthropic API key to
.dev.vars:
ANTHROPIC_API_KEY=your-api-key-here
- Create a KV namespace:
bunx wrangler kv:namespace create CACHE
bunx wrangler kv:namespace create CACHE --preview- Update
wrangler.jsoncwith your KV namespace IDs
# Start local development server
bun run devVisit http://localhost:8787/github.com/owner/repo to test.
# Set the Anthropic API key as a secret
bunx wrangler secret put ANTHROPIC_API_KEY
# Deploy to Cloudflare
bun run deployNote: Container provisioning may take 2-3 minutes after initial deployment.
| Endpoint | Method | Description |
|---|---|---|
/github.com/:owner/:repo |
GET | Launch OpenCode environment for a repository |
/api/task |
POST | Execute a task using Claude Opus 4.5 |
/api/status/:sessionId |
GET | Get session status and preview URL |
/health |
GET | Health check |
curl -X POST https://cloudx.sh/api/task \
-H "Content-Type: application/json" \
-d '{
"sessionId": "your-session-id",
"task": "Add a new endpoint to handle user authentication"
}'cloudx-sh/
├── src/
│ └── index.ts # Main worker with OpenCode integration
├── Dockerfile # Sandbox container with OpenCode CLI
├── wrangler.jsonc # Cloudflare configuration
├── .dev.vars.example # Environment template
├── package.json
└── tsconfig.json
The sandbox container includes:
- Cloudflare Sandbox base image
- OpenCode CLI (latest)
- Node.js + npm, pnpm, yarn, bun
- Python 3 + pip, poetry, uv
- TypeScript, tsx
| Variable | Description | Required |
|---|---|---|
ANTHROPIC_API_KEY |
Anthropic API key for Claude Opus 4.5 | Yes |
ENVIRONMENT |
Deployment environment | No |
- Public repos only: GitHub authentication not yet implemented
- Session timeout: Sandbox sleeps after 30 minutes of inactivity
- API key required: Anthropic API key needed for Claude Opus 4.5
The service is available on multiple domains:
| Domain | Status |
|---|---|
| cloudx.sh | Primary |
| vmspawn.sh | Active |
| vmspawn.dev | Active |
| nspawn.sh | Active |
| nspawn.dev | Active |
Common Issues
- "Container is not enabled": Verify
wrangler.jsonccontainers config matches the durable_objects binding - "IMAGE_REGISTRY_NOT_CONFIGURED": Use
./Dockerfilepath, not external registry URLs - Container timeout: First container deploy may take 2-3 minutes to provision
- Session not found: Sessions expire after 2 hours (KV TTL)
- Status stuck on "initializing": Check worker logs in Cloudflare dashboard
- OpenCode not loading: Verify the Anthropic API key is set correctly
- Docker required: Local development requires Docker Desktop running
- Port conflicts: Default port is 8787; change with
--portflag
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Commit your changes:
git commit -m 'Add my feature' - Push to the branch:
git push origin feature/my-feature - Open a Pull Request
GPL-3.0 - See LICENSE for details.
- Cloudflare Sandbox SDK - Secure container execution
- OpenCode - AI-powered development environment
- Anthropic Claude - Advanced AI model

