Configure
Set up the Lark (Larksuite) channel — save the app credentials (App ID / App Secret / encrypt key / verify token), choose the transport, and review status. Use when the user pastes Lark app credentials, asks to configure Lark, asks "how do I set this up", or wants to check channel status.From its SKILL.md
npx -y skills add junliu/claude-lark-channel --skill configureAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.1 KB, as published. Nobody here has run it
Configure the Lark channel
You are helping the user configure the self-built Lark (Larksuite international) channel for
Claude Code. Credentials live in <config-dir>/.env (one KEY=value per line).
Config dir = ~/.claude/channels/lark/ by default, OR the value of the LARK_CONFIG_DIR
environment variable if it is set (used to keep config inside a project repo, or to run several
independent bots — one config dir per bot). To find the effective dir, check whether
LARK_CONFIG_DIR is set in the environment; if so use it (resolve relative paths against the CWD),
otherwise use ~/.claude/channels/lark/. Everywhere below, "the config dir" means this resolved
path. NOTE: LARK_CONFIG_DIR itself must be a real env var / on the launch command — it cannot be
stored in .env, since it's what locates .env.
Arguments (optional): $ARGUMENTS
Behavior
No arguments — show status
- Report the effective config dir (and whether it came from
LARK_CONFIG_DIRor the default). - Read
<config-dir>/.envif it exists. - Report which of these are set (show only whether present, never print secret values):
LARK_APP_ID,LARK_APP_SECRET,LARK_ENCRYPT_KEY,LARK_VERIFY_TOKEN,LARK_TRANSPORT,LARK_WEBHOOK_PORT,LARK_WEBHOOK_PATH. - Read
<config-dir>/access.jsonand report the currentpolicyand number of allowlisted senders. - Tell the user the next steps they still need (see Setup checklist below).
With arguments — save a value
Parse $ARGUMENTS as KEY VALUE (or a natural request like "set app id to cli_xxx"). Accept these keys:
app_id→LARK_APP_ID(looks likecli_...)app_secret→LARK_APP_SECRETencrypt_key→LARK_ENCRYPT_KEYverify_token→LARK_VERIFY_TOKENtransport→LARK_TRANSPORT(must bewebhookorws)webhook_port→LARK_WEBHOOK_PORTwebhook_path→LARK_WEBHOOK_PATH
Steps:
mkdir -p <config-dir>if needed.- Read the existing
<config-dir>/.env, update or append the given key, and write it back (preserve other keys). - Confirm what was saved WITHOUT echoing secret values back.
- Remind the user to restart Claude Code (or
/reload-plugins) for the channel server to pick up the new value.
clear — remove a value
If the user says clear <key> or clear all, remove that key (or all keys) from .env.
Setup checklist (share this when relevant)
- Create the app: https://open.larksuite.com/app → Create custom app → note App ID & App Secret. Add the Bot feature.
- Scopes (minimum for DMs):
im:message.p2p_msg:readonly+im:message:send_as_bot. For group @mentions also addim:message.group_at_msg:readonly. - Event subscription: subscribe to
im.message.receive_v1.- Webhook mode (default): set the Request URL to
https://<your-public-host><LARK_WEBHOOK_PATH>(default path/webhook/event), set an Encrypt Key and Verification Token, and save those into.envasLARK_ENCRYPT_KEY/LARK_VERIFY_TOKEN. You need a public HTTPS URL (server public address, or a tunnel likecloudflared/ngrok). - WS mode (optional): set
LARK_TRANSPORT=ws. Only works if the app's Developer Console exposes a "long connection" subscription mode (not always available on Larksuite international).
- Webhook mode (default): set the Request URL to
- Publish the app version and have the tenant admin approve it.
- Restart Claude Code so the
larkMCP server starts, then DM the bot to begin pairing.
Security notes
- Never print secret values back to the chat; only report whether a key is set.
- This command edits local credential files only. It does not send anything to Lark.