{"id":49594069,"url":"https://github.com/swair/druidclaw","last_synced_at":"2026-05-04T03:06:09.028Z","repository":{"id":346148943,"uuid":"1183275091","full_name":"Swair/DruidClaw","owner":"Swair","description":"DruidClaw is a multi-functional session management and IM bot integration platform built on Claude Code. ","archived":false,"fork":false,"pushed_at":"2026-03-22T13:38:40.000Z","size":692,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-23T04:57:12.438Z","etag":null,"topics":["claude","claude-claw","claude-code","openclaw"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Swair.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":null,"dco":null,"cla":null}},"created_at":"2026-03-16T12:55:46.000Z","updated_at":"2026-03-22T13:56:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Swair/DruidClaw","commit_stats":null,"previous_names":["swair/druidclaw"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Swair/DruidClaw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Swair%2FDruidClaw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Swair%2FDruidClaw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Swair%2FDruidClaw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Swair%2FDruidClaw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Swair","download_url":"https://codeload.github.com/Swair/DruidClaw/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Swair%2FDruidClaw/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32592722,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T22:12:39.696Z","status":"online","status_checked_at":"2026-05-04T02:00:06.625Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["claude","claude-claw","claude-code","openclaw"],"created_at":"2026-05-04T03:06:03.370Z","updated_at":"2026-05-04T03:06:09.016Z","avatar_url":"https://github.com/Swair.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DruidClaw\n\n![DruidClaw Logo](druidclaw/web/static/logo.png)\n\nDruidClaw 是一个基于 Claude Code 的多功能会话管理和 IM 机器人集成平台。\n\n## 功能特性\n\n- **Claude Code 会话管理**: 在浏览器中管理多个 Claude Code 会话\n- **本地终端**: 基于 PTY 的本地 Shell 终端，支持会话保持\n- **SSH 远程终端**: 通过 Paramiko 连接远程 SSH 服务器，支持会话保持\n- **IM 机器人集成**: 支持飞书、钉钉、Telegram、QQ、企业微信机器人\n- **会话持久化**: 页面刷新后自动恢复终端会话，后端进程保持 60 秒\n- **多服务器管理**: 支持添加多个服务器连接\n- **Skills 市场**: 扩展 Claude Code 功能\n\n## 快速开始\n\n### 安装\n\n```bash\n# 1. 安装依赖\npip install -r requirements.txt\n\n# 2. 安装 Node.js (如未安装)\n# Ubuntu/Debian\ncurl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -\nsudo apt-get install -y nodejs\n\n# macOS\nbrew install node\n\n# 3. 安装 Claude Code\nnpx @anthropic-ai/claude-code\n\n# 或使用安装脚本\n./install.sh\n```\n\n### 启动服务\n\n```bash\n# 默认启动 (绑定 0.0.0.0:19123)\n./start.sh\n\n# 自定义配置\n./start.sh --host 0.0.0.0 --port 19123 --passwd your_password\n```\n\n### 访问 Web 界面\n\n打开浏览器访问 `http://localhost:19123`\n\n![Web Demo](web_demo.png)\n\n## 目录结构\n\n```\nDruidClaw/\n├── druidclaw/          # 主程序包\n│   ├── core/          # 核心功能 (会话管理、守护进程)\n│   ├── web/           # Web 界面 (FastAPI)\n│   └── imbot/         # IM 机器人 (飞书、钉钉等)\n├── doc/               # 文档\n├── tests/             # 测试用例\n├── docker/            # Docker 配置\n├── requirements.txt   # Python 依赖\n├── start.sh          # 启动脚本\n└── install.sh        # 安装脚本\n```\n\n## 配置\n\n### 环境变量\n\n| 变量名 | 默认值 | 说明 |\n|--------|--------|------|\n| `DRUIDCLAW_TOKEN` | `dc` | Web 访问密码 |\n| `DRUIDCLAW_RUN_DIR` | `./run` | 运行时数据目录（相对路径） |\n| `DRUIDCLAW_WEB_HOST` | `0.0.0.0` | 绑定地址 |\n| `DRUIDCLAW_WEB_PORT` | `19123` | 监听端口 |\n\n### Claude Code 配置\n\n在 Web 界面点击 \"ClaudeCode 安装\" 按钮配置：\n- Anthropic API Key\n- API Base URL (可选，用于代理)\n- 模型名称 (如 `claude-sonnet-4-5`)\n\n## 终端会话\n\n### 本地终端\n- 基于 PTY 的本地 Shell\n- 支持自定义 Shell (bash/zsh 等)\n- 页面刷新后自动重连 (60 秒内)\n\n### SSH 远程终端\n- 支持密码/密钥认证\n- 支持保存连接历史\n- 页面刷新后自动重连 (60 秒内)\n\n## API 端点\n\n| 端点 | 方法 | 说明 |\n|------|------|------|\n| `/api/cards` | GET | 获取卡片列表 |\n| `/api/sessions` | GET | 获取会话列表 |\n| `/api/sessions` | POST | 创建新会话 |\n| `/api/ssh/history` | GET | 获取 SSH 历史 |\n| `/api/feishu/config` | GET/POST | 飞书配置 |\n| `/api/install/config` | GET/POST | 安装配置 |\n\n## 技术栈\n\n- **后端**: Python 3, FastAPI, Paramiko\n- **前端**: 原生 JavaScript, xterm.js\n- **终端**: PTY (本地), SSH (远程)\n\n## License\n\nMIT\n\n## 测试\n\n运行所有测试：\n\n```bash\nsource venv/bin/activate\npip install pytest httpx\npytest -v\n```\n\n详见 [doc/testing.md](doc/testing.md)\n\n## 文档\n\n- [使用文档](doc/usage.md) - 详细的使用指南\n- [测试文档](doc/testing.md) - 测试运行和编写指南\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswair%2Fdruidclaw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswair%2Fdruidclaw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswair%2Fdruidclaw/lists"}