Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions bin/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Scripts and utilities. Most are wrappers or helpers used by other scripts and ho
- `bin/shell`: Helper for shell-related operations
- `bin/qmd`: Runs the qmd semantic-search CLI (`@tobilu/qmd` via npx) under a pinned Node version with `mise exec`. Locates mise itself so it works under launchd (no PATH/mise activation). Used by the qmd-refresh and qmd-mcp LaunchAgents. Override version with `QMD_NODE_VERSION` (default `24`). The qmd-mcp agent runs `qmd mcp --http --port 8181` (localhost-only HTTP MCP server); register with Claude via `claude mcp add --transport http qmd http://localhost:8181/mcp --scope user`.
- `bin/safari-reading-list`: Exports Safari's Reading List by parsing `~/Library/Safari/Bookmarks.plist` directly (stdlib `plistlib`, no deps). Requires exactly one mode flag -- `--all`, `--read`, `--unread`, or `--debug` (dumps one raw item's plist keys for troubleshooting); running with none prints usage. Human-readable title/url list by default, `--json` for full JSON (title, url, preview, date_added, unread). Requires Full Disk Access for the terminal app running it -- macOS TCC blocks reading Safari's data otherwise.
- `bin/yt-infographics`: Pulls everything worth summarizing out of a video (YouTube or any yt-dlp-supported source) -- spoken transcript plus clean on-screen infographic/slide text -- merged into one chronological `full_context.md`. A self-contained `uv run --script` (PEP 723 inline deps: `claude-agent-sdk`, `yt-dlp`, `imageio-ffmpeg`, `rapidocr-onnxruntime`, `wordfreq`); no `brew install` needed beyond `uv` itself and a logged-in `claude` CLI. Pipeline: yt-dlp downloads video + captions -> ffmpeg scene-change detection extracts keyframes -> RapidOCR does a cheap first-pass OCR on every frame -> a word-frequency heuristic triages real slide text vs incidental HUD/logo noise -> near-duplicate frames (same slide re-triggering a scene cut) collapse via recognized-word-set overlap -> each surviving frame gets a clean re-transcription via Claude vision, since OCR still mangles colored/underlined text. `./bin/yt-infographics "<url>" --out-dir ./out`; `--skip-download` reuses an existing `video.mp4`/transcript for iterating on later stages; `--no-transcript` for infographics only.

## Spotlight Management

Expand Down
Loading
Loading