Lark CLI
lark-cli
The official Lark and Feishu CLI with agent skills: messages, docs, sheets, calendar, mail and tasks from the terminal, over 200 commands
- 17,789 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- The agent acts in your name: it sends messages and mail, edits docs and tables, approves and rejects approvals
- After login the CLI keeps authorization data in the system keychain and reads chats, mail and docs within the granted scope
- Installation runs a `postinstall` script, and service signals about the system and device go to Feishu and Lark
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add cli/lark-cliDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The agent acts in your name: it sends messages and mail, edits docs and tables, approves and rejects approvals
- After login the CLI keeps authorization data in the system keychain and reads chats, mail and docs within the granted scope
- Installation runs a `postinstall` script, and service signals about the system and device go to Feishu and Lark
This is third-party code. Review the repository files before installing.
What it does
`lark-cli` is the official command-line client for Lark and Feishu from the larksuite team. It installs from npm with `npx @larksuite/cli@latest install` and provides over 200 commands in 18 areas: messages, docs, drive, Base and Sheets tables, slides, calendar, mail, tasks, meetings and minutes, approvals, OKR, attendance and wiki. Commands come in three layers: shortcuts with a `+` prefix, such as `lark-cli calendar +agenda`, API commands built from platform metadata, and a direct call to any of over 2500 Open Platform methods through `lark-cli api`. For agents the project installs skills from the `skills/` folder, which holds 28 directories: the shared `lark-shared` with app setup, login, identity switching and security rules, loaded by all the others, and separate ones per area, such as `lark-calendar`, `lark-im`, `lark-doc`, `lark-mail` and `lark-base`. Two skills are workflows, a meeting summary and a morning agenda report, and `lark-skill-maker` helps create your own skills. Account work takes two steps: `lark-cli config init` creates an app, and `lark-cli auth login --recommend` requests a recommended set of permissions through the browser. The `--no-wait` login mode returns the confirmation link at once and does not block the agent, `--as user` and `--as bot` switch the identity of a call, and `--dry-run` shows a request without sending it. Output defaults to JSON with an `ok` field, with `table`, `ndjson` and `csv` also available.
Who it is for. For employees and developers who work in Lark or Feishu and want an agent to handle calendar, mail, docs, tasks and tables, and for integrators who embed the CLI into their own platforms.
Good fit when
- The agent needs to read the schedule, create meetings and find free meeting rooms in the Lark calendar
- You need to find and read chat messages, reply in a chat or send a message as a bot
- Docs, Base and Sheets tables, wiki and drive files have to be created and edited from the terminal
- You need a summary of past meetings from minutes or a morning report on the agenda and tasks: the workflows `lark-workflow-meeting-summary` and `lark-workflow-standup-report` cover that
- You need an Open Platform method that has no shortcut: `lark-cli api` and `lark-cli schema` show the method's parameters
Not a fit when
- You need to manage projects in Meegle: larksuite has a separate `meegle-cli` for that, and the documentation asks you to install it separately
- The bot has to work in group chats: the author advises keeping the bot a personal assistant and not adding it to groups
- You need centralized credentials, a shared audit log and a restricted command surface for an enterprise platform: the authors have a separate guide on embedding lark-cli in your own agent
- Your organization works in DingTalk: the catalog has DingTalk Workspace CLI for it
Example request
Show my meetings for tomorrow in Lark, find a free one-hour slot and suggest a time, but create nothing until I confirmLimitations
- After authorization the agent acts in your name within the granted scope. The author warns about model hallucinations, unpredictable execution and prompt injection and advises against loosening the default protections.
- By default the CLI sends the official Feishu and Lark domains signals meant to protect against token theft: the operating system type and the device model. The command `lark-cli config risk-control off` turns them off.
- DPoP is set to `preferred` for new local credentials. The `disabled` and `required` modes are set with `lark-cli config set dpop`, and you must log in again after changing it.
- Installation needs Node.js, and building from source needs Go 1.23 or newer and Python 3. The `@larksuite/cli` package runs `postinstall` and is built for macOS, Linux and Windows on x64, arm64 and riscv64 processors.
- The documentation gives the number of skills as 24 and as 26, while the `skills/` folder holds 28 directories. Working through the API requires accepting the terms of the Feishu and Lark services. MIT license.
How to disable. `lark-cli auth logout` ends the session and removes the stored login data. Delete the skills from the agent's skills directory and remove the package the way you installed it. The app created by `config init` stays in your account and has to be removed by hand.
FAQ
How do I install lark-cli and sign in?
Run `npx @larksuite/cli@latest install`, then `lark-cli config init` to create an app and `lark-cli auth login --recommend` to sign in with a recommended set of permissions. After that `lark-cli calendar +agenda` shows the schedule. To build from source use `git clone`, then `make install`, and the skills come from `npx skills add larksuite/cli -y -g`.
How do shortcuts with a plus differ from API commands?
Shortcuts with a `+` prefix are made for people and agents: they have sensible defaults, table output and a dry run. API commands are built from platform metadata and map one to one to endpoints, with over a hundred of them. For everything else `lark-cli api` calls any method directly.
How can an agent sign in without blocking the terminal?
`lark-cli auth login --domain calendar --no-wait` returns the confirmation link at once. You can resume waiting later with `lark-cli auth login --device-code` and the code you got. For the first app setup agents are advised to run `config init --new` in the background and pass the link to the user.
How do I check a command before it is sent?
Add `--dry-run`: for example, `lark-cli im +messages-send --chat-id oc_xxx --text "hello" --dry-run` shows the request without sending it. `lark-cli schema` prints the parameters of any method, for example `lark-cli schema calendar.events.instance_view`.
How do I tell that a command succeeded?
By `ok == true` in the response or by exit code 0. A success response has no `code` and `msg` fields, unlike raw OpenAPI responses. Errors go to stderr with a non-zero exit code, and the `code` field appears only inside `error`.
How do I run commands as a user or as a bot?
`--as user` runs a command from your account and `--as bot` from the app's bot. For example, `lark-cli im +messages-send --as bot --chat-id "oc_xxx" --text "Hello"` sends a message as the bot. Permissions are set at login with `--domain`, `--scope` or `--recommend`.
Discussion
No questions or reviews yet.
Related
CLI toolsA Slack CLI and skill: the agent reads channels and threads and searches messages and files, and drafts or sends only when you ask
Pachca API skills and CLI
Пачка API
Official agent skills and CLI for the Pachca corporate messenger: messages, chats, users, bots, tasks and search
DingTalk Workspace CLI (dws)
DingTalk Workspace CLI
Official DingTalk CLI with agent skills: chats, calendar, todos, mail, docs and approvals of your organization from the terminal
A Go CLI that keeps skills, agents and rules in one place and syncs them into every AI agent with one command
A set of everyday agent skills: web search, browser automation, Gmail, Google Calendar and Drive, speech transcription and YouTube transcripts
Skills Manager keeps skills in one library and mounts them into Claude Code, Cursor, Codex and other agents through symlinks, with no file copies
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Repository stars | Main difference |
|---|---|---|---|
| Lark CLI (this entry) | yes | 17,789 | |
| DingTalk Workspace CLI (dws) | yes | 3,775 | the official DingTalk CLI with skills: chats, calendar, tasks, mail, docs and approvals of an organization |
| botmux | no | 1,729 | botmux connects Lark and Feishu to Claude Code |
| octo-cli | yes | 920 | a command-line client for the Octo ecosystem built for AI agents |
README in short
The repository holds a Go CLI with an npm wrapper (`package.json` and the `scripts/` folder), 28 skill directories in `skills/`, an `isolated-skills/lark-suite` folder with one routing skill in Chinese and an `AGENTS.md` with rules for contributors and agents. The front page exists in English and Chinese: reasons to choose the CLI, a choice between the personal and enterprise path, a table of capabilities by area, install and quick start for a person and for an agent, a table of skills, authentication commands, the three command layers, output formats, pagination, dry run, method schemas and a warnings section.