如何让 lark-coding-agent-bridge 7×24 小时稳定在线:launchd、systemd 与 Windows 计划任务三平台部署指南

发布时间:2026/10/4 3:26:11

如何让 lark-coding-agent-bridge 7×24 小时稳定在线:launchd、systemd 与 Windows 计划任务三平台部署指南 如何让 lark-coding-agent-bridge 7×24 小时稳定在线launchd、systemd 与 Windows 计划任务三平台部署指南【免费下载链接】lark-coding-agent-bridgeBot that bridges Feishu/Lark messenger with a local Claude Code or Codex CLI. Streaming cards, per-chat sessions, multiple workspaces项目地址: https://gitcode.com/gh_mirrors/fe/lark-coding-agent-bridgelark-coding-agent-bridge 是一个把飞书 / Lark 消息桥接到本机 Claude Code 或 Codex CLI 的编程机器人在飞书里发消息它就用流式卡片实时返回 AI 编程助手的回答与工具调用。想要 7×24 小时稳定在线关键是把 bot 从前台进程升级为操作系统托管的后台服务——macOS 用 launchd、Linux 用 systemd、Windows 用计划任务一条start命令全部搞定。为什么必须用系统服务托管 ️用lark-channel-bridge run前台运行时bot 的生命周期和终端窗口绑定Ctrl-C或合上笔记本盖子机器人立刻下线。系统服务则提供三大保障开机/登录自启重启电脑后自动恢复服务不用人工介入崩溃兜底macOS 的KeepAlive与 systemd 的Restartalways会在进程退出后自动拉起日志归集标准输出/错误统一落到本地日志文件方便排查。三个平台的差异全部由项目内置的服务适配层抹平核心逻辑分别位于 src/daemon/launchd.ts、src/daemon/systemd.ts、src/daemon/schtasks.ts并由 src/daemon/service-adapter.ts 统一调度。部署前置条件先全局安装⚠️ 这是官方明确强调的一点服务层命令必须先全局安装不能直接用npx启动。后台服务的定义文件会记录 bridge CLI 的绝对路径如果路径来自 npm 的临时缓存npx场景缓存被清理后 daemon 就会起不来。npm i -g lark-channel-bridge # 或 pnpm add -g lark-channel-bridge同时确认本机已安装并登录claude或codexCLI且 Node.js 版本 20.12.0。首次配置用扫码向导完成lark-channel-bridge run首次运行会弹出二维码用飞书扫码、选择或创建 PersonalAgent 应用配置写入~/.lark-channel/config.json。确认 bot 能正常收发消息后Ctrl-C停掉前台进程进入正式的后台部署。一键注册后台服务最快配置方法确认前台可用后只需一条命令lark-channel-bridge start这条命令背后做了完整的动作链见 src/cli/commands/service.ts检查当前 profile 与运行锁防止重复实例抢占按当前系统写出服务定义plist / unit / 计划任务并记录当时的 Node 路径、PATH 环境变量——这样 daemon 在极简环境里也能找到claude、codex若旧实例还在运行先停掉并等待其彻底退出再启动新实例轮询进程注册表直到 bot 与飞书完成 WebSocket 握手打印✓ 已启动 bot: xxx才算真正在线。日常操作全部支持--profile name指定具体 profilelark-channel-bridge stop --profile claude lark-channel-bridge restart --profile claude lark-channel-bridge status --profile claude lark-channel-bridge unregister --profile claude三平台服务速查表各平台生成的服务名与关键行为一览命名规则见 src/daemon/paths.ts平台服务载体服务名以 claude profile 为例自启与保活机制macOSlaunchd 用户代理ai.lark-channel-bridge.bot.claudeRunAtLoadKeepAlive登录即拉起崩溃即重启Linuxsystemd 用户单元lark-channel-bridge.bot.claude.serviceRestartalways 5 秒回退登录后自动启动Windows任务计划程序LarkChannelBridge.Bot.claude登录触发ONLOGON以当前用户权限运行三个平台的 daemon 日志都落在同一处方便记忆~/.lark-channel/profiles/profile/logs/daemon/daemon-stdout.log ~/.lark-channel/profiles/profile/logs/daemon/daemon-stderr.logmacOS launchd 部署详解macOS 上start生成的 plist 位于~/Library/LaunchAgents/通过launchctl bootstrap加载、launchctl kickstart -k重启。有两个容易踩的坑项目已在源码层面处理src/daemon/launchd.tsstop 后再 start 不生效bootout只是会话级卸载plist 里的RunAtLoad会在下次登录时把 daemon 悄悄拉回来被disable过的 job 即使 bootstrap 成功也不会启动。因此start每次都先enable再bootstrap。报Bootstrap failed: 5: Input/output error常见原因是旧实例还在收尾。稍等几秒重试或彻底清理后重启lark-channel-bridge unregister lark-channel-bridge start另外stop的语义是停止且不再自启bootout disable保证 stop 就是彻底停掉restart则保留自启、原地重启。Linux systemd 用户服务两点必知start会在~/.config/systemd/user/写入单元文件并执行enable --nowsrc/daemon/systemd.ts。单元文件里有几个关键配置RestartalwaysRestartSec5崩溃后 5 秒自动拉起且带回退间隔避免崩溃循环打满 CPUWantsnetwork-online.target等网络就绪后再启动减少首次启动时的连接失败。两点需要注意用户级服务默认随注销退出。如果希望机器不登录也能跑 bot比如当轻量服务器执行一次loginctl enable-linger $USER修改单元文件后无需手动 daemon-reloadstart/unregister会自动执行。Windows 计划任务部署无需管理员Windows 适配层src/daemon/schtasks.ts会生成一个.cmd启动器脚本并注册计划任务有 3 个贴心设计登录触发ONLOGON每次登录 Windows 自动拉起 bot当前用户权限/RL LIMITED注册任务不需要管理员提权.cmd包装器负责写入 PATH、LARK_CHANNEL_HOME环境变量并把输出追加到日志文件重启后日志历史不丢失。在任务计划程序界面中搜索LarkChannelBridge.Bot.前缀即可看到对应任务status命令会解析任务的Last Result0 表示上次运行成功。多 profile同时常驻 Claude 与 Codex 两个 bot 每个 profile 拥有独立的凭据、会话、工作目录、日志和独立的系统服务。想让 Claude 和 Codex 各跑一个 bot分别启动即可lark-channel-bridge start --profile claude --agent claude lark-channel-bridge start --profile codex --agent codex之后互不干扰地单独维护lark-channel-bridge restart --profile codex lark-channel-bridge status --profile codex此外还有整机级的控制面选项start --web-ui安装一个 supervisor 服务单进程托管所有 profile 并提供本地 Web 控制台适合多 bot 集中管理src/cli/commands/start.ts。日常运维清单 场景命令查看是否在跑含 PID、上次退出码、日志路径lark-channel-bridge status原地重启保留开机自启lark-channel-bridge restart彻底停止并取消自启lark-channel-bridge stop清除服务注册保留配置/日志/会话lark-channel-bridge unregister追踪 daemon 输出tail -f ~/.lark-channel/profiles/profile/logs/daemon/daemon-stderr.log飞书内快速诊断发送/status、/doctor、/reconnectstatus会告诉你 bot 是否真正完成飞书握手——只有 WebSocket 连接成功后才算在线避免进程活着但 bot 掉线的错觉。若start后 30 秒内没观察到连接命令会直接给出日志路径提示。常见问题排查 stop 了 bot 又自己回来了确认用的是stop会自动关闭自启而不是手动kill进程旧的 plist / unit 仍带自启配置时launchd/systemd会在下次登录把它拉回。升级 Node 或 PATH 变更后 daemon 行为异常重新执行一次start——它每次都会用当前 Node 二进制和 PATH 重新写入服务定义。bot 收发消息正常但 agent 不回复通常是本地claude/codex未登录或会话目录失效在飞书里发/status查看/new重置会话常常就能解决。更多细节可参考项目文档 README.zh.md 的后台运行章节。小结把 lark-coding-agent-bridge 交给操作系统托管本质就三步全局安装 →run完成首次扫码配置 →start注册后台服务。此后 launchd、systemd 和 Windows 计划任务会替你处理自启、崩溃恢复与日志落盘bot 真正做到 7×24 小时稳定在线。配合多 profile 能力一台机器可以同时常驻 Claude 与 Codex 两个助手随时随地在飞书里派活。【免费下载链接】lark-coding-agent-bridgeBot that bridges Feishu/Lark messenger with a local Claude Code or Codex CLI. Streaming cards, per-chat sessions, multiple workspaces项目地址: https://gitcode.com/gh_mirrors/fe/lark-coding-agent-bridge创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/4 3:26:11

for循环从入门到实战:语法、应用与避坑指南

很多刚接触编程的朋友都经历过这样的阶段:想让程序输出1到100,第一反应是把print语句复制粘贴一百遍;后来学会了函数,写了个print_1_to_100(),总算不用在调用时复制粘贴了,但每次改动范围还是得改函数体里的…

2026/10/4 3:26:11

插件加载失败深度拆解:从plugins机制到排查实战

最近好几个开发者社群里都在刷同一类报错:failed to load plugins web boot: 2 entries did not activate linxin666/dsh-p。后面挂的插件名五花八门,有公司内部的组件库,有个人开发者写的开源包,也有musicfree plugins这类面向普…

2026/10/4 3:26:11

杰理蓝牙芯片Key本质:硬件绑定的启动校验特征码

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 4:16:13

LabVIEW调用adb shell实现Android设备自动化测试实战指南

去年有段时间我一直在做手机产线的老化测试上位机。测的产品是 Android 系统的移动终端,但整个测试框架必须用 LabVIEW 搭,两边要联动:装 App、清缓存、模拟点击、抓日志、读系统版本、控制相机拍照,这些操作全都夹在整套 LabVIEW…

2026/10/4 4:16:13

插件加载失败排查指南:从原理到实战,覆盖IAR与MusicFree

"plugins"这个词,这几年几乎是所有软件都在提的东西。打开 IAR 遇到插件加载警告,跑测试框架报failed to load plugins web boot: 2 entries did not activate,就连手机上的 MusicFree 听歌软件,也要靠 plugins 才能解锁…

2026/10/4 4:16:13

双闭环PFC单相PWM整流原理与工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 4:11:13

选题毫无头绪?导师力荐这几个AI写作辅助网站

写论文总感觉无从下手?选题卡壳、思路混乱、文献难找、格式不规范……这些痛点在学术圈里太常见了。其实,只要用对AI工具、走对流程,就能大幅提升效率。不少资深教授都推荐学生提前掌握合适的写作辅助工具,让论文写作事半功倍。本…

2026/10/4 0:01:02

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/4 0:01:02

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/4 1:01:05

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 0:01:02

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/4 0:01:02

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/4 1:01:05

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑