{"id":43842976,"url":"https://github.com/mng-dev-ai/claudex","last_synced_at":"2026-03-05T01:05:52.301Z","repository":{"id":328732023,"uuid":"1116498047","full_name":"Mng-dev-ai/claudex","owner":"Mng-dev-ai","description":"Your own Claude Code UI, sandbox, in-browser VS Code, terminal, multi-provider support (Anthropic, OpenAI, GitHub Copilot, OpenRouter), custom skills, and MCP servers.","archived":false,"fork":false,"pushed_at":"2026-02-24T11:17:30.000Z","size":3770,"stargazers_count":212,"open_issues_count":8,"forks_count":43,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-24T16:46:16.435Z","etag":null,"topics":["agent","anthropic","claude","claude-code","code-execution","fastapi","llm","python","react","sandbox","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mng-dev-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-12-15T00:46:56.000Z","updated_at":"2026-02-24T11:15:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Mng-dev-ai/claudex","commit_stats":null,"previous_names":["mng-dev-ai/claudex"],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/Mng-dev-ai/claudex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mng-dev-ai%2Fclaudex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mng-dev-ai%2Fclaudex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mng-dev-ai%2Fclaudex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mng-dev-ai%2Fclaudex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mng-dev-ai","download_url":"https://codeload.github.com/Mng-dev-ai/claudex/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mng-dev-ai%2Fclaudex/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29890653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T09:48:51.284Z","status":"ssl_error","status_checked_at":"2026-02-27T09:48:43.992Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","anthropic","claude","claude-code","code-execution","fastapi","llm","python","react","sandbox","typescript"],"created_at":"2026-02-06T05:18:17.978Z","updated_at":"2026-02-27T10:01:33.077Z","avatar_url":"https://github.com/Mng-dev-ai.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Claudex\n\nSelf-hosted Claude Code workspace with multi-provider routing, sandboxed execution, and a full web IDE.\n\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)\n[![Python 3.13](https://img.shields.io/badge/python-3.13-blue.svg)](https://www.python.org/)\n[![React 19](https://img.shields.io/badge/React-19-61DAFB.svg)](https://reactjs.org/)\n[![FastAPI](https://img.shields.io/badge/FastAPI-009688.svg)](https://fastapi.tiangolo.com/)\n[![Discord](https://img.shields.io/badge/Discord-5865F2.svg?logo=discord\u0026logoColor=white)](https://discord.gg/cp3sBgEX)\n\n## Community\n\nJoin the [Discord server](https://discord.gg/cp3sBgEX).\n\n## Why Claudex\n\n- Claude Code as the execution harness, exposed through a self-hosted web UI\n- One workflow across Anthropic, OpenAI, GitHub Copilot, OpenRouter, and custom Anthropic-compatible endpoints\n- Anthropic Bridge routing for non-Anthropic providers while preserving Claude Code behavior\n- Isolated sandbox backends (Docker, host)\n- Extension surface: MCP servers, skills, agents, slash commands, prompts, and marketplace plugins\n- Provider switching with shared working context\n\n## Core Architecture\n\n```text\nReact/Vite Frontend\n  -\u003e FastAPI Backend\n  -\u003e PostgreSQL + Redis (web/docker mode)\n  -\u003e SQLite + in-memory cache/pubsub (desktop mode)\n  -\u003e Sandbox runtime (Docker/Host)\n  -\u003e Claude Code CLI + claude-agent-sdk\n```\n\n### Claude Code harness\n\nClaudex runs chats through `claude-agent-sdk`, which drives the Claude Code CLI in the selected sandbox. This keeps Claude Code-native behavior for tools, session flow, permission modes, and MCP orchestration.\n\n### Anthropic Bridge for non-Anthropic providers\n\nFor OpenAI, OpenRouter, and Copilot providers, Claudex starts `anthropic-bridge` inside the sandbox and routes Claude Code requests through:\n\n- `ANTHROPIC_BASE_URL=http://127.0.0.1:3456`\n- provider-specific auth secrets such as `OPENROUTER_API_KEY` and `GITHUB_COPILOT_TOKEN`\n- provider-scoped model IDs like `openai/gpt-5.2-codex`, `openrouter/moonshotai/kimi-k2.5`, `copilot/gpt-5.2-codex`\n\n```text\nClaudex UI\n  -\u003e Claude Agent SDK + Claude Code CLI\n  -\u003e Anthropic-compatible request shape\n  -\u003e Anthropic Bridge (OpenAI/OpenRouter/Copilot)\n  -\u003e Target provider model\n```\n\nFor Anthropic providers, Claudex uses your Claude auth token directly. For custom providers, Claudex calls your configured Anthropic-compatible `base_url`.\n\n## Key Features\n\n- Claude Code-native chat execution through `claude-agent-sdk`\n- Anthropic Bridge provider routing with provider-scoped models (`openai/*`, `openrouter/*`, `copilot/*`)\n- Multi-sandbox runtime (Docker/Host)\n- MCP + custom skills/agents/commands + plugin marketplace\n- Checkpoint restore and chat forking from any prior message state\n- Streaming architecture with resumable SSE events and explicit cancellation\n- Built-in recurring task scheduler (in-process async, no worker service)\n\n## Quick Start (Web)\n\n### Requirements\n\n- Docker + Docker Compose\n\n### Start\n\n```bash\ngit clone https://github.com/Mng-dev-ai/claudex.git\ncd claudex\ndocker compose -p claudex-web -f docker-compose.yml up -d\n```\n\nOpen [http://localhost:3000](http://localhost:3000).\n\n### Stop and logs\n\n```bash\ndocker compose -p claudex-web -f docker-compose.yml down\ndocker compose -p claudex-web -f docker-compose.yml logs -f\n```\n\n## Desktop (macOS)\n\nDesktop mode uses Tauri with a bundled Python backend sidecar on `localhost:8081`, with local SQLite storage.\n\n### Download prebuilt app\n\n- Apple Silicon DMG: [Latest Release](https://github.com/Mng-dev-ai/claudex/releases/latest)\n\n### How it works\n\nWhen running in desktop mode:\n\n- Tauri hosts the frontend in a native macOS window\n- the sidecar backend process serves the API on `8081`\n- desktop uses local SQLite plus in-memory cache/pubsub (no Postgres/Redis dependency required for desktop mode)\n\n```text\nTauri Desktop App\n  -\u003e React frontend (.env.desktop)\n  -\u003e bundled backend sidecar (localhost:8081)\n  -\u003e local SQLite database\n```\n\n### Build and run from source\n\nRequirements:\n\n- Node.js\n- Rust\n\nDev workflow:\n\n```bash\ncd frontend\nnpm install\nnpm run desktop:dev\n```\n\nBuild (unsigned dev):\n\n```bash\ncd frontend\nnpm run desktop:build\n```\n\nApp bundle output:\n\n- `frontend/src-tauri/target/release/bundle/macos/Claudex.app`\n\nDesktop troubleshooting:\n\n- Backend unavailable: wait for sidecar startup to finish\n- Database errors: verify local app data directory permissions\n- Port conflict: free port `8081` if already in use\n\n## Provider Setup\n\nConfigure providers in `Settings -\u003e Providers`.\n\n- `anthropic`: paste token from `claude setup-token`\n- `openai`: authenticate with OpenAI device flow in UI\n- `copilot`: authenticate with GitHub device flow in UI\n- `openrouter`: add OpenRouter API key and model IDs\n- `custom`: set Anthropic-compatible `base_url`, token, and model IDs\n\n### Model examples\n\n- OpenAI/Codex: `gpt-5.2-codex`, `gpt-5.2`, `gpt-5.3-codex`\n- OpenRouter catalog examples: `moonshotai/kimi-k2.5`, `minimax/minimax-m2.1`, `google/gemini-3-pro-preview`\n- Custom gateways: models like `GLM-5`, `M2.5`, or private org-specific endpoints (depends on your backend compatibility)\n\n## Shared Working Context\n\nSwitching providers does not require a new workflow:\n\n- Same sandbox filesystem/workdir\n- Same `.claude` resources (skills, agents, commands)\n- Same MCP configuration in Claudex\n- Same chat-level execution flow\n\nThis is the main value of using Claude Code as the harness while changing inference providers behind Anthropic Bridge.\n\n## Services and Ports (Web)\n\n- Frontend: `3000`\n- Backend API: `8080`\n- PostgreSQL: `5432`\n- Redis: `6379`\n- VNC: `5900`\n- VNC Web: `6080`\n- OpenVSCode server: `8765`\n\n## API and Admin\n\n- API docs: [http://localhost:8080/api/v1/docs](http://localhost:8080/api/v1/docs)\n- Admin panel: [http://localhost:8080/admin](http://localhost:8080/admin)\n\n## Health and Ops\n\n- Liveness endpoint: `GET /health`\n- Readiness endpoint: `GET /api/v1/readyz`\n  - web mode checks database + Redis\n  - desktop mode checks database (SQLite) only\n\n## Deployment\n\n- VPS/Coolify guide: [docs/coolify-installation-guide.md](docs/coolify-installation-guide.md)\n- Production setup uses frontend at `/` and API under `/api/*`\n\n## Screenshots\n\n![Chat Interface](screenshots/chat-interface.png)\n![Agent Workflow](screenshots/agent-workflow.png)\n\n## Tech Stack\n\n- Frontend: React 19, TypeScript, Vite, TailwindCSS, Zustand, React Query\n- Backend: FastAPI, SQLAlchemy, Redis, PostgreSQL/SQLite, Granian\n- Runtime: Claude Code CLI, claude-agent-sdk, anthropic-bridge\n\n## License\n\nApache 2.0. See [LICENSE](LICENSE).\n\n## Contributing\n\nContributions are welcome. Please open an issue first to discuss what you would like to change, then submit a pull request.\n\n## References\n\n- Anthropic Claude Code SDK: [docs.anthropic.com/s/claude-code-sdk](https://docs.anthropic.com/s/claude-code-sdk)\n- Anthropic Bridge package: [pypi.org/project/anthropic-bridge](https://pypi.org/project/anthropic-bridge/)\n- OpenAI Codex CLI sign-in: [help.openai.com/en/articles/11381614](https://help.openai.com/en/articles/11381614)\n- OpenRouter API keys: [openrouter.ai/docs/api-keys](https://openrouter.ai/docs/api-keys)\n- GitHub Copilot plans: [github.com/features/copilot/plans](https://github.com/features/copilot/plans)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmng-dev-ai%2Fclaudex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmng-dev-ai%2Fclaudex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmng-dev-ai%2Fclaudex/lists"}