Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
larksuite avatar

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-event

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs385k
repo stars15.9k
Security audit2 / 3 scanners passed
Last updatedJuly 28, 2026
Repositorylarksuite/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

SKILL.mdMarkdownGitHub ↗

Lark Events

Prerequisite: Read `../lark-shared/SKILL.md` first for authentication, --as user/bot switching, Permission denied handling, and safety rules.

Core commands

CommandPurpose
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

FlagDescription
--param key=value / -pBusiness 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 NExit after N events. Default 0 = unlimited
--timeout DExit 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)
--quietSuppress 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 codereasonTrigger
0reason: limit--max-events reached
0reason: timeout--timeout reached
0reason: signalCtrl+C / SIGTERM / stdin EOF
non-0Error: ... (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.

Backend & APIsagentsautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.