By EthanSK
Claude Code hooks that summarize quiet Telegram assistant bursts after voice notes.
Cross-harness hooks for Ethan-style Telegram voice workflows.
After a voice note, if the assistant sends 3+ Telegram messages and then goes quiet for 5 minutes, this package sends one Telegram blockquote summary of that burst.
It includes:
message_received / message_sending / message_sent,UserPromptSubmit / PostToolUse / Stop,threshold: 3 assistant messages.inactivityMs: 300000 (5 minutes).threshold unsummarized assistant messages.From a local checkout:
openclaw plugins install /Users/ethansk/Projects/assistant-burst-summary-hook --link
openclaw plugins enable assistant-burst-summary-hook
Config lives under plugins.entries.assistant-burst-summary-hook. Minimal example:
{
plugins: {
entries: {
"assistant-burst-summary-hook": {
enabled: true,
threshold: 3,
inactivityMs: 300000,
telegramBotTokenEnv: "TELEGRAM_BOT_TOKEN",
telegramParseMode: "MarkdownV2"
}
}
}
}
The OpenClaw adapter resolves the Telegram bot token from, in order:
telegramBotToken,telegramBotTokenEnv, default TELEGRAM_BOT_TOKEN,It uses the outgoing OpenClaw message target as the Telegram chat id, so a separate telegramChatId is usually not needed for OpenClaw.
Claude Code hooks need a chat id because command hooks do not have OpenClaw's channel delivery context.
claude plugin marketplace add /Users/ethansk/Projects/assistant-burst-summary-hook --scope user
claude plugin install assistant-burst-summary-hook@assistant-burst-summary-hook --scope user
Create ~/.config/assistant-burst-summary-hook/config.json:
{
"threshold": 3,
"inactivityMs": 300000,
"telegramBotTokenEnv": "TELEGRAM_BOT_TOKEN",
"telegramChatId": "6164541473",
"telegramParseMode": "MarkdownV2"
}
Or point Claude hooks at another file:
export ASSISTANT_BURST_SUMMARY_CONFIG=/path/to/config.json
See examples/config.json for a full example.
Common fields:
enabled: boolean, default true.threshold: number of unsummarized assistant messages required, default 3.inactivityMs: quiet window after newest assistant message, default 300000.maxMessagesInSummary: cap on messages included in one summary, default 8.stateDir: durable JSON state directory.telegramBotTokenEnv: env var containing the bot token.telegramBotToken: direct token override; avoid committing this.telegramChatId: required for Claude Code unless PostToolUse extracts a chat id.telegramParseMode: MarkdownV2, HTML, or none.voiceBoundaryPatterns: extra strings that identify a voice-note transcript.dryRun: evaluate/send without calling Telegram.npm test
node bin/assistant-burst-summary-hook.js simulate --json
node --input-type=module -e "await import('./src/openclaw/index.js')"
claude plugin validate .
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub ethansk/assistant-burst-summary-hook --plugin assistant-burst-summary-hookBridge AI coding agents across machines via SSH. Provides both outgoing MCP tools (bridge_send_message, bridge_receive_messages, bridge_run_command, bridge_status, bridge_list_machines, bridge_clear_inbox, bridge_inbox_stats) AND a Claude Code channel that pushes incoming messages from other machines into the running session as <channel source="agent-bridge"> events. Companion to the bash `agent-bridge` CLI used for pairing and SSH transport.
Skill-only agent/OpenClaw-compatible plugin for browser-based reposting across websites the current harness can safely operate through a logged-in browser; ships documented examples for LinkedIn, X, Bluesky, Threads, and Facebook. The running agent uses its existing tools (Read, Edit, Write, Bash, current-harness browser automation, and the current harness's Telegram/message tool — OpenClaw message tool or Claude Code plugin:telegram:telegram) to scrape, dedupe (Layer 1 strings + Layer 2 agent semantic check), apply custom user skip rules, post, log history, manage source-item fanout manifests for backfill slots, and notify. Maintains per-pair learnings.md so the agent does not re-figure site quirks every scheduled tick. No CLI, no MCP server, no platform SDKs.
Make a sound when AI agents finish. Per-agent chime on Stop / SubagentStop, all-complete chime when the active-agent set drains. Configurable via 9 MCP tools (chime_status, chime_list_sounds, chime_set_per_agent_sound, chime_set_all_complete_sound, chime_set_volume, chime_enable, chime_disable, chime_test, chime_reset_active). macOS only.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Memory compression system for Claude Code - persist context across sessions
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses