
Lark Event
- 385k installs
- 15.9k repo stars
- Updated July 28, 2026
- larksuite/cli
This is a copy of lark-event by open.feishu.cn - installs and ranking accrue to the original listing.
lark-event is a Lark CLI agent skill that consumes real-time Feishu events as NDJSON streams for developers who build bots and long-running push handlers in AI agent subprocesses.
About
lark-event is a version 1.0.0 agent skill from larksuite/cli that subscribes to Lark (Feishu) real-time events through lark-cli event consume <EventKey>. It streams IM messages, reactions, chat changes, VC meeting ended, Minutes generated, and related push payloads as newline-delimited JSON designed for AI agents running as subprocesses. Developers use lark-event for bot backends, webhook replacements, and bounded event polling with --max-events and --timeout flags plus a stderr ready-marker contract. The skill targets long-running subscribers rather than one-shot REST calls. Authentication and global parameters follow lark-shared SKILL.md prerequisites before starting any consume session.
- Streams IM messages, reactions, chat changes, VC meeting ended, and Minutes-generated events as NDJSON
- Five core commands: list, schema, consume, status, and stop
- Supports --max-events and --timeout for bounded runs with stderr ready-marker contract
- Designed as subprocess for AI agents with --param and --jq filtering
- Prerequisite shared auth and permission model from lark-shared
Lark Event by the numbers
- 385,316 all-time installs (skills.sh)
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/larksuite/cli --skill lark-eventAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 385k |
|---|---|
| repo stars | ★ 15.9k |
| Security audit | 2 / 3 scanners passed |
| Last updated | July 28, 2026 |
| Repository | larksuite/cli ↗ |
How do you subscribe to Lark events from CLI?
Consume real-time events from Lark/Feishu as structured NDJSON streams inside AI agent workflows.
Who is it for?
Developers building Lark bots or real-time automations who need structured NDJSON event streams from lark-cli subprocesses.
Skip if: One-shot historical meeting queries belong in lark-vc rather than lark-event long-running consume sessions.
When should I use this skill?
User needs real-time Lark message, reaction, chat, VC ended, or Minutes generated event streaming in an agent workflow.
What you get
NDJSON event streams, bounded event batches, and stderr ready markers for downstream agent parsers.
- NDJSON event streams
- bounded event batches
By the numbers
- Streams events as NDJSON via lark-cli event consume
- Published as version 1.0.0 with bounded --max-events and --timeout flags
Files
Lark Events
Prerequisite: Read `../lark-shared/SKILL.md` first for authentication,--as user/botswitching,Permission deniedhandling, and safety rules.
Core commands
| Command | Purpose |
|---|---|
lark-cli event list [--json] | List all subscribable EventKeys |
lark-cli event schema <EventKey> [--json] | Show an EventKey's params and output schema |
lark-cli event consume <EventKey> [flags] | Blocking consume; events → stdout NDJSON |
lark-cli event status [--json] [--fail-on-orphan] | Inspect the local bus daemon status |
lark-cli event stop [--all] [--force] | Stop the bus daemon |
Common flags
| Flag | Description |
|---|---|
--param key=value / -p | Business params (repeatable; comma-separated for multi-value). Unknown keys fail with valid names listed inline |
--jq <expr> | jq expression to filter / transform each event; empty output skips the event |
--max-events N | Exit after N events. Default 0 = unlimited |
--timeout D | Exit after duration D (e.g. 30s, 2m). Default 0 = no timeout. Whichever of --max-events / --timeout fires first wins |
--output-dir <dir> | Write each event as a file (relative paths only; prevents traversal) |
--quiet | Suppress stderr diagnostics. AI should not use this — it silences the ready marker |
| `--as user\ | bot\ |
Examples
# Default: stream every event for the key (no filter, no projection)
lark-cli event consume im.message.receive_v1 --as bot
# Grab one sample event to inspect payload shape
lark-cli event consume im.message.receive_v1 --max-events 1 --timeout 30s --as bot
# Run for 10 minutes then auto-exit
lark-cli event consume im.message.receive_v1 --timeout 10m --as bot
# Consume multiple EventKeys concurrently (one shape per process, no dispatcher)
lark-cli event consume im.message.receive_v1 --as bot > receive.ndjson &
lark-cli event consume im.message.reaction.created_v1 --as bot > reaction.ndjson &
wait
Call flow
1. lark-cli event list --json → pick a legal key 2. lark-cli event schema <key> --json → read resolved_output_schema + jq_root_path to determine field paths 3. lark-cli event consume <key> [--jq '<expr>'] → consume
Subprocess contract
Ready marker
event consume's stderr emits a fixed line [event] ready event_key=<key>. Parent processes should block on stderr until this line appears, then start reading stdout. Do not fall back to sleep.
stdin EOF = graceful exit
event consume treats stdin close as a shutdown signal (wired for AI subprocess callers). < /dev/null / nohup / systemd's default StandardInput=null will cause an immediate graceful exit (stderr reason: signal). To keep running:
- Feed stdin a source that never EOFs:
< <(tail -f /dev/null) - Or run bounded:
--max-events N/--timeout D
Exit codes & reason
On exit, the last stderr line is [event] exited — received N event(s) in Xs (reason: ...).
| exit code | reason | Trigger |
|---|---|---|
| 0 | reason: limit | --max-events reached |
| 0 | reason: timeout | --timeout reached |
| 0 | reason: signal | Ctrl+C / SIGTERM / stdin EOF |
| non-0 | Error: ... (no exited line) | Startup / runtime failure (permissions, network, params, config) |
Orchestrators shou
Related skills
FAQ
What output format does lark-event produce?
lark-event streams events as NDJSON lines from lark-cli event consume <EventKey>. Each line is a structured event suitable for agent parsers, with optional --max-events and --timeout bounds.
Which Lark events can lark-event consume?
lark-event covers IM messages, reactions, chat changes, VC meeting ended, Minutes generated, and related real-time push events configured by the chosen EventKey subscription.
Is Lark Event safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.