CLAUDE.md@plugins/asciinema-tools · git:20260812.1b1cc81 · 2026-08-12 · sha256 2d32c26b8145bf5b
CLAUDE.md@plugins/asciinema-tools git:20260812.1b1cc81A
Immutable. This exact content is served forever at /api/v1/blob/2d32c26b8145bf5b.
# asciinema-tools Plugin > Terminal recording automation: asciinema capture, launchd daemon for background chunking, Keychain PAT storage, Pushover notifications, cast conversion, and semantic analysis. **Hub**: [Root CLAUDE.md](../../CLAUDE.md) | **Sibling**: [devops-tools CLAUDE.md](../devops-tools/CLAUDE.md) ## Skills - [analyze](./skills/analyze/SKILL.md) - [asciinema-analyzer](./skills/asciinema-analyzer/SKILL.md) - [asciinema-cast-format](./skills/asciinema-cast-format/SKILL.md) - [asciinema-converter](./skills/asciinema-converter/SKILL.md) - [asciinema-player](./skills/asciinema-player/SKILL.md) - [asciinema-recorder](./skills/asciinema-recorder/SKILL.md) - [asciinema-streaming-backup](./skills/asciinema-streaming-backup/SKILL.md) - [backup](./skills/backup/SKILL.md) - [bootstrap](./skills/bootstrap/SKILL.md) - [convert](./skills/convert/SKILL.md) - [daemon-logs](./skills/daemon-logs/SKILL.md) - [daemon-setup](./skills/daemon-setup/SKILL.md) - [daemon-start](./skills/daemon-start/SKILL.md) - [daemon-status](./skills/daemon-status/SKILL.md) - [daemon-stop](./skills/daemon-stop/SKILL.md) - [finalize](./skills/finalize/SKILL.md) - [format](./skills/format/SKILL.md) - [full-workflow](./skills/full-workflow/SKILL.md) - [tether](./skills/tether/SKILL.md) — renamed from `hooks` to avoid `/hooks` clash - [play](./skills/play/SKILL.md) - [post-session](./skills/post-session/SKILL.md) - [record](./skills/record/SKILL.md) - [setup](./skills/setup/SKILL.md) - [summarize](./skills/summarize/SKILL.md) ## Commands | Command | Purpose | | -------------------------------- | ------------------------------------------ | | `/asciinema-tools:record` | Start terminal recording | | `/asciinema-tools:play` | Play .cast recordings in iTerm2 | | `/asciinema-tools:backup` | Stream-backup to GitHub | | `/asciinema-tools:format` | Reference for .cast format | | `/asciinema-tools:convert` | Convert .cast to .txt | | `/asciinema-tools:analyze` | Semantic analysis of recordings | | `/asciinema-tools:summarize` | AI-powered iterative deep-dive | | `/asciinema-tools:post-session` | Finalize + convert + summarize | | `/asciinema-tools:full-workflow` | Record + backup + convert + analyze | | `/asciinema-tools:bootstrap` | Pre-session setup (runs OUTSIDE Claude) | | `/asciinema-tools:finalize` | Finalize orphaned recordings | | `/asciinema-tools:setup` | Check and install dependencies | | `/asciinema-tools:tether` | Install/uninstall auto-backup hooks | | `/asciinema-tools:daemon-setup` | Set up chunker daemon (interactive wizard) | | `/asciinema-tools:daemon-start` | Start the chunker daemon | | `/asciinema-tools:daemon-stop` | Stop the chunker daemon | | `/asciinema-tools:daemon-status` | Check daemon status | | `/asciinema-tools:daemon-logs` | View chunker daemon logs | ## Analysis Pipeline | Tier | Tool | Speed (4MB) | Use Case | | ---- | ------- | ----------- | ------------------------- | | 1 | ripgrep | 50-200ms | Curated keyword search | | 2 | YAKE | 1-5s | Auto-discover keywords | | 3 | TF-IDF | 5-30s | Topic modeling (optional) | ## Shell access (issue #98) Several skills (analyze, asciinema-analyzer, asciinema-cast-format, asciinema-converter, asciinema-player, plus the daemon/recorder helpers) declare broad `Bash` in `allowed-tools` — **by design**. These are local recording/conversion tools that invoke `asciinema`, `agg`, `ffmpeg`, ripgrep, and other varied commands, so a scoped `Bash(cmd:*)` allowlist would be brittle and high-maintenance. Note that `allowed-tools` gates _capability_, not auto-approval: every command still goes through the normal Claude Code permission prompts unless the operator has explicitly allowlisted it in settings. An external scanner flagged this as "unrestricted shell approval" (#98); it is intentional, not a defect.