From 087b195b4c43477adaf5df9f9e0797a6e7ddf6d0 Mon Sep 17 00:00:00 2001 From: Harivansh Rathi Date: Mon, 19 Jan 2026 01:14:08 -0500 Subject: [PATCH] remove --- skill-index/skills/1password/SKILL.md | 53 -- .../1password/references/cli-examples.md | 29 -- .../1password/references/get-started.md | 17 - skill-index/skills/apple-notes/SKILL.md | 50 -- skill-index/skills/apple-reminders/SKILL.md | 67 --- skill-index/skills/bear-notes/SKILL.md | 79 --- skill-index/skills/blogwatcher/SKILL.md | 46 -- skill-index/skills/blucli/SKILL.md | 27 - skill-index/skills/camsnap/SKILL.md | 25 - skill-index/skills/discord/SKILL.md | 474 ------------------ skill-index/skills/eightctl/SKILL.md | 29 -- skill-index/skills/food-order/SKILL.md | 41 -- skill-index/skills/gemini/SKILL.md | 23 - skill-index/skills/gifgrep/SKILL.md | 47 -- skill-index/skills/github/SKILL.md | 47 -- skill-index/skills/gog/SKILL.md | 90 ---- skill-index/skills/goplaces/SKILL.md | 30 -- skill-index/skills/himalaya/SKILL.md | 217 -------- .../himalaya/references/configuration.md | 174 ------- .../references/message-composition.md | 182 ------- skill-index/skills/imsg/SKILL.md | 25 - .../skills/local-places/SERVER_README.md | 101 ---- skill-index/skills/local-places/SKILL.md | 91 ---- .../skills/local-places/pyproject.toml | 27 - .../local-places/src/local_places/__init__.py | 2 - .../src/local_places/google_places.py | 314 ------------ .../local-places/src/local_places/main.py | 65 --- .../local-places/src/local_places/schemas.py | 107 ---- skill-index/skills/mcporter/SKILL.md | 38 -- skill-index/skills/model-usage/SKILL.md | 45 -- .../model-usage/references/codexbar-cli.md | 28 -- .../skills/model-usage/scripts/model_usage.py | 310 ------------ skill-index/skills/nano-banana-pro/SKILL.md | 30 -- .../nano-banana-pro/scripts/generate_image.py | 169 ------- skill-index/skills/nano-pdf/SKILL.md | 20 - skill-index/skills/notion/SKILL.md | 156 ------ skill-index/skills/obsidian/SKILL.md | 55 -- skill-index/skills/openai-image-gen/SKILL.md | 71 --- .../skills/openai-image-gen/scripts/gen.py | 230 --------- .../skills/openai-whisper-api/SKILL.md | 43 -- .../openai-whisper-api/scripts/transcribe.sh | 85 ---- skill-index/skills/openai-whisper/SKILL.md | 19 - skill-index/skills/openhue/SKILL.md | 30 -- skill-index/skills/ordercli/SKILL.md | 47 -- skill-index/skills/peekaboo/SKILL.md | 153 ------ skill-index/skills/sag/SKILL.md | 62 --- skill-index/skills/session-logs/SKILL.md | 95 ---- skill-index/skills/skill-creator/SKILL.md | 371 -------------- skill-index/skills/skill-creator/license.txt | 202 -------- .../skill-creator/scripts/init_skill.py | 378 -------------- .../skill-creator/scripts/package_skill.py | 111 ---- .../skill-creator/scripts/quick_validate.py | 101 ---- skill-index/skills/songsee/SKILL.md | 29 -- skill-index/skills/sonoscli/SKILL.md | 26 - skill-index/skills/spotify-player/SKILL.md | 34 -- skill-index/skills/things-mac/SKILL.md | 61 --- skill-index/skills/trello/SKILL.md | 84 ---- skill-index/skills/video-frames/SKILL.md | 29 -- .../skills/video-frames/scripts/frame.sh | 81 --- skill-index/skills/voice-call/SKILL.md | 35 -- skill-index/skills/wacli/SKILL.md | 42 -- skill-index/skills/weather/SKILL.md | 49 -- 62 files changed, 5798 deletions(-) delete mode 100644 skill-index/skills/1password/SKILL.md delete mode 100644 skill-index/skills/1password/references/cli-examples.md delete mode 100644 skill-index/skills/1password/references/get-started.md delete mode 100644 skill-index/skills/apple-notes/SKILL.md delete mode 100644 skill-index/skills/apple-reminders/SKILL.md delete mode 100644 skill-index/skills/bear-notes/SKILL.md delete mode 100644 skill-index/skills/blogwatcher/SKILL.md delete mode 100644 skill-index/skills/blucli/SKILL.md delete mode 100644 skill-index/skills/camsnap/SKILL.md delete mode 100644 skill-index/skills/discord/SKILL.md delete mode 100644 skill-index/skills/eightctl/SKILL.md delete mode 100644 skill-index/skills/food-order/SKILL.md delete mode 100644 skill-index/skills/gemini/SKILL.md delete mode 100644 skill-index/skills/gifgrep/SKILL.md delete mode 100644 skill-index/skills/github/SKILL.md delete mode 100644 skill-index/skills/gog/SKILL.md delete mode 100644 skill-index/skills/goplaces/SKILL.md delete mode 100644 skill-index/skills/himalaya/SKILL.md delete mode 100644 skill-index/skills/himalaya/references/configuration.md delete mode 100644 skill-index/skills/himalaya/references/message-composition.md delete mode 100644 skill-index/skills/imsg/SKILL.md delete mode 100644 skill-index/skills/local-places/SERVER_README.md delete mode 100644 skill-index/skills/local-places/SKILL.md delete mode 100644 skill-index/skills/local-places/pyproject.toml delete mode 100644 skill-index/skills/local-places/src/local_places/__init__.py delete mode 100644 skill-index/skills/local-places/src/local_places/google_places.py delete mode 100644 skill-index/skills/local-places/src/local_places/main.py delete mode 100644 skill-index/skills/local-places/src/local_places/schemas.py delete mode 100644 skill-index/skills/mcporter/SKILL.md delete mode 100644 skill-index/skills/model-usage/SKILL.md delete mode 100644 skill-index/skills/model-usage/references/codexbar-cli.md delete mode 100644 skill-index/skills/model-usage/scripts/model_usage.py delete mode 100644 skill-index/skills/nano-banana-pro/SKILL.md delete mode 100755 skill-index/skills/nano-banana-pro/scripts/generate_image.py delete mode 100644 skill-index/skills/nano-pdf/SKILL.md delete mode 100644 skill-index/skills/notion/SKILL.md delete mode 100644 skill-index/skills/obsidian/SKILL.md delete mode 100644 skill-index/skills/openai-image-gen/SKILL.md delete mode 100644 skill-index/skills/openai-image-gen/scripts/gen.py delete mode 100644 skill-index/skills/openai-whisper-api/SKILL.md delete mode 100644 skill-index/skills/openai-whisper-api/scripts/transcribe.sh delete mode 100644 skill-index/skills/openai-whisper/SKILL.md delete mode 100644 skill-index/skills/openhue/SKILL.md delete mode 100644 skill-index/skills/ordercli/SKILL.md delete mode 100644 skill-index/skills/peekaboo/SKILL.md delete mode 100644 skill-index/skills/sag/SKILL.md delete mode 100644 skill-index/skills/session-logs/SKILL.md delete mode 100644 skill-index/skills/skill-creator/SKILL.md delete mode 100644 skill-index/skills/skill-creator/license.txt delete mode 100644 skill-index/skills/skill-creator/scripts/init_skill.py delete mode 100644 skill-index/skills/skill-creator/scripts/package_skill.py delete mode 100644 skill-index/skills/skill-creator/scripts/quick_validate.py delete mode 100644 skill-index/skills/songsee/SKILL.md delete mode 100644 skill-index/skills/sonoscli/SKILL.md delete mode 100644 skill-index/skills/spotify-player/SKILL.md delete mode 100644 skill-index/skills/things-mac/SKILL.md delete mode 100644 skill-index/skills/trello/SKILL.md delete mode 100644 skill-index/skills/video-frames/SKILL.md delete mode 100644 skill-index/skills/video-frames/scripts/frame.sh delete mode 100644 skill-index/skills/voice-call/SKILL.md delete mode 100644 skill-index/skills/wacli/SKILL.md delete mode 100644 skill-index/skills/weather/SKILL.md diff --git a/skill-index/skills/1password/SKILL.md b/skill-index/skills/1password/SKILL.md deleted file mode 100644 index 7bac1be..0000000 --- a/skill-index/skills/1password/SKILL.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -name: 1password -description: Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op. -homepage: https://developer.1password.com/docs/cli/get-started/ -metadata: {"clawdbot":{"emoji":"๐Ÿ”","requires":{"bins":["op"]},"install":[{"id":"brew","kind":"brew","formula":"1password-cli","bins":["op"],"label":"Install 1Password CLI (brew)"}]}} ---- - -# 1Password CLI - -Follow the official CLI get-started steps. Don't guess install commands. - -## References - -- `references/get-started.md` (install + app integration + sign-in flow) -- `references/cli-examples.md` (real `op` examples) - -## Workflow - -1. Check OS + shell. -2. Verify CLI present: `op --version`. -3. Confirm desktop app integration is enabled (per get-started) and the app is unlocked. -4. REQUIRED: create a fresh tmux session for all `op` commands (no direct `op` calls outside tmux). -5. Sign in / authorize inside tmux: `op signin` (expect app prompt). -6. Verify access inside tmux: `op whoami` (must succeed before any secret read). -7. If multiple accounts: use `--account` or `OP_ACCOUNT`. - -## REQUIRED tmux session (T-Max) - -The shell tool uses a fresh TTY per command. To avoid re-prompts and failures, always run `op` inside a dedicated tmux session with a fresh socket/session name. - -Example (see `tmux` skill for socket conventions, do not reuse old session names): - -```bash -SOCKET_DIR="${CLAWDBOT_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/clawdbot-tmux-sockets}" -mkdir -p "$SOCKET_DIR" -SOCKET="$SOCKET_DIR/clawdbot-op.sock" -SESSION="op-auth-$(date +%Y%m%d-%H%M%S)" - -tmux -S "$SOCKET" new -d -s "$SESSION" -n shell -tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op signin --account my.1password.com" Enter -tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op whoami" Enter -tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op vault list" Enter -tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200 -tmux -S "$SOCKET" kill-session -t "$SESSION" -``` - -## Guardrails - -- Never paste secrets into logs, chat, or code. -- Prefer `op run` / `op inject` over writing secrets to disk. -- If sign-in without app integration is needed, use `op account add`. -- If a command returns "account is not signed in", re-run `op signin` inside tmux and authorize in the app. -- Do not run `op` outside tmux; stop and ask if tmux is unavailable. diff --git a/skill-index/skills/1password/references/cli-examples.md b/skill-index/skills/1password/references/cli-examples.md deleted file mode 100644 index c8da097..0000000 --- a/skill-index/skills/1password/references/cli-examples.md +++ /dev/null @@ -1,29 +0,0 @@ -# op CLI examples (from op help) - -## Sign in - -- `op signin` -- `op signin --account ` - -## Read - -- `op read op://app-prod/db/password` -- `op read "op://app-prod/db/one-time password?attribute=otp"` -- `op read "op://app-prod/ssh key/private key?ssh-format=openssh"` -- `op read --out-file ./key.pem op://app-prod/server/ssh/key.pem` - -## Run - -- `export DB_PASSWORD="op://app-prod/db/password"` -- `op run --no-masking -- printenv DB_PASSWORD` -- `op run --env-file="./.env" -- printenv DB_PASSWORD` - -## Inject - -- `echo "db_password: {{ op://app-prod/db/password }}" | op inject` -- `op inject -i config.yml.tpl -o config.yml` - -## Whoami / accounts - -- `op whoami` -- `op account list` diff --git a/skill-index/skills/1password/references/get-started.md b/skill-index/skills/1password/references/get-started.md deleted file mode 100644 index 3c60f75..0000000 --- a/skill-index/skills/1password/references/get-started.md +++ /dev/null @@ -1,17 +0,0 @@ -# 1Password CLI get-started (summary) - -- Works on macOS, Windows, and Linux. - - macOS/Linux shells: bash, zsh, sh, fish. - - Windows shell: PowerShell. -- Requires a 1Password subscription and the desktop app to use app integration. -- macOS requirement: Big Sur 11.0.0 or later. -- Linux app integration requires PolKit + an auth agent. -- Install the CLI per the official doc for your OS. -- Enable desktop app integration in the 1Password app: - - Open and unlock the app, then select your account/collection. - - macOS: Settings > Developer > Integrate with 1Password CLI (Touch ID optional). - - Windows: turn on Windows Hello, then Settings > Developer > Integrate. - - Linux: Settings > Security > Unlock using system authentication, then Settings > Developer > Integrate. -- After integration, run any command to sign in (example in docs: `op vault list`). -- If multiple accounts: use `op signin` to pick one, or `--account` / `OP_ACCOUNT`. -- For non-integration auth, use `op account add`. diff --git a/skill-index/skills/apple-notes/SKILL.md b/skill-index/skills/apple-notes/SKILL.md deleted file mode 100644 index 441e226..0000000 --- a/skill-index/skills/apple-notes/SKILL.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -name: apple-notes -description: Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks Clawdbot to add a note, list notes, search notes, or manage note folders. -homepage: https://github.com/antoniorodr/memo -metadata: {"clawdbot":{"emoji":"๐Ÿ“","os":["darwin"],"requires":{"bins":["memo"]},"install":[{"id":"brew","kind":"brew","formula":"antoniorodr/memo/memo","bins":["memo"],"label":"Install memo via Homebrew"}]}} ---- - -# Apple Notes CLI - -Use `memo notes` to manage Apple Notes directly from the terminal. Create, view, edit, delete, search, move notes between folders, and export to HTML/Markdown. - -Setup -- Install (Homebrew): `brew tap antoniorodr/memo && brew install antoniorodr/memo/memo` -- Manual (pip): `pip install .` (after cloning the repo) -- macOS-only; if prompted, grant Automation access to Notes.app. - -View Notes -- List all notes: `memo notes` -- Filter by folder: `memo notes -f "Folder Name"` -- Search notes (fuzzy): `memo notes -s "query"` - -Create Notes -- Add a new note: `memo notes -a` - - Opens an interactive editor to compose the note. -- Quick add with title: `memo notes -a "Note Title"` - -Edit Notes -- Edit existing note: `memo notes -e` - - Interactive selection of note to edit. - -Delete Notes -- Delete a note: `memo notes -d` - - Interactive selection of note to delete. - -Move Notes -- Move note to folder: `memo notes -m` - - Interactive selection of note and destination folder. - -Export Notes -- Export to HTML/Markdown: `memo notes -ex` - - Exports selected note; uses Mistune for markdown processing. - -Limitations -- Cannot edit notes containing images or attachments. -- Interactive prompts may require terminal access. - -Notes -- macOS-only. -- Requires Apple Notes.app to be accessible. -- For automation, grant permissions in System Settings > Privacy & Security > Automation. diff --git a/skill-index/skills/apple-reminders/SKILL.md b/skill-index/skills/apple-reminders/SKILL.md deleted file mode 100644 index 07e5e92..0000000 --- a/skill-index/skills/apple-reminders/SKILL.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -name: apple-reminders -description: Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output. -homepage: https://github.com/steipete/remindctl -metadata: {"clawdbot":{"emoji":"โฐ","os":["darwin"],"requires":{"bins":["remindctl"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/remindctl","bins":["remindctl"],"label":"Install remindctl via Homebrew"}]}} ---- - -# Apple Reminders CLI (remindctl) - -Use `remindctl` to manage Apple Reminders directly from the terminal. It supports list filtering, date-based views, and scripting output. - -Setup -- Install (Homebrew): `brew install steipete/tap/remindctl` -- From source: `pnpm install && pnpm build` (binary at `./bin/remindctl`) -- macOS-only; grant Reminders permission when prompted. - -Permissions -- Check status: `remindctl status` -- Request access: `remindctl authorize` - -View Reminders -- Default (today): `remindctl` -- Today: `remindctl today` -- Tomorrow: `remindctl tomorrow` -- Week: `remindctl week` -- Overdue: `remindctl overdue` -- Upcoming: `remindctl upcoming` -- Completed: `remindctl completed` -- All: `remindctl all` -- Specific date: `remindctl 2026-01-04` - -Manage Lists -- List all lists: `remindctl list` -- Show list: `remindctl list Work` -- Create list: `remindctl list Projects --create` -- Rename list: `remindctl list Work --rename Office` -- Delete list: `remindctl list Work --delete` - -Create Reminders -- Quick add: `remindctl add "Buy milk"` -- With list + due: `remindctl add --title "Call mom" --list Personal --due tomorrow` - -Edit Reminders -- Edit title/due: `remindctl edit 1 --title "New title" --due 2026-01-04` - -Complete Reminders -- Complete by id: `remindctl complete 1 2 3` - -Delete Reminders -- Delete by id: `remindctl delete 4A83 --force` - -Output Formats -- JSON (scripting): `remindctl today --json` -- Plain TSV: `remindctl today --plain` -- Counts only: `remindctl today --quiet` - -Date Formats -Accepted by `--due` and date filters: -- `today`, `tomorrow`, `yesterday` -- `YYYY-MM-DD` -- `YYYY-MM-DD HH:mm` -- ISO 8601 (`2026-01-04T12:34:56Z`) - -Notes -- macOS-only. -- If access is denied, enable Terminal/remindctl in System Settings โ†’ Privacy & Security โ†’ Reminders. -- If running over SSH, grant access on the Mac that runs the command. diff --git a/skill-index/skills/bear-notes/SKILL.md b/skill-index/skills/bear-notes/SKILL.md deleted file mode 100644 index fe4d716..0000000 --- a/skill-index/skills/bear-notes/SKILL.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -name: bear-notes -description: Create, search, and manage Bear notes via grizzly CLI. -homepage: https://bear.app -metadata: {"clawdbot":{"emoji":"๐Ÿป","os":["darwin"],"requires":{"bins":["grizzly"]},"install":[{"id":"go","kind":"go","module":"github.com/tylerwince/grizzly/cmd/grizzly@latest","bins":["grizzly"],"label":"Install grizzly (go)"}]}} ---- - -# Bear Notes - -Use `grizzly` to create, read, and manage notes in Bear on macOS. - -Requirements -- Bear app installed and running -- For some operations (add-text, tags, open-note --selected), a Bear app token (stored in `~/.config/grizzly/token`) - -## Getting a Bear Token - -For operations that require a token (add-text, tags, open-note --selected), you need an authentication token: -1. Open Bear โ†’ Help โ†’ API Token โ†’ Copy Token -2. Save it: `echo "YOUR_TOKEN" > ~/.config/grizzly/token` - -## Common Commands - -Create a note -```bash -echo "Note content here" | grizzly create --title "My Note" --tag work -grizzly create --title "Quick Note" --tag inbox < /dev/null -``` - -Open/read a note by ID -```bash -grizzly open-note --id "NOTE_ID" --enable-callback --json -``` - -Append text to a note -```bash -echo "Additional content" | grizzly add-text --id "NOTE_ID" --mode append --token-file ~/.config/grizzly/token -``` - -List all tags -```bash -grizzly tags --enable-callback --json --token-file ~/.config/grizzly/token -``` - -Search notes (via open-tag) -```bash -grizzly open-tag --name "work" --enable-callback --json -``` - -## Options - -Common flags: -- `--dry-run` โ€” Preview the URL without executing -- `--print-url` โ€” Show the x-callback-url -- `--enable-callback` โ€” Wait for Bear's response (needed for reading data) -- `--json` โ€” Output as JSON (when using callbacks) -- `--token-file PATH` โ€” Path to Bear API token file - -## Configuration - -Grizzly reads config from (in priority order): -1. CLI flags -2. Environment variables (`GRIZZLY_TOKEN_FILE`, `GRIZZLY_CALLBACK_URL`, `GRIZZLY_TIMEOUT`) -3. `.grizzly.toml` in current directory -4. `~/.config/grizzly/config.toml` - -Example `~/.config/grizzly/config.toml`: -```toml -token_file = "~/.config/grizzly/token" -callback_url = "http://127.0.0.1:42123/success" -timeout = "5s" -``` - -## Notes - -- Bear must be running for commands to work -- Note IDs are Bear's internal identifiers (visible in note info or via callbacks) -- Use `--enable-callback` when you need to read data back from Bear -- Some operations require a valid token (add-text, tags, open-note --selected) diff --git a/skill-index/skills/blogwatcher/SKILL.md b/skill-index/skills/blogwatcher/SKILL.md deleted file mode 100644 index f4b03dc..0000000 --- a/skill-index/skills/blogwatcher/SKILL.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -name: blogwatcher -description: Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI. -homepage: https://github.com/Hyaxia/blogwatcher -metadata: {"clawdbot":{"emoji":"๐Ÿ“ฐ","requires":{"bins":["blogwatcher"]},"install":[{"id":"go","kind":"go","module":"github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest","bins":["blogwatcher"],"label":"Install blogwatcher (go)"}]}} ---- - -# blogwatcher - -Track blog and RSS/Atom feed updates with the `blogwatcher` CLI. - -Install -- Go: `go install github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest` - -Quick start -- `blogwatcher --help` - -Common commands -- Add a blog: `blogwatcher add "My Blog" https://example.com` -- List blogs: `blogwatcher blogs` -- Scan for updates: `blogwatcher scan` -- List articles: `blogwatcher articles` -- Mark an article read: `blogwatcher read 1` -- Mark all articles read: `blogwatcher read-all` -- Remove a blog: `blogwatcher remove "My Blog"` - -Example output -``` -$ blogwatcher blogs -Tracked blogs (1): - - xkcd - URL: https://xkcd.com -``` -``` -$ blogwatcher scan -Scanning 1 blog(s)... - - xkcd - Source: RSS | Found: 4 | New: 4 - -Found 4 new article(s) total! -``` - -Notes -- Use `blogwatcher --help` to discover flags and options. diff --git a/skill-index/skills/blucli/SKILL.md b/skill-index/skills/blucli/SKILL.md deleted file mode 100644 index e100454..0000000 --- a/skill-index/skills/blucli/SKILL.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -name: blucli -description: BluOS CLI (blu) for discovery, playback, grouping, and volume. -homepage: https://blucli.sh -metadata: {"clawdbot":{"emoji":"๐Ÿซ","requires":{"bins":["blu"]},"install":[{"id":"go","kind":"go","module":"github.com/steipete/blucli/cmd/blu@latest","bins":["blu"],"label":"Install blucli (go)"}]}} ---- - -# blucli (blu) - -Use `blu` to control Bluesound/NAD players. - -Quick start -- `blu devices` (pick target) -- `blu --device status` -- `blu play|pause|stop` -- `blu volume set 15` - -Target selection (in priority order) -- `--device ` -- `BLU_DEVICE` -- config default (if set) - -Common tasks -- Grouping: `blu group status|add|remove` -- TuneIn search/play: `blu tunein search "query"`, `blu tunein play "query"` - -Prefer `--json` for scripts. Confirm the target device before changing playback. diff --git a/skill-index/skills/camsnap/SKILL.md b/skill-index/skills/camsnap/SKILL.md deleted file mode 100644 index c158b1c..0000000 --- a/skill-index/skills/camsnap/SKILL.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -name: camsnap -description: Capture frames or clips from RTSP/ONVIF cameras. -homepage: https://camsnap.ai -metadata: {"clawdbot":{"emoji":"๐Ÿ“ธ","requires":{"bins":["camsnap"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/camsnap","bins":["camsnap"],"label":"Install camsnap (brew)"}]}} ---- - -# camsnap - -Use `camsnap` to grab snapshots, clips, or motion events from configured cameras. - -Setup -- Config file: `~/.config/camsnap/config.yaml` -- Add camera: `camsnap add --name kitchen --host 192.168.0.10 --user user --pass pass` - -Common commands -- Discover: `camsnap discover --info` -- Snapshot: `camsnap snap kitchen --out shot.jpg` -- Clip: `camsnap clip kitchen --dur 5s --out clip.mp4` -- Motion watch: `camsnap watch kitchen --threshold 0.2 --action '...'` -- Doctor: `camsnap doctor --probe` - -Notes -- Requires `ffmpeg` on PATH. -- Prefer a short test capture before longer clips. diff --git a/skill-index/skills/discord/SKILL.md b/skill-index/skills/discord/SKILL.md deleted file mode 100644 index 0b64f14..0000000 --- a/skill-index/skills/discord/SKILL.md +++ /dev/null @@ -1,474 +0,0 @@ ---- -name: discord -description: Use when you need to control Discord from Clawdbot via the discord tool: send messages, react, post or upload stickers, upload emojis, run polls, manage threads/pins/search, create/edit/delete channels and categories, fetch permissions or member/role/channel info, or handle moderation actions in Discord DMs or channels. ---- - -# Discord Actions - -## Overview - -Use `discord` to manage messages, reactions, threads, polls, and moderation. You can disable groups via `discord.actions.*` (defaults to enabled, except roles/moderation). The tool uses the bot token configured for Clawdbot. - -## Inputs to collect - -- For reactions: `channelId`, `messageId`, and an `emoji`. -- For fetchMessage: `guildId`, `channelId`, `messageId`, or a `messageLink` like `https://discord.com/channels///`. -- For stickers/polls/sendMessage: a `to` target (`channel:` or `user:`). Optional `content` text. -- Polls also need a `question` plus 2โ€“10 `answers`. -- For media: `mediaUrl` with `file:///path` for local files or `https://...` for remote. -- For emoji uploads: `guildId`, `name`, `mediaUrl`, optional `roleIds` (limit 256KB, PNG/JPG/GIF). -- For sticker uploads: `guildId`, `name`, `description`, `tags`, `mediaUrl` (limit 512KB, PNG/APNG/Lottie JSON). - -Message context lines include `discord message id` and `channel` fields you can reuse directly. - -**Note:** `sendMessage` uses `to: "channel:"` format, not `channelId`. Other actions like `react`, `readMessages`, `editMessage` use `channelId` directly. -**Note:** `fetchMessage` accepts message IDs or full links like `https://discord.com/channels///`. - -## Actions - -### React to a message - -```json -{ - "action": "react", - "channelId": "123", - "messageId": "456", - "emoji": "โœ…" -} -``` - -### List reactions + users - -```json -{ - "action": "reactions", - "channelId": "123", - "messageId": "456", - "limit": 100 -} -``` - -### Send a sticker - -```json -{ - "action": "sticker", - "to": "channel:123", - "stickerIds": ["9876543210"], - "content": "Nice work!" -} -``` - -- Up to 3 sticker IDs per message. -- `to` can be `user:` for DMs. - -### Upload a custom emoji - -```json -{ - "action": "emojiUpload", - "guildId": "999", - "name": "party_blob", - "mediaUrl": "file:///tmp/party.png", - "roleIds": ["222"] -} -``` - -- Emoji images must be PNG/JPG/GIF and <= 256KB. -- `roleIds` is optional; omit to make the emoji available to everyone. - -### Upload a sticker - -```json -{ - "action": "stickerUpload", - "guildId": "999", - "name": "clawdbot_wave", - "description": "Clawdbot waving hello", - "tags": "๐Ÿ‘‹", - "mediaUrl": "file:///tmp/wave.png" -} -``` - -- Stickers require `name`, `description`, and `tags`. -- Uploads must be PNG/APNG/Lottie JSON and <= 512KB. - -### Create a poll - -```json -{ - "action": "poll", - "to": "channel:123", - "question": "Lunch?", - "answers": ["Pizza", "Sushi", "Salad"], - "allowMultiselect": false, - "durationHours": 24, - "content": "Vote now" -} -``` - -- `durationHours` defaults to 24; max 32 days (768 hours). - -### Check bot permissions for a channel - -```json -{ - "action": "permissions", - "channelId": "123" -} -``` - -## Ideas to try - -- React with โœ…/โš ๏ธ to mark status updates. -- Post a quick poll for release decisions or meeting times. -- Send celebratory stickers after successful deploys. -- Upload new emojis/stickers for release moments. -- Run weekly โ€œpriority checkโ€ polls in team channels. -- DM stickers as acknowledgements when a userโ€™s request is completed. - -## Action gating - -Use `discord.actions.*` to disable action groups: -- `reactions` (react + reactions list + emojiList) -- `stickers`, `polls`, `permissions`, `messages`, `threads`, `pins`, `search` -- `emojiUploads`, `stickerUploads` -- `memberInfo`, `roleInfo`, `channelInfo`, `voiceStatus`, `events` -- `roles` (role add/remove, default `false`) -- `channels` (channel/category create/edit/delete/move, default `false`) -- `moderation` (timeout/kick/ban, default `false`) -### Read recent messages - -```json -{ - "action": "readMessages", - "channelId": "123", - "limit": 20 -} -``` - -### Fetch a single message - -```json -{ - "action": "fetchMessage", - "guildId": "999", - "channelId": "123", - "messageId": "456" -} -``` - -```json -{ - "action": "fetchMessage", - "messageLink": "https://discord.com/channels/999/123/456" -} -``` - -### Send/edit/delete a message - -```json -{ - "action": "sendMessage", - "to": "channel:123", - "content": "Hello from Clawdbot" -} -``` - -**With media attachment:** - -```json -{ - "action": "sendMessage", - "to": "channel:123", - "content": "Check out this audio!", - "mediaUrl": "file:///tmp/audio.mp3" -} -``` - -- `to` uses format `channel:` or `user:` for DMs (not `channelId`!) -- `mediaUrl` supports local files (`file:///path/to/file`) and remote URLs (`https://...`) -- Optional `replyTo` with a message ID to reply to a specific message - -```json -{ - "action": "editMessage", - "channelId": "123", - "messageId": "456", - "content": "Fixed typo" -} -``` - -```json -{ - "action": "deleteMessage", - "channelId": "123", - "messageId": "456" -} -``` - -### Threads - -```json -{ - "action": "threadCreate", - "channelId": "123", - "name": "Bug triage", - "messageId": "456" -} -``` - -```json -{ - "action": "threadList", - "guildId": "999" -} -``` - -```json -{ - "action": "threadReply", - "channelId": "777", - "content": "Replying in thread" -} -``` - -### Pins - -```json -{ - "action": "pinMessage", - "channelId": "123", - "messageId": "456" -} -``` - -```json -{ - "action": "listPins", - "channelId": "123" -} -``` - -### Search messages - -```json -{ - "action": "searchMessages", - "guildId": "999", - "content": "release notes", - "channelIds": ["123", "456"], - "limit": 10 -} -``` - -### Member + role info - -```json -{ - "action": "memberInfo", - "guildId": "999", - "userId": "111" -} -``` - -```json -{ - "action": "roleInfo", - "guildId": "999" -} -``` - -### List available custom emojis - -```json -{ - "action": "emojiList", - "guildId": "999" -} -``` - -### Role changes (disabled by default) - -```json -{ - "action": "roleAdd", - "guildId": "999", - "userId": "111", - "roleId": "222" -} -``` - -### Channel info - -```json -{ - "action": "channelInfo", - "channelId": "123" -} -``` - -```json -{ - "action": "channelList", - "guildId": "999" -} -``` - -### Channel management (disabled by default) - -Create, edit, delete, and move channels and categories. Enable via `discord.actions.channels: true`. - -**Create a text channel:** - -```json -{ - "action": "channelCreate", - "guildId": "999", - "name": "general-chat", - "type": 0, - "parentId": "888", - "topic": "General discussion" -} -``` - -- `type`: Discord channel type integer (0 = text, 2 = voice, 4 = category; other values supported) -- `parentId`: category ID to nest under (optional) -- `topic`, `position`, `nsfw`: optional - -**Create a category:** - -```json -{ - "action": "categoryCreate", - "guildId": "999", - "name": "Projects" -} -``` - -**Edit a channel:** - -```json -{ - "action": "channelEdit", - "channelId": "123", - "name": "new-name", - "topic": "Updated topic" -} -``` - -- Supports `name`, `topic`, `position`, `parentId` (null to remove from category), `nsfw`, `rateLimitPerUser` - -**Move a channel:** - -```json -{ - "action": "channelMove", - "guildId": "999", - "channelId": "123", - "parentId": "888", - "position": 2 -} -``` - -- `parentId`: target category (null to move to top level) - -**Delete a channel:** - -```json -{ - "action": "channelDelete", - "channelId": "123" -} -``` - -**Edit/delete a category:** - -```json -{ - "action": "categoryEdit", - "categoryId": "888", - "name": "Renamed Category" -} -``` - -```json -{ - "action": "categoryDelete", - "categoryId": "888" -} -``` - -### Voice status - -```json -{ - "action": "voiceStatus", - "guildId": "999", - "userId": "111" -} -``` - -### Scheduled events - -```json -{ - "action": "eventList", - "guildId": "999" -} -``` - -### Moderation (disabled by default) - -```json -{ - "action": "timeout", - "guildId": "999", - "userId": "111", - "durationMinutes": 10 -} -``` - -## Discord Writing Style Guide - -**Keep it conversational!** Discord is a chat platform, not documentation. - -### Do -- Short, punchy messages (1-3 sentences ideal) -- Multiple quick replies > one wall of text -- Use emoji for tone/emphasis ๐Ÿฆž -- Lowercase casual style is fine -- Break up info into digestible chunks -- Match the energy of the conversation - -### Don't -- No markdown tables (Discord renders them as ugly raw `| text |`) -- No `## Headers` for casual chat (use **bold** or CAPS for emphasis) -- Avoid multi-paragraph essays -- Don't over-explain simple things -- Skip the "I'd be happy to help!" fluff - -### Formatting that works -- **bold** for emphasis -- `code` for technical terms -- Lists for multiple items -- > quotes for referencing -- Wrap multiple links in `<>` to suppress embeds - -### Example transformations - -โŒ Bad: -``` -I'd be happy to help with that! Here's a comprehensive overview of the versioning strategies available: - -## Semantic Versioning -Semver uses MAJOR.MINOR.PATCH format where... - -## Calendar Versioning -CalVer uses date-based versions like... -``` - -โœ… Good: -``` -versioning options: semver (1.2.3), calver (2026.01.04), or yolo (`latest` forever). what fits your release cadence? -``` diff --git a/skill-index/skills/eightctl/SKILL.md b/skill-index/skills/eightctl/SKILL.md deleted file mode 100644 index aeffa0b..0000000 --- a/skill-index/skills/eightctl/SKILL.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -name: eightctl -description: Control Eight Sleep pods (status, temperature, alarms, schedules). -homepage: https://eightctl.sh -metadata: {"clawdbot":{"emoji":"๐ŸŽ›๏ธ","requires":{"bins":["eightctl"]},"install":[{"id":"go","kind":"go","module":"github.com/steipete/eightctl/cmd/eightctl@latest","bins":["eightctl"],"label":"Install eightctl (go)"}]}} ---- - -# eightctl - -Use `eightctl` for Eight Sleep pod control. Requires auth. - -Auth -- Config: `~/.config/eightctl/config.yaml` -- Env: `EIGHTCTL_EMAIL`, `EIGHTCTL_PASSWORD` - -Quick start -- `eightctl status` -- `eightctl on|off` -- `eightctl temp 20` - -Common tasks -- Alarms: `eightctl alarm list|create|dismiss` -- Schedules: `eightctl schedule list|create|update` -- Audio: `eightctl audio state|play|pause` -- Base: `eightctl base info|angle` - -Notes -- API is unofficial and rate-limited; avoid repeated logins. -- Confirm before changing temperature or alarms. diff --git a/skill-index/skills/food-order/SKILL.md b/skill-index/skills/food-order/SKILL.md deleted file mode 100644 index 8e27125..0000000 --- a/skill-index/skills/food-order/SKILL.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -name: food-order -description: Reorder Foodora orders + track ETA/status with ordercli. Never confirm without explicit user approval. Triggers: order food, reorder, track ETA. -homepage: https://ordercli.sh -metadata: {"clawdbot":{"emoji":"๐Ÿฅก","requires":{"bins":["ordercli"]},"install":[{"id":"go","kind":"go","module":"github.com/steipete/ordercli/cmd/ordercli@latest","bins":["ordercli"],"label":"Install ordercli (go)"}]}} ---- - -# Food order (Foodora via ordercli) - -Goal: reorder a previous Foodora order safely (preview first; confirm only on explicit user โ€œyes/confirm/place the orderโ€). - -Hard safety rules -- Never run `ordercli foodora reorder ... --confirm` unless user explicitly confirms placing the order. -- Prefer preview-only steps first; show what will happen; ask for confirmation. -- If user is unsure: stop at preview and ask questions. - -Setup (once) -- Country: `ordercli foodora countries` โ†’ `ordercli foodora config set --country AT` -- Login (password): `ordercli foodora login --email you@example.com --password-stdin` -- Login (no password, preferred): `ordercli foodora session chrome --url https://www.foodora.at/ --profile "Default"` - -Find what to reorder -- Recent list: `ordercli foodora history --limit 10` -- Details: `ordercli foodora history show ` -- If needed (machine-readable): `ordercli foodora history show --json` - -Preview reorder (no cart changes) -- `ordercli foodora reorder ` - -Place reorder (cart change; explicit confirmation required) -- Confirm first, then run: `ordercli foodora reorder --confirm` -- Multiple addresses? Ask user for the right `--address-id` (take from their Foodora account / prior order data) and run: - - `ordercli foodora reorder --confirm --address-id ` - -Track the order -- ETA/status (active list): `ordercli foodora orders` -- Live updates: `ordercli foodora orders --watch` -- Single order detail: `ordercli foodora order ` - -Debug / safe testing -- Use a throwaway config: `ordercli --config /tmp/ordercli.json ...` diff --git a/skill-index/skills/gemini/SKILL.md b/skill-index/skills/gemini/SKILL.md deleted file mode 100644 index 6ef31ba..0000000 --- a/skill-index/skills/gemini/SKILL.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -name: gemini -description: Gemini CLI for one-shot Q&A, summaries, and generation. -homepage: https://ai.google.dev/ -metadata: {"clawdbot":{"emoji":"โ™Š๏ธ","requires":{"bins":["gemini"]},"install":[{"id":"brew","kind":"brew","formula":"gemini-cli","bins":["gemini"],"label":"Install Gemini CLI (brew)"}]}} ---- - -# Gemini CLI - -Use Gemini in one-shot mode with a positional prompt (avoid interactive mode). - -Quick start -- `gemini "Answer this question..."` -- `gemini --model "Prompt..."` -- `gemini --output-format json "Return JSON"` - -Extensions -- List: `gemini --list-extensions` -- Manage: `gemini extensions ` - -Notes -- If auth is required, run `gemini` once interactively and follow the login flow. -- Avoid `--yolo` for safety. diff --git a/skill-index/skills/gifgrep/SKILL.md b/skill-index/skills/gifgrep/SKILL.md deleted file mode 100644 index 6b1ee31..0000000 --- a/skill-index/skills/gifgrep/SKILL.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -name: gifgrep -description: Search GIF providers with CLI/TUI, download results, and extract stills/sheets. -homepage: https://gifgrep.com -metadata: {"clawdbot":{"emoji":"๐Ÿงฒ","requires":{"bins":["gifgrep"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/gifgrep","bins":["gifgrep"],"label":"Install gifgrep (brew)"},{"id":"go","kind":"go","module":"github.com/steipete/gifgrep/cmd/gifgrep@latest","bins":["gifgrep"],"label":"Install gifgrep (go)"}]}} ---- - -# gifgrep - -Use `gifgrep` to search GIF providers (Tenor/Giphy), browse in a TUI, download results, and extract stills or sheets. - -GIF-Grab (gifgrep workflow) -- Search โ†’ preview โ†’ download โ†’ extract (still/sheet) for fast review and sharing. - -Quick start -- `gifgrep cats --max 5` -- `gifgrep cats --format url | head -n 5` -- `gifgrep search --json cats | jq '.[0].url'` -- `gifgrep tui "office handshake"` -- `gifgrep cats --download --max 1 --format url` - -TUI + previews -- TUI: `gifgrep tui "query"` -- CLI still previews: `--thumbs` (Kitty/Ghostty only; still frame) - -Download + reveal -- `--download` saves to `~/Downloads` -- `--reveal` shows the last download in Finder - -Stills + sheets -- `gifgrep still ./clip.gif --at 1.5s -o still.png` -- `gifgrep sheet ./clip.gif --frames 9 --cols 3 -o sheet.png` -- Sheets = single PNG grid of sampled frames (great for quick review, docs, PRs, chat). -- Tune: `--frames` (count), `--cols` (grid width), `--padding` (spacing). - -Providers -- `--source auto|tenor|giphy` -- `GIPHY_API_KEY` required for `--source giphy` -- `TENOR_API_KEY` optional (Tenor demo key used if unset) - -Output -- `--json` prints an array of results (`id`, `title`, `url`, `preview_url`, `tags`, `width`, `height`) -- `--format` for pipe-friendly fields (e.g., `url`) - -Environment tweaks -- `GIFGREP_SOFTWARE_ANIM=1` to force software animation -- `GIFGREP_CELL_ASPECT=0.5` to tweak preview geometry diff --git a/skill-index/skills/github/SKILL.md b/skill-index/skills/github/SKILL.md deleted file mode 100644 index 03b2a00..0000000 --- a/skill-index/skills/github/SKILL.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -name: github -description: "Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries." ---- - -# GitHub Skill - -Use the `gh` CLI to interact with GitHub. Always specify `--repo owner/repo` when not in a git directory, or use URLs directly. - -## Pull Requests - -Check CI status on a PR: -```bash -gh pr checks 55 --repo owner/repo -``` - -List recent workflow runs: -```bash -gh run list --repo owner/repo --limit 10 -``` - -View a run and see which steps failed: -```bash -gh run view --repo owner/repo -``` - -View logs for failed steps only: -```bash -gh run view --repo owner/repo --log-failed -``` - -## API for Advanced Queries - -The `gh api` command is useful for accessing data not available through other subcommands. - -Get PR with specific fields: -```bash -gh api repos/owner/repo/pulls/55 --jq '.title, .state, .user.login' -``` - -## JSON Output - -Most commands support `--json` for structured output. You can use `--jq` to filter: - -```bash -gh issue list --repo owner/repo --json number,title --jq '.[] | "\(.number): \(.title)"' -``` diff --git a/skill-index/skills/gog/SKILL.md b/skill-index/skills/gog/SKILL.md deleted file mode 100644 index 35768e6..0000000 --- a/skill-index/skills/gog/SKILL.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -name: gog -description: Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs. -homepage: https://gogcli.sh -metadata: {"clawdbot":{"emoji":"๐ŸŽฎ","requires":{"bins":["gog"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/gogcli","bins":["gog"],"label":"Install gog (brew)"}]}} ---- - -# gog - -Use `gog` for Gmail/Calendar/Drive/Contacts/Sheets/Docs. Requires OAuth setup. - -Setup (once) -- `gog auth credentials /path/to/client_secret.json` -- `gog auth add you@gmail.com --services gmail,calendar,drive,contacts,sheets,docs` -- `gog auth list` - -Common commands -- Gmail search: `gog gmail search 'newer_than:7d' --max 10` -- Gmail send (plain): `gog gmail send --to a@b.com --subject "Hi" --body "Hello"` -- Gmail send (multi-line): `gog gmail send --to a@b.com --subject "Hi" --body-file ./message.txt` -- Gmail send (stdin): `gog gmail send --to a@b.com --subject "Hi" --body-file -` -- Gmail send (HTML): `gog gmail send --to a@b.com --subject "Hi" --body-html "

Hello

"` -- Gmail draft: `gog gmail drafts create --to a@b.com --subject "Hi" --body-file ./message.txt` -- Gmail send draft: `gog gmail drafts send ` -- Gmail reply: `gog gmail send --to a@b.com --subject "Re: Hi" --body "Reply" --reply-to-message-id ` -- Calendar list events: `gog calendar events --from --to ` -- Calendar create event: `gog calendar create --summary "Title" --from --to ` -- Calendar create with color: `gog calendar create --summary "Title" --from --to --event-color 7` -- Calendar update event: `gog calendar update --summary "New Title" --event-color 4` -- Calendar show colors: `gog calendar colors` -- Drive search: `gog drive search "query" --max 10` -- Contacts: `gog contacts list --max 20` -- Sheets get: `gog sheets get "Tab!A1:D10" --json` -- Sheets update: `gog sheets update "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED` -- Sheets append: `gog sheets append "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS` -- Sheets clear: `gog sheets clear "Tab!A2:Z"` -- Sheets metadata: `gog sheets metadata --json` -- Docs export: `gog docs export --format txt --out /tmp/doc.txt` -- Docs cat: `gog docs cat ` - -Calendar Colors -- Use `gog calendar colors` to see all available event colors (IDs 1-11) -- Add colors to events with `--event-color ` flag -- Event color IDs (from `gog calendar colors` output): - - 1: #a4bdfc - - 2: #7ae7bf - - 3: #dbadff - - 4: #ff887c - - 5: #fbd75b - - 6: #ffb878 - - 7: #46d6db - - 8: #e1e1e1 - - 9: #5484ed - - 10: #51b749 - - 11: #dc2127 - -Email Formatting -- Prefer plain text. Use `--body-file` for multi-paragraph messages (or `--body-file -` for stdin). -- Same `--body-file` pattern works for drafts and replies. -- `--body` does not unescape `\n`. If you need inline newlines, use a heredoc or `$'Line 1\n\nLine 2'`. -- Use `--body-html` only when you need rich formatting. -- HTML tags: `

` for paragraphs, `
` for line breaks, `` for bold, `` for italic, `` for links, `