{"id":50387020,"url":"https://github.com/bendusy/roostery","last_synced_at":"2026-05-30T15:30:48.305Z","repository":{"id":357975783,"uuid":"1239376711","full_name":"bendusy/roostery","owner":"bendusy","description":"🪺 A roost for your agent flock — vendor-neutral agent broker, Feishu-native. 飞书原生的多 Agent 中立接入器。","archived":false,"fork":false,"pushed_at":"2026-05-15T05:20:27.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-15T05:43:12.964Z","etag":null,"topics":["agent","agent-broker","agent-orchestration","claude-code","cli","feishu","lark","local-first","mcp","multi-agent","openclaw","python","self-hosted","vendor-neutral"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bendusy.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":null,"dco":null,"cla":null}},"created_at":"2026-05-15T03:15:08.000Z","updated_at":"2026-05-15T05:20:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/bendusy/roostery","commit_stats":null,"previous_names":["bendusy/roostery"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/bendusy/roostery","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bendusy%2Froostery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bendusy%2Froostery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bendusy%2Froostery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bendusy%2Froostery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bendusy","download_url":"https://codeload.github.com/bendusy/roostery/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bendusy%2Froostery/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33698654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"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":["agent","agent-broker","agent-orchestration","claude-code","cli","feishu","lark","local-first","mcp","multi-agent","openclaw","python","self-hosted","vendor-neutral"],"created_at":"2026-05-30T15:30:47.669Z","updated_at":"2026-05-30T15:30:48.295Z","avatar_url":"https://github.com/bendusy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🪺 Roostery\n\n**手机也能跟进电脑上的 agent。** 把多设备 vibecoding 的 agent 工作过程长在飞书里——任务卡 + 步骤流 + 群消息 thread 跨设备同步，不必 SSH 回桌面机看终端。数据全程留在你自己的飞书租户，不经第三方 dashboard。\n\n\u003e A roost for your agent flock — vendor-neutral, Feishu-native agent broker.\n\n---\n\n## 状态\n\n🎯 **v0.1.0 已发**（2026-05-18）—— Rust 可用形态达成，Phase 5 minimal-loop 闭环：CC headless / 任意 agent 都能在飞书出 task 卡和 step stream。\n\n- 活跃实现：`crates/roostery/`（Rust workspace）\n- Python baseline：`legacy/python/` 仅作 reference，不再维护，Phase 7 删除\n- 完整 Rust 重写路线图（21 feature / 7 阶段）：`.codestable/roadmap/rust-rewrite/`\n- 版本策略 / B 类自托管定位：`.codestable/brainstorms/v0.x-direction/`\n\n**前提**：飞书租户（能创建任务和群）+ 配好的 [`lark-cli`](https://github.com/larksuite/lark-cli)（≥ 1.0.28）+ 至少一个本地 agent runtime（Claude Code / Codex / Gemini / 自定义皆可）。\n\n## Quickstart\n\n```bash\n# 1. 装 roostery（0.1.x 暂不上 crates.io，从 git 装）\ncargo install --git https://github.com/bendusy/roostery --tag v0.1.0 --bin roostery --bin shim\n\n# 2. 装机：smoke gate / shim 安装 / agent hook 注入一条龙\nroostery init --real-lark-cli \"$(realpath \"$(which lark-cli)\")\"\n\n# 3. 任意 agent / 脚本 / CI 主动推一条进度到飞书\necho \"build green, tests passing\" | \\\n  roostery bot push --agent ci --session run-1 --summary-stdin --json\n```\n\n跑完手机打开飞书 app，应能在默认 task 挂载点看到这条记录的 task 卡。配置 agent runtime（CC / Codex / Gemini）的 SessionEnd hook 后，agent 跑完任务会自动 fire `roostery bot stop-hook`，task 卡 + IM thread 自动出现。\n\n## 核心定位\n\n- **vendor-neutral**：任意 agent runtime（CC / Codex / Gemini / 自定义 Python）/ 任意 LLM provider 皆可接入；不造 runtime，只做中立接入\n- **Feishu-native**：飞书 Task / IM / Docs / Base 作为天然呈现层 + 数据底，复用云协作面已做好的多设备同步层\n- **local-first**：本地 daemon 主导调度，所有 state 在 `~/.roostery/`（可重放审计 cache，不是 source of truth）\n- **developer-priority**：code-defined workflow（yaml / Rust），非 GUI 拖拽\n\n## 跟谁错位\n\n| 类别 | 已有产品 | Roostery |\n|---|---|---|\n| 通用 agent dashboard | builderz-labs/mission-control | 飞书原生 UI 复用 |\n| Canvas 多线程 agent | NoteLoom / Flowith / jaaz | 数据不假于人，飞书租户内闭环 |\n| Agent runtime | OpenClaw / Claude Code / Codex / Cursor | 不造 runtime，做中立接入 |\n| 商业 SaaS | AgentCenter / Manus | 自托管 + 数据主权 |\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbendusy%2Froostery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbendusy%2Froostery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbendusy%2Froostery/lists"}