From claude-channel-lark
Set up the Lark channel — save the app credentials and review access policy. Use when the user asks to configure Lark, provides app credentials, asks "how do I set this up" or "who can reach me," or wants to check channel status.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-channel-lark:configureThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Writes the Lark app credentials to `~/.claude/channels/lark/.env` and orients the
Writes the Lark app credentials to ~/.claude/channels/lark/.env and orients the
user on access policy. The server reads the file at boot.
Arguments passed: $ARGUMENTS
Read both state files and give the user a complete picture:
Credentials — check ~/.claude/channels/lark/.env for
LARK_APP_ID and LARK_APP_SECRET. Show set/not-set; if set, show first
4 chars of each, masked.
Domain — check for LARK_DOMAIN. Default is open.larksuite.com
(Lark international). For Feishu (China), it should be open.feishu.cn.
Webhook — check for LARK_WEBHOOK_PORT (default 9876). Show the
expected webhook URL format.
Encryption — check for LARK_ENCRYPT_KEY and LARK_VERIFICATION_TOKEN.
Show set/not-set.
Access — read ~/.claude/channels/lark/access.json (missing file
= defaults: dmPolicy: "pairing", empty allowlist). Show:
What next — end with a concrete next step based on state:
/lark:configure with your Lark app credentials
from the Lark Open Platform Developer Console."ngrok http 9876, then set the webhook URL in Lark Developer Console
→ Event Subscription → Request URL."/lark:access pair <code>."Push toward lockdown — always. Once the IDs are in, pairing has done its job and should be turned off.
<app_id> <app_secret> — save credentialscli_. App secrets are alphanumeric strings.mkdir -p ~/.claude/channels/lark.env if present; update/add the LARK_APP_ID= and
LARK_APP_SECRET= lines, preserve other keys. Write back, no quotes.domain <domain> — set API domainSet LARK_DOMAIN in .env. Valid values:
open.larksuite.com (Lark international, default)open.feishu.cn (Feishu, China)encrypt <encrypt_key> [verification_token] — set encryptionSet LARK_ENCRYPT_KEY and optionally LARK_VERIFICATION_TOKEN in .env.
port <port> — set webhook portSet LARK_WEBHOOK_PORT in .env. Default is 9876.
clear — remove credentialsDelete the LARK_APP_ID= and LARK_APP_SECRET= lines (or the file if those
are the only lines).
.env once at boot. Credential changes need a session
restart or /reload-plugins. Say so after saving.access.json is re-read on every inbound message — policy changes via
/lark:access take effect immediately, no restart.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub sakura-rip/claude-code-channel-lark --plugin claude-channel-lark