Agent skill

Buzz Media Attachments

by tonbistudio in tonbistudio/buzz-skills

A skill your agent uses when attaching a local media file to the active Buzz conversation.

MITAuto-check: notes

Install Buzz Media Attachments

skills CLI
$ npx skills add tonbistudio/buzz-skills --skill buzz-media-attachments -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tonbistudio/buzz-skills buzz-media-attachments --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tonbistudio/buzz-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/buzz-media-attachments .claude/skills/buzz-media-attachments && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
buzz-media-attachments
GitHub stars
276
Token cost
~1k tokens
SKILL.md length
385 words
Files
2
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when attaching a local media file to the active Buzz conversation.

  • Works in 6 steps: Verify the source file exists and is… → Find the current Buzz channel UUID from… → Use Buzz's native attachment mechanism → …
  • Attaching a local media file to the active Buzz conversation
  • SKILL.md covers Workflow and Pitfalls
  • Needs BUZZ_PRIVATE_KEY

What it does

Buzz Media Attachments is an agent skill from tonbistudio/buzz-skills. Use when attaching a local media file to the active Buzz conversation. Do not use for general media editing or non-Buzz delivery.

Its SKILL.md is about 1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `evals/evals.json`).

The licence is MIT.

When your agent uses it

  • Attaching a local media file to the active Buzz conversation
  • General media editing
  • Non-Buzz delivery

Example prompts

  • “/buzz-media-attachments”

Requirements

  • Python 3
  • A credential in BUZZ_PRIVATE_KEY

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Verify the source file exists and is readable. Use ffprobe for video metadata when relevant.
  2. Find the current Buzz channel UUID from the live gateway log rather than guessing
  3. Use Buzz's native attachment mechanism
  4. Load Buzz credentials without shell-sourcing .env. BUZZ_AUTH_TAG can contain JSON that shell source mangles. Parse the file with…
  5. If Buzz rejects an MP4, diagnose the returned relay error
  6. Verify success from real output. Only report success when Buzz returns JSON containing

What it can do on your machine

Read from SKILL.md and the folder at commit 3f2d570. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash, python and json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • BUZZ_PRIVATE_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Buzz Media Attachments loads about 1k tokens when it runs. Until then it costs about 38 tokens; SKILL.md has 385 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~38
When it runs · the whole SKILL.md, loaded when a task matches
~1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:36
    Buzz credentials without shell-sourcing `.env`.** `BUZZ_AUTH_TAG` can contain JSON that shell `source` mangles. Parse th
  • NoteMentions a .env fileSKILL.md:44
    env_values(os.path.expanduser("~/.hermes/.env")).items()
  • NoteMentions a .env fileSKILL.md:105
    Never print `BUZZ_PRIVATE_KEY` or other `.env` values.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from tonbistudio/buzz-skills at commit 3f2d570, republished under its MIT licence (© tonbistudio). 385 words, ~1,037 tokens.

Download SKILL.mdSave it as .claude/skills/buzz-media-attachments/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
buzz-media-attachments
description
Use when attaching a local media file to the active Buzz conversation. Do not use for general media editing or non-Buzz delivery.
version
1.0.0

Buzz Media Attachments

Use this workflow when a user asks to post a local media file into the current Buzz conversation and normal MEDIA:/path delivery fails.

Workflow

  1. Verify the source file exists and is readable. Use ffprobe for video metadata when relevant.

  2. Find the current Buzz channel UUID from the live gateway log rather than guessing:

    bash
    # Search ~/.hermes/logs/gateway.log for the user's latest inbound Buzz message.
    # The line contains: platform=buzz ... chat=<CHANNEL_UUID>
  3. Use Buzz's native attachment mechanism:

    bash
    buzz messages send \
      --channel <CHANNEL_UUID> \
      --content - \
      --file /absolute/path/to/file

    --file may be repeated to attach several files to one message.

  4. Load Buzz credentials without shell-sourcing .env. BUZZ_AUTH_TAG can contain JSON that shell source mangles. Parse the file with python-dotenv and pass values through a subprocess environment:

    python
    import os, subprocess
    from dotenv import dotenv_values
    
    env = os.environ.copy()
    env.update({
        k: v for k, v in dotenv_values(os.path.expanduser("~/.hermes/.env")).items()
        if v is not None
    })
    result = subprocess.run(
        ["buzz", "messages", "send",
         "--channel", channel_id,
         "--content", "-",
         "--file", file_path],
        input=caption,
        text=True,
        env=env,
        capture_output=True,
        timeout=180,
    )
  5. If Buzz rejects an MP4, diagnose the returned relay error:

    • moov atom not at front of file (not fast-start): first try remuxing:

      bash
      ffmpeg -y -v error -i input.mp4 -c copy -movflags +faststart output.mp4
    • media contains metadata or a non-canonical metadata channel: use Buzz Desktop's canonical sanitizer settings. A simple stream-copy remux is insufficient because FFmpeg may retain or add forbidden MP4 metadata structures. Fully re-encode exactly as follows:

      bash
      ffmpeg -y -nostdin -loglevel error -protocol_whitelist file,pipe \
        -i input.mp4 \
        -map 0:v:0 -map '0:a:0?' \
        -map_metadata -1 -map_chapters -1 -sn -dn \
        -fflags +bitexact -flags:v +bitexact -flags:a +bitexact \
        -c:v libx264 -preset fast -crf 23 -pix_fmt yuv420p \
        -vf 'pad=ceil(iw/2)*2:ceil(ih/2)*2' \
        -c:a aac -b:a 128k \
        -movflags +faststart -metadata encoder= \
        output.mp4

      This matches block/buzz Desktop's transcode_to_mp4() implementation and produces the canonical H.264/AAC, metadata-free, fast-start MP4 expected by the relay.

    • If canonical MP4 encoding is undesirable, fails, or the user specifically asks for Attach Image, convert a short clip to an animated GIF:

      bash
      ffmpeg -y -v error -i input.mp4 \
        -vf "fps=12,scale=512:-1:flags=lanczos,split[s0][s1];[s0]palettegen=max_colors=128[p];[s1][p]paletteuse=dither=bayer" \
        -loop 0 -map_metadata -1 output.gif

    Upload the resulting MP4 or GIF through buzz messages send --file.

  6. Verify success from real output. Only report success when Buzz returns JSON containing:

    json
    {"accepted": true, "event_id": "..."}
Show full SKILL.md (88 more words)Show less

Pitfalls

  • Plain MEDIA:/absolute/path.mp4 can route through Hermes' generic send_video fallback; Buzz may not implement native video delivery there.
  • Do not claim an attachment worked merely because the gateway accepted the assistant response. Check the Buzz CLI's accepted value and retain the event_id as verification.
  • Never print BUZZ_PRIVATE_KEY or other .env values.
  • Keep converted GIFs in /tmp unless the user requests durable copies; do not modify the source MP4.
  • GIF conversion can increase file size. For long or high-resolution clips, lower fps, scale width, or color count before uploading.

© tonbistudio, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in buzz-media-attachments of tonbistudio/buzz-skills.

  • SKILL.md
  • evals/evals.json

Open the folder on GitHubat commit 3f2d570

Compare with similar skills

Buzz Media Attachments next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Buzz Media Attachments compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Buzz Media Attachments this skilltonbistudio/buzz-skills276—~1kAutomated safety check: NotesMIT
Modeling Conversion MetricsPostHog/posthog40k—~1.4kAutomated safety check: PassCustom licence
Gh Attachsickn33/agentic-awesome-skills47k1 repos~1.6kAutomated safety check: PassMIT
Gh Attachgithub/awesome-copilot40k—~529Automated safety check: PassMIT
Cost Conversationruvnet/ruflo74k—~407Automated safety check: NotesMIT
Conversation Memorydavila7/claude-code-templates33k4 repos~440Automated safety check: PassMIT

Similar skills

  • Official

    Build reusable conversion models — funnel/step conversion rates, drop-off, and time-to-convert — on either PostHog data-warehouse views (HogQL) or an external dbt project.

    40k GitHub stars~1.4k tokensUpdated yesterday
    Data & AnalyticsAuto-check passed
  • Gh Attach

    sickn33/agentic-awesome-skills

    Upload and download GitHub user-attachments (screenshots, PDFs, zips, videos) from the terminal; use when asked to attach or embed a file in a PR, issue, or comment, or download an attachment URL.

    47k GitHub starsUsed in 1 repo~1.6k tokens
    Documents & OfficeAuto-check passed
  • Gh Attach

    github/awesome-copilot

    Official

    Uploads a local file (screenshot, image, PDF, zip, video) to GitHub user-attachments, downloads GitHub user-attachments, and embeds local files in a PR, issue, or comment.

    40k GitHub stars~529 tokensUpdated 2 days ago
    Documents & OfficeAuto-check passed
  • Cost Conversation

    ruvnet/ruflo

    Per-conversation cost view — list every session in cost-tracking with started-at, message count, top model, and total cost

    74k GitHub stars~407 tokensUpdated yesterday
    AI & LLM EngineeringAuto-check: notes
  • Conversation Memory

    davila7/claude-code-templates

    Persistent memory systems for LLM conversations including short-term, long-term, and entity-based memory Use when: conversation memory, remember, memory persistence, long-term memory, chat history.

    33k GitHub starsUsed in 4 repos~440 tokens
    Agent WorkflowsAuto-check passed
  • Conversation Archive

    garrytan/gbrain

    Import AI-assistant chat exports (ChatGPT, Claude, Perplexity) and agent session transcripts into the brain as one dated page per conversation under conversations/, validate each page against the…

    31k GitHub stars~5.6k tokensUpdated yesterday
    Productivity & AutomationAuto-check passed

More from tonbistudio/buzz-skills

  • Hermes In Buzz

    tonbistudio/buzz-skills

    A skill your agent uses when connecting a remote Hermes gateway to Buzz end-to-end.

    276 GitHub stars~4.6k tokensUpdated 2 mo ago
    Auto-check: notes
  • Buzz Self Hosting

    tonbistudio/buzz-skills

    A skill your agent uses when helping a user set up, debug, or operate a self-hosted Buzz relay through Docker Compose.

    276 GitHub stars~2.2k tokensUpdated 2 mo ago
    Auto-check: notes

Questions about Buzz Media Attachments

What does Buzz Media Attachments do?

A skill your agent uses when attaching a local media file to the active Buzz conversation. Buzz Media Attachments is an agent skill from tonbistudio/buzz-skills. Use when attaching a local media file to the active Buzz conversation.

When should I use Buzz Media Attachments?

Buzz Media Attachments fits situations like: attaching a local media file to the active Buzz conversation; general media editing; non-Buzz delivery.

How do I install Buzz Media Attachments in Claude Code?

Run `npx skills add tonbistudio/buzz-skills --skill buzz-media-attachments -a claude-code`. Or copy the skill folder (buzz-media-attachments in tonbistudio/buzz-skills) into .claude/skills/buzz-media-attachments in your project. Claude Code loads it when a task matches its description.

How do I install Buzz Media Attachments in Codex?

Run `npx skills add tonbistudio/buzz-skills --skill buzz-media-attachments -a codex`. Or copy the skill folder (buzz-media-attachments in tonbistudio/buzz-skills) into .agents/skills/buzz-media-attachments in your project. Codex loads it when a task matches its description.

Can I use Buzz Media Attachments in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tonbistudio/buzz-skills --skill buzz-media-attachments -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/buzz-media-attachments, .gemini/skills/buzz-media-attachments, .github/skills/buzz-media-attachments and .opencode/skills/buzz-media-attachments in your project.

What does Buzz Media Attachments need to run?

Going by SKILL.md and its folder, Buzz Media Attachments needs credentials named BUZZ_PRIVATE_KEY. Our summary lists: Python 3; A credential in BUZZ_PRIVATE_KEY.

Does Buzz Media Attachments access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Buzz Media Attachments safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Buzz Media Attachments use?

Buzz Media Attachments is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Buzz Media Attachments use?

About 1k tokens (SKILL.md is roughly 4.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Buzz Media Attachments?

Skills that share tags, products or a category with Buzz Media Attachments: Modeling Conversion Metrics (PostHog/posthog, 40k stars), Gh Attach (sickn33/agentic-awesome-skills, 47k stars), Gh Attach (github/awesome-copilot, 40k stars) and Cost Conversation (ruvnet/ruflo, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Buzz Media Attachments?

tonbistudio (a GitHub user) maintains it in tonbistudio/buzz-skills, which has 276 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on August 5, 2026.

Source: tonbistudio/buzz-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.