Self-hosted web console for the Claude Code CLI: multi-machine Hub + PWA, drives the stream-json subprocess.
Project description
Vibing everything
自托管的 Claude Code 远程控制台 (项目仓库名 ClaudeCodeRemote / CCR, 品牌
"Vibing everything"). 用 Claude CLI 的 stream-json 协议托管会话, 通过
Web/PWA 提供完整的 claude.ai/code 体验 — 聊天、工具批准、diff、推送, 跨
设备同步, 全部跑在自己机器上.
现状 (2026-05)
可用功能:
- 多机 Hub 聚合: 任意台机器跑 CCR server, 反向 WS 接到一个 Hub, 一个 PWA 面板看所有机器上的 session, 跨机切换无感知
- 完整聊天 UI: 消息流 + Markdown / 代码高亮 + 工具调用卡 + diff 渲染
- 权限审批卡 + 自定义 askuser 问答卡
- PWA: 加到主屏当 app 用; 自适应 iPhone 刘海; 边缘右滑接管系统手势
- OAuth 登录: Google / GitHub / Gitee (已配); Feishu / DingTalk (代码 现成, 配 client id 即用)
- 多 LLM 后端: 同一台 CCR server 可对接 Anthropic / DeepSeek / Kimi / Qwen 等 (通过 ANTHROPIC_BASE_URL + 各家 OpenAI-compatible 网关)
- 自定义 MCP ask_user: 绕过 SDK builtin AskUserQuestion 的硬编码极短
timeout, 用户答题想多久就多久 (见
claude_code_remote/mcp/)
架构
PWA (vibe.qpqi.group)
↓ HTTPS + WSS
Hub (FastAPI, 聚合 + auth + forward)
↓ 反向 WS tunnel (servers 主动接出)
CCR server × N (每台机器一份, 跑 claude CLI subprocess)
↓ stdio stream-json
claude CLI (Anthropic / 第三方 LLM 网关)
部署
- 自己机器跑 server: 见 PWA Help 页 (登录后顶栏齿轮旁) 的 quick path
- Hub 容器化: 见
deploy/docker-compose.hub.yml - 单机本地 (无 Hub): 见
deploy/README.md
开发约定
新会话进来先读 CLAUDE.md (项目说明 + spec-first 工作流) 和 REQUIREMENTS.md (2026-05-12 设计稿, 目标 + 技术路线 仍然准确).
可视化 SPEC 在 ~/SynologyDrive/Claude/ccr-spec.html (本地路径, 用户私有
工作文件; 每次 UI 改动应同步 SVG mockup + 行为表).
仓库
源: https://github.com/hwaipy/ClaudeCodeRemote
app.py 是 2026-05 前的 Flask + tmux 启动器基线, 已不使用, 保留作
参考 (UI 配色 / systemd 习惯), 后续会清掉.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file claude_code_remote-1.0.1.tar.gz.
File metadata
- Download URL: claude_code_remote-1.0.1.tar.gz
- Upload date:
- Size: 2.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c99d1b104773f1908f24eadde936188460b11f19f543c1e11af5fa7f72e3529
|
|
| MD5 |
62d7f4bee691411f2392168cce3a38b9
|
|
| BLAKE2b-256 |
287b51ab16aad67819d096a45b76c219d00e38f6d42928a7df46429754018acf
|
Provenance
The following attestation bundles were made for claude_code_remote-1.0.1.tar.gz:
Publisher:
publish.yml on hwaipy/ClaudeCodeRemote
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
claude_code_remote-1.0.1.tar.gz -
Subject digest:
2c99d1b104773f1908f24eadde936188460b11f19f543c1e11af5fa7f72e3529 - Sigstore transparency entry: 1633001102
- Sigstore integration time:
-
Permalink:
hwaipy/ClaudeCodeRemote@5831012dc776136565c510dc65a00b1274aa5fb2 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/hwaipy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5831012dc776136565c510dc65a00b1274aa5fb2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file claude_code_remote-1.0.1-py3-none-any.whl.
File metadata
- Download URL: claude_code_remote-1.0.1-py3-none-any.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b803fe76e95388e38b6c867b2b256c46c9cdd05003418ef8f1b018e1cfbb2507
|
|
| MD5 |
23adc1ca5f39a703dbabace3e4fc9b39
|
|
| BLAKE2b-256 |
ed827ff1170014f24a177b7adf2a42abdb1103f1e8c7c8f8c40c3f2c5c296857
|
Provenance
The following attestation bundles were made for claude_code_remote-1.0.1-py3-none-any.whl:
Publisher:
publish.yml on hwaipy/ClaudeCodeRemote
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
claude_code_remote-1.0.1-py3-none-any.whl -
Subject digest:
b803fe76e95388e38b6c867b2b256c46c9cdd05003418ef8f1b018e1cfbb2507 - Sigstore transparency entry: 1633001111
- Sigstore integration time:
-
Permalink:
hwaipy/ClaudeCodeRemote@5831012dc776136565c510dc65a00b1274aa5fb2 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/hwaipy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5831012dc776136565c510dc65a00b1274aa5fb2 -
Trigger Event:
push
-
Statement type: