{ "listing": { "skills": [ { "path": "skills/access/SKILL.md", "name": "access", "description": "Manage who may drive telegram-topics sessions — view and edit the user allowlist. Use when the user asks to allow or remove a Telegram user, check who's allowed, or lock the channel down.", "files": { "skills/access/SKILL.md": "aee41b3084fd6d79d828ca85283fc2034e4181bab305d74b196ae3b05f4990a0" } }, { "path": "skills/allowlist/SKILL.md", "name": "allowlist", "description": "Put this plugin on the Claude Code channels allowlist (managed settings) so `--channels` delivers inbound messages — one command, one admin prompt. Use when preflight reports NOT ALLOWLISTED, when Telegram messages never arrive in sessions although the send tools work, or when the user asks to set up the channels allowlist.", "files": { "skills/allowlist/SKILL.md": "9f612a7af072f43dc8e59710326bcd4ebb3204a53cd0890706730dc9fdd94246" } }, { "path": "skills/configure/SKILL.md", "name": "configure", "description": "Set up the telegram-topics channel — save the bot token and forum group id, then run a preflight check. Use when the user pastes a Telegram bot token, asks to configure telegram-topics, asks \"how do I set this up\", or wants to check channel status.", "files": { "skills/configure/SKILL.md": "1b590230a85d0d8d213ef7a928c9d5024b6c8512111961550147a058a29b5dc3" } } ], "hooks": [ { "path": "hooks/hooks.json", "sha256": "8e893b8a7b4731156ccb186b1c8515be67e1de39296619568452d28a4100418c", "event": "UserPromptSubmit", "matcher": null, "declaration": { "type": "command", "command": "bun \"${CLAUDE_PLUGIN_ROOT}/hooks/activity.ts\" start", "timeout": 15 }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "8e893b8a7b4731156ccb186b1c8515be67e1de39296619568452d28a4100418c", "event": "PreToolUse", "matcher": "*", "declaration": { "type": "command", "command": "bun \"${CLAUDE_PLUGIN_ROOT}/hooks/activity.ts\" working", "timeout": 15, "async": true }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "8e893b8a7b4731156ccb186b1c8515be67e1de39296619568452d28a4100418c", "event": "Stop", "matcher": null, "declaration": { "type": "command", "command": "bun \"${CLAUDE_PLUGIN_ROOT}/hooks/activity.ts\" idle", "timeout": 15 }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "8e893b8a7b4731156ccb186b1c8515be67e1de39296619568452d28a4100418c", "event": "Stop", "matcher": null, "declaration": { "type": "command", "command": "bun \"${CLAUDE_PLUGIN_ROOT}/hooks/mirror.ts\"", "timeout": 15 }, "executed": false }, { "path": "hooks/hooks.json", "sha256": "8e893b8a7b4731156ccb186b1c8515be67e1de39296619568452d28a4100418c", "event": "StopFailure", "matcher": "server_error|overloaded|rate_limit|authentication_failed|oauth_org_not_allowed|billing_error|invalid_request|model_not_found|max_output_tokens|unknown", "declaration": { "type": "command", "command": "bun \"${CLAUDE_PLUGIN_ROOT}/hooks/activity.ts\" failed", "timeout": 15 }, "executed": false } ], "executions": [] } }