Bitterbot is a local-first personal AI agent that runs on a user’s devices, keeps persistent memories, performs tasks, and can exchange reusable skills with other agents. It is intended for people who want a personal assistant that remains available across conversations and activities. The catalogue entries provide instructions and agents for working with Bitterbot.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/bitterbot-ai/bitterbot-desktop/bluclinpx skills add Bitterbot-AI/bitterbot-desktop --skill blucligit clone --depth 1 https://github.com/Bitterbot-AI/bitterbot-desktopWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/bitterbot-ai/bitterbot-desktop/blucli)<a href="https://agentmods.dev/skills/bitterbot-ai/bitterbot-desktop/blucli"><img src="https://agentmods.dev/badge/skills/bitterbot-ai/bitterbot-desktop/blucli.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00019 | $0.00278 |
| Opus 5 | $0.00010 | $0.00139 |
| Sonnet 5 | $0.00004 | $0.00056 |
| Haiku 4.5 | $0.00002 | $0.00028 |
Grade A, and why
blucli scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
86% identical to blucli — 4 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
What it actually says
blucli (blu)
Use blu to control Bluesound/NAD players.
Quick start
blu devices(pick target)blu --device <id> statusblu play|pause|stopblu volume set 15
Target selection (in priority order)
--device <id|name|alias>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.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 48 lines · 19 tokens per session scan A 3796a724b228
blucli is a skill published in the GitHub repository Bitterbot-AI/bitterbot-desktop (2,459 stars, last pushed yesterday), licensed MIT. It adds 19 tokens to every session and 278 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. It is 86% identical to blucli, differing in 4 lines, and is treated as a copy.
Other skills, from other repositories
image-prompt-cinematography
Cinematic image and video prompt discipline.
oc-dossier
OC / 角色档案 / 人物档案的全生命周期技能(对应 HMA「原创角色」命名空间)。覆盖两个互补入口: (A)存角色——用户丢来文字 / 文件说"把这个角色存下来""从书里摘个人物"时,先跑 occlassify.py 拿确定性 verdict,再分流:structured→dossierbuild.py 自动切片落库;ambiguous→AI 按三层铁律理解抽取落库;两路落库后都刷 ocregistry 快照。 (B)唤醒角色——对话里叫到已落库 OC 的名字 / 代号并像对其说话时,用 ocregistry.py find 确定性解析到基础包,进入角色扮演,按需惰性召回故事 / 拓展包。 三层铁律:① 基础包必有且仅 1…
aimh-worldbook
AIMH 的「世界书拆解器」可选技能。当 AI 在会话中阅读/处理一篇超长文本(书籍 / 长篇资料,字数达几万级, 超过阈值导致 token 消耗过大)时,主动回问用户是否需要把该文本拆解为一套结构化「世界书」 (world bible)——即作家创作前脑中那本固定的作品世界设定集:人物卡、地点卡、时间线、概念/主题卡、 故事线、章节索引。拆解产物是一组互相关联的 AIMH 包(概览包 + 分章包 + 人物/概念聚合包), 全部遵循 FM-V2 契约、确定性落盘、不幻觉。 何时用(命中即加载): - 触发条件:AI 正要读/已读入一篇超长文本(书籍 / 长篇资料,字数达几万级)(默认阈值见下「触发与回问」),…
skin-creator
Create and apply a two-asset LobsterAI visual skin from the user's style description. Use only when the AI Skin Designer kit supplies the structured skinpack workflow marker; do not use for ordinary theme or image requests.
music-search
Search cloud drives for downloadable music resources (songs, albums, lossless audio). Use this skill when the user wants to download a specific song or album. Do NOT use for general music information, lyrics, or recommendations.
blucli
BluOS CLI (blu) for discovery, playback, grouping, and volume control of Bluesound and NAD speakers. Use when the user wants to play music, stream audio, control speakers, adjust volume, group or ungroup Bluesound players, search TuneIn radio, or manage multi-room streaming setups.