{"id":49885186,"url":"https://github.com/leviyuan/lodestar","last_synced_at":"2026-06-06T02:09:25.385Z","repository":{"id":352845384,"uuid":"1216798083","full_name":"leviyuan/lodestar","owner":"leviyuan","description":"一人公司最佳实践，不止是claude的飞书channel，更是你的带领数字员工的管理工具","archived":false,"fork":false,"pushed_at":"2026-05-13T03:29:21.000Z","size":10735,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-13T05:27:54.315Z","etag":null,"topics":["claude-channels","claude-code","claude-code-plugin","feishu","lark"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/leviyuan.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-04-21T08:41:39.000Z","updated_at":"2026-05-13T03:29:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/leviyuan/lodestar","commit_stats":null,"previous_names":["leviyuan/claude-feishu-channel","leviyuan/lodestar"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/leviyuan/lodestar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leviyuan%2Flodestar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leviyuan%2Flodestar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leviyuan%2Flodestar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leviyuan%2Flodestar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leviyuan","download_url":"https://codeload.github.com/leviyuan/lodestar/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leviyuan%2Flodestar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33074384,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["claude-channels","claude-code","claude-code-plugin","feishu","lark"],"created_at":"2026-05-15T18:00:37.188Z","updated_at":"2026-05-15T18:01:00.345Z","avatar_url":"https://github.com/leviyuan.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/leviyuan/lodestar/main/promo.jpg\" alt=\"夜航星 Lodestar\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n# 夜航星 (Lodestar)\n\n**在你最熟悉的飞书群里，开一段不熄灯的 Claude Code 会话。**\n\n## 项目哲学\n\nAI 不是帮手，是倍率。它放大的不是体力，是你——你的直觉、判断和品味，每一样都被乘以一个你以前不敢想的系数。最终走多远，取决于被放大的你有多强。\n\n夜航星让这件事真正发生：在你思考的地方接住想法，在你转身之后继续把它推向终点。一个群，一个项目，一段不熄灯的对话。你醒着它在听，你睡了它还在跑。\n\n## 怎么用\n\n每个飞书群对应一个 Claude 会话。**群名 = `~/` 下的项目目录名**。\n\n- 在群里发任意文字 — Claude 接管这一轮，回复以**流式打字机**实时渲染在一张飞书卡片里。\n- 思考过程、每一次工具调用都在卡片里被收纳为**可展开折叠面板**：折起来是概述，展开是详情。你随时能审阅它在做什么。\n- 需要授权的操作（执行命令、修改文件……）**就在原来那一格工具调用面板里**升级为 🔐 等审批状态，三颗按钮 `允许` / `始终允许` / `拒绝` 直接内嵌在面板里 — 不再弹独立卡片，决策结果与后续 output 串在同一条时序里。默认 `bypassPermissions`，所以这一格只在 SDK 真的拦下来时才出现。\n- **图片、文件双向互传**：用户发到群里的图/文件，Claude 通过消息里的 `[file: /abs/path]` 提示就能读；Claude 想把文件发回来，在回复任意位置写 `[[send: /abs/path]]`，标记会被剥离，文件以独立消息出现在群里。出站路径限制在该会话的工作目录、`/tmp/lodestar-*` 与 inbox 之内，`/etc`、`~/.ssh`、`~/.config` 等敏感目录被白名单拒绝。\n- 一轮跑完，卡片合上、可转发；下一句话开新一轮。\n\n### 文本控制指令\n\n直接发这四个**裸词**（不需要斜杠，不区分大小写），daemon 拦截、不转发给 Claude：\n\n| 指令 | 行为 |\n| --- | --- |\n| `hi` | 未运行时启动；运行中弹一张**状态卡片**（model · 上下文占用 · 累计 tokens/cost · 上一轮 delta · session id） |\n| `kill` | 优雅关闭 Claude 进程；记住 `sessionId`，下次 `restart` 还能 resume |\n| `restart` | 用上一次的 `sessionId` 重启会话（保留上下文） |\n| `clear` | 杀掉进程并启动一个全新 session（等价于 Claude Code 的 `/clear`） |\n\n\u003e 这四个词被全局保留：在群里发 \"hi\" 当问候也会触发控制台卡片，不会到 Claude 那边。换来的是手机上单手打字的便利。\n\n整个对话在群里、在手机上、在桌面上完整发生。**离开终端，但不离开 Claude Code。**\n\n## 安装\n\n### 1. 准备\n\n- 一台能常跑后台进程的机器（自家服务器或闲置主机）\n- [Bun](https://bun.sh) 运行时\n- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) 已登录 Anthropic 账号 (`claude auth login`)\n- 一个飞书自建应用 (`cli_xxx`)，开通：\n  - `im:message:send_as_bot` / `im:message` / `im:chat:readonly` / `im:resource`\n  - `cardkit:card:read` `cardkit:card:write`\n    `cardkit:card.element:read` `cardkit:card.element:write`\n    `cardkit:card.settings:read` `cardkit:card.settings:write`\n\n### 2. 配置\n\n把凭据写到 `~/.config/lodestar/config.toml`：\n\n```toml\n[feishu]\napp_id     = \"cli_xxxxxxxxxxxxxxxx\"\napp_secret = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\n\n[runtime]\nprojects_root = \"~/\"        # 可选，新建群对应的项目目录会落到这里\n```\n\n也支持 `LODESTAR_CONFIG=/abs/path.toml` 或 `XDG_CONFIG_HOME` 覆盖。\n\n### 3. 启动\n\n```bash\nbun install -g @leviyuan/lodestar\nlodestar-daemon\n```\n\n或者一次性跑（无需全局安装）：\n\n```bash\nbunx @leviyuan/lodestar\n```\n\n把机器人拉进任意飞书群，发一条消息——Claude 就上线了。\n\n\u003e **小贴士**：群名首次出现时，daemon 会自动在 `~/{群名}/` 创建项目目录并 `git init`。换句话说，开新群 = 开新项目。\n\n### 4. 守护进程（可选）\n\n要让 daemon 7×24 跑，最简单的方法是配一个 `systemd --user` 单元：\n\n```ini\n[Unit]\nDescription=Lodestar daemon\nAfter=network-online.target\n\n[Service]\nType=simple\nExecStart=/home/USER/.bun/bin/lodestar-daemon\nRestart=always\nRestartSec=3\n\n[Install]\nWantedBy=default.target\n```\n\n`systemctl --user enable --now lodestar`。\n\n## 许可\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleviyuan%2Flodestar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleviyuan%2Flodestar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleviyuan%2Flodestar/lists"}