lark-channel-bridge: Connect Feishu and Lark to Your Local Claude Code or Codex CLI
Bot that bridges Feishu/Lark messenger with a local Claude Code or Codex CLI. Streaming cards, per-chat sessions, multiple workspaces
At a glance
- What is it?
- zarazhangrui/lark-coding-agent-bridge is a TypeScript npm package that routes Feishu or Lark messages to Claude Code or Codex CLI running on your local machine. It maintains per-chat sessions, streams responses as live-updating Lark cards, manages multiple project workspaces, and installs as a background service on macOS, Linux, and Windows.
- Who is it for?
- lark-channel-bridge suits developers who use Claude Code or Codex in their daily workflow and want to trigger coding tasks from Feishu or Lark without switching to a terminal. The npm global install is the recommended path; the README warns that running via npx without a global install is fine for one-shot foreground testing but can break the daemon service when the npm cache is cleared.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 30 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What lark-channel-bridge Does and Who It Is For
lark-channel-bridge is an npm package that connects the Feishu or Lark messenger platform to Claude Code or Codex CLI running locally on the developer's machine. Feishu (also called Lark in international markets) is an enterprise messaging platform. Claude Code and Codex CLI are coding agents that run in a terminal against a local filesystem. The bridge makes it possible to send a message in Feishu, have it forwarded to the local agent, and receive the agent's streaming response back in the chat as a live-updating card.
The target user is a developer who has Claude Code or Codex already set up and wants a more convenient trigger interface than opening a terminal. It is also useful in team contexts where a group chat can invoke a coding agent and see its progress in a shared thread. The bridge maintains the full session state of the underlying agent, so conversations carry context across messages the same way they would in a terminal session.
How the Bridge Connects Chat to Local Agents
The bridge runs as a local process that connects to Feishu or Lark through a PersonalAgent app. When a message arrives in a DM or a group mention, the bridge forwards it to the running Claude Code or Codex CLI process, captures the streaming output including tool calls and progress text, and updates a Lark card in the chat with the response in real time.
The streaming card feature means that as Claude Code or Codex produces output, the Lark card in the conversation updates progressively rather than showing nothing until the agent is done. An optional COT (chain of thought) process message mode sends intermediate progress updates as a separate message, with the final answer sent separately.
Messages sent in quick succession are batched together rather than triggering multiple independent agent runs. Messages sent while an agent run is in progress are queued for the next turn. Certain slash commands can interrupt a running task: /new, /cd, /ws use, and /stop can all preempt the current agent run.
The bridge also handles image and file attachments: files sent to the bot are downloaded to the local machine and passed to the agent as local file paths.
Installation and First-Run Setup
The package is published to npm under the name lark-channel-bridge. The recommended installation is global:
npm i -g lark-channel-bridgeAlternatively with pnpm:
pnpm add -g lark-channel-bridgeThe first run starts an interactive setup wizard:
lark-channel-bridge runThe wizard renders a QR code in the terminal. Scanning it with the Feishu or Lark mobile app creates or binds a PersonalAgent app. The agent type (Claude Code or Codex) is selected during setup. Configuration is written to ~/.lark-channel/config.json.
If a PersonalAgent app already exists, pass the --app-id flag to skip app creation:
lark-channel-bridge run --app-id cli_xxxFor Lark global apps (as opposed to Feishu), add --tenant lark to the command. After the initial setup, using run in the foreground is no longer necessary; the background service commands take over.
Session Management, Workspaces, and Slash Commands
Each Feishu or Lark chat, topic thread, or document comment thread maintains its own agent session. Switching between chats does not share context. Within a chat, the /new or /reset command clears the current session to start fresh.
Workspace management is handled through a set of slash commands. /cd <path> switches the working directory and resets the current session. /ws save <name> saves the current directory as a named workspace, and /ws use <name> switches to a saved workspace. /ws list displays all named workspaces. /ws remove <name> deletes a named workspace entry. /resume attempts to restore compatible history from a previous session for the same agent, working directory, and permission mode.
Access control is managed through invite commands. /invite user @name allows a specific user to use the bot in DMs. /invite admin @name adds someone as an access-control administrator. /invite group allows the current group chat to use the bot.
The /status command returns the current profile, agent type, working directory, session state, and run state. /config provides access to presentation preferences and identity policy settings. /help returns a card with clickable buttons for common commands.
Running as a Background Service and Multiple Profiles
After initial setup, lark-channel-bridge can run as an OS-managed background service:
lark-channel-bridge start
lark-channel-bridge status
lark-channel-bridge stopThe service implementation uses platform-native service managers: launchd on macOS, systemd user units on Linux, and Windows Task Scheduler on Windows. Daemon logs are stored under ~/.lark-channel/profiles/<profile>/logs/daemon/.
Multiple profiles support running Claude Code and Codex as separate bots simultaneously:
lark-channel-bridge start --profile claude --agent claude
lark-channel-bridge start --profile codex --agent codexEach profile maintains its own app credentials, session state, working directories, and logs. The profile management commands cover creation, listing, switching, removal, and export. Profile export redacts app secrets by default; passing --include-secrets --yes exports the full configuration including sensitive values.
The README explicitly warns against running service commands via npx: because the daemon records the CLI binary path, a path resolved through the npm temp cache can break when the cache is cleaned. The global install with npm i -g or pnpm add -g ensures a stable binary path for the daemon.
Limitations and What the Bridge Does Not Do
lark-channel-bridge requires the underlying coding agent to already be installed and authenticated on the local machine. Claude Code requires a separate Claude subscription and authentication step through Anthropic's CLI. Codex CLI requires a separate OpenAI API key. The bridge does not handle agent authentication: it assumes the agent is already set up and functional in the terminal.
The bridge is a local process, not a hosted service. This means the local machine must be running and the bridge process must be active for the bot to respond in Feishu or Lark. If the machine sleeps or the service crashes, the bot goes offline. The background service mode mitigates restarts but does not solve the dependency on the machine being powered on.
Feishu's native AI assistant is an alternative for teams already on Feishu who want AI chat functionality without running local agents. The Feishu built-in assistant operates entirely within Feishu's cloud infrastructure and does not require a local machine or a coding agent CLI. The key difference is that lark-channel-bridge specifically routes to Claude Code or Codex running against the user's local filesystem and project directories, giving the agent access to local files, terminals, and the full environment that a coding agent needs. The Feishu native assistant does not have access to a local machine.
Editorial conclusion
lark-channel-bridge suits developers who use Claude Code or Codex in their daily workflow and want to trigger coding tasks from Feishu or Lark without switching to a terminal. The npm global install is the recommended path; the README warns that running via npx without a global install is fine for one-shot foreground testing but can break the daemon service when the npm cache is cleared. The last push was on 2026-08-31 and the project is MIT licensed.
Frequently asked questions
What prerequisites are needed to run lark-channel-bridge?
You need Node.js 20.12.0 or later, and at least one coding agent installed and logged in: Claude Code (the claude CLI from Anthropic) or Codex CLI. You also need a Feishu or Lark account to create or bind a PersonalAgent app during first-run setup.
Does lark-channel-bridge work with both Feishu and international Lark?
Yes. For standard Feishu (Chinese deployment), the default configuration applies. For international Lark global apps, add --tenant lark to the run or start command when initializing or starting the bridge.
Can multiple developers share the same lark-channel-bridge bot?
Access is controlled through slash commands inside the chat. The /invite user @name command grants a specific user permission to use the bot in DMs, and /invite group allows the current group chat to use the bot. Access-control administrators can be added with /invite admin @name.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/zarazhangrui-lark-coding-agent-bridge)