Source profileQuality 68/100

sonichi/sutando/skills/audio-transcribe/SKILL.md

audio-transcribe

Transcribes audio files and voice notes to text via Gemini 2.5-flash. Integrates with Slack, Discord, and Telegram bridges so voice clips surface as readable text in tasks.

Source repository stars
359
Declared platforms
0
Static risk flags
0
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

Transcribes audio files (voice notes, clips) to text via Gemini 2.5-flash. Used by the Slack, Discord, and Telegram bridges to surface voice-note content in task bodies so the core agent can act on the words instead of a bare file path.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/sonichi/sutando --skill "skills/audio-transcribe"
    Safe inspection promptEditorial

    Inspect the Agent Skill "audio-transcribe" from https://github.com/sonichi/sutando/blob/6a8f0fccd32e5aa620a3572c8885544f144bb6fe/skills/audio-transcribe/SKILL.md at commit 6a8f0fccd32e5aa620a3572c8885544f144bb6fe. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      How it works

      Reads the file, sends it inline (base64) to the Gemini 2.5-flash generateContent endpoint, and prints the transcript to stdout. Exits 0 on success, 1 on any failure (unsupported format, missing API key, network error, API error).

      Reads the file, sends it inline (base64) to the Gemini 2.5-flash generateContent endpoint, and prints the transcript to stdout. Exits 0 on success, 1 on any failure (unsupported format, missing API key, network error, A…Fail-open design. Every bridge wraps the call in a helper that returns None on a non-zero exit. A failed transcription never blocks the task — the [File attached: /path] line still goes through so the agent can at least…
    2. 02

      Supported formats

      .m4a (Slack voice clips), .mp3, .ogg, .oga, .opus, .wav, .webm, .aac, .flac, .mp4

      .m4a (Slack voice clips), .mp3, .ogg, .oga, .opus, .wav, .webm, .aac, .flac, .mp4
    3. 03

      Key resolution order

      1. GEMINIAPIKEY or GOOGLEAPIKEY in the process environment 2. /.env (resolved via resolveworkspace()) 3. $CLAUDECONFIGDIR/channels/slack/.env 4. $CLAUDECONFIGDIR/channels/discord/.env 5. $CLAUDECONFIGDIR/channels/telegram/.env

      GEMINIAPIKEY or GOOGLEAPIKEY in the process environment/.env (resolved via resolveworkspace())$CLAUDECONFIGDIR/channels/slack/.env
    4. 04

      Bridge integration

      Each bridge calls transcribeviaskill(localpath) after downloading a file. The helper locates the skill script relative to src/ (or the app bundle), runs it, and returns the transcript string or None. The bridge then appends either: - [Voice transcript: ] — when transcription suc…

      [Voice transcript: ] — when transcription succeeds[File attached: /path] — when skill is absent or transcription failsEach bridge calls transcribeviaskill(localpath) after downloading a file. The helper locates the skill script relative to src/ (or the app bundle), runs it, and returns the transcript string or None. The bridge then app…

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score68/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars359SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    sonichi/sutando
    Skill path
    skills/audio-transcribe/SKILL.md
    Commit
    6a8f0fccd32e5aa620a3572c8885544f144bb6fe
    License
    MIT
    Collected
    2026-07-28
    Default branch
    main
    View the original SKILL.md

    audio-transcribe

    Transcribes audio files (voice notes, clips) to text via Gemini 2.5-flash. Used by the Slack, Discord, and Telegram bridges to surface voice-note content in task bodies so the core agent can act on the words instead of a bare file path.

    How it works

    skills/audio-transcribe/scripts/transcribe.py <audio_file_path>
    

    Reads the file, sends it inline (base64) to the Gemini 2.5-flash generateContent endpoint, and prints the transcript to stdout. Exits 0 on success, 1 on any failure (unsupported format, missing API key, network error, API error).

    Fail-open design. Every bridge wraps the call in a helper that returns None on a non-zero exit. A failed transcription never blocks the task — the [File attached: /path] line still goes through so the agent can at least see a file was sent.

    Supported formats

    .m4a (Slack voice clips), .mp3, .ogg, .oga, .opus, .wav, .webm, .aac, .flac, .mp4

    Key resolution order

    1. GEMINI_API_KEY or GOOGLE_API_KEY in the process environment
    2. <workspace>/.env (resolved via resolve_workspace())
    3. $CLAUDE_CONFIG_DIR/channels/slack/.env
    4. $CLAUDE_CONFIG_DIR/channels/discord/.env
    5. $CLAUDE_CONFIG_DIR/channels/telegram/.env

    Bridge integration

    Each bridge calls _transcribe_via_skill(local_path) after downloading a file. The helper locates the skill script relative to src/ (or the app bundle), runs it, and returns the transcript string or None. The bridge then appends either:

    • [Voice transcript: <text>] — when transcription succeeds
    • [File attached: /path] — when skill is absent or transcription fails

    Removing the skill

    Delete skills/audio-transcribe/ — all three bridges fall back to [File attached:] automatically. Core services are unaffected.