From lark
Manages scheduled cronjobs from the Claude Code terminal: create, list, pause, resume, and delete recurring tasks. Defaults to a redacted view for privacy.
How this skill is triggered — by the user, by Claude, or both
Slash command
/lark:jobsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use the cronjob tools to manage scheduled tasks:
Use the cronjob tools to manage scheduled tasks:
create_job — create a new scheduled joblist_jobs — show all jobs and their statusupdate_job — modify a job (change schedule, pause/resume, update content)delete_job — remove a jobThis skill is invoked from the Claude Code terminal, so there is no
Feishu message to establish a caller identity. Pass the reserved
chat_id="__terminal__" to every sensitive tool call. The MCP server
resolves this to LARK_OWNER_OPEN_ID (set in
~/.claude/channels/lark/.env). If the env var is missing, the tool will
refuse — prompt the user to run /lark:configure to set it.
When the user asks to list or inspect jobs WITHOUT saying "verbose", "full", "dump", or "show prompt", render a compact view that hides prompt bodies and content:
[1] morning-brief · daily 09:00 · → group "Team Sync"
[2] mail-digest · daily 22:00 · → private
3 jobs. Use `list verbose` to include prompt bodies.
Hide these fields by default: prompt, content, msg_type,
free-form meta. Rationale: screen-share and shoulder-surfing are the
realistic threats on the terminal side, so we don't splash sensitive
content unless the user explicitly asks.
When the user explicitly says "verbose", "show full", "dump prompt", "include prompt bodies", or similar: include the hidden fields. Prefix the output with one line:
⚠ verbose mode — prompt bodies and meta visible in output.
Before calling delete_job, or update_job with status=paused /
schedule=<new> / prompt=<new> / content=<new> — confirm with the
user first:
"Confirm: delete job
<id>(runs<schedule>, targets<target_chat_id>)? Replyyesto proceed."
Do not proceed without an affirmative response. For read-only calls
(list_jobs) and for update_job that only changes name, no
confirmation is needed.
Every sensitive tool invocation is written to
~/.claude/channels/lark/audit.log automatically by the MCP server.
You do not need to log explicitly — but remind the user on first
invocation of a session that the log exists, so they can review
retrospectively if they suspect someone else used their terminal.
model (e.g. sonnet, haiku, opus) to override which model the dispatched subagent uses.Standard cron (5-field): 0 9 * * 1-5
Simplified aliases:
every 30m — every 30 minutesevery 2h — every 2 hoursdaily at 09:00 — every day at 9amweekdays at 09:00 — Monday to Friday at 9amweekly on mon at 09:00 — every Monday at 9am"Create a job that sends a standup reminder every weekday at 10:00 to this chat" "List all active cronjobs" → default redacted view "Show jobs verbose" → full prompt bodies "Pause the daily-pr-summary job" → confirm first "Delete the morning-standup job" → confirm first "Change the schedule of weekly-report to every Monday at 9:00" → confirm first "Create a prompt job that summarizes yesterday's PRs every weekday at 9:00"
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 is908/claude-lark-plugin --plugin lark