← Back to Skills Marketplace
geodeteam

Geode On-device Transcribe & Summary

by geodeteam · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
74
Downloads
1
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install geode-transcribe
Description
Transcribe and summarize audio/video files locally. Unlimited usage at a flat rate for heavy users.
README (SKILL.md)

GeodeCLI Transcription — OpenClaw Integration Guide

This document describes the recommended async integration between OpenClaw, GeodeCLI, and Geode.app.

Architecture:

  • GeodeCLI: the CLI entry called by OpenClaw.
  • Geode.app: the worker app, launched with --worker.
  • Shared storage: the App Group container group.com.privycloudless.privyecho.

If the Geode app is not installed, OpenClaw should guide the user to install it from the Mac App Store:

  • App Store URL (macOS): https://apps.apple.com/app/apple-store/id6752685916?pt=127800752&ct=openclaw&mt=8

1. Shared Paths

Both GeodeCLI and Geode.app use the same App Group container:

  • App Group ID: group.com.privycloudless.privyecho
  • Shared root: ~/Library/Group Containers/group.com.privycloudless.privyecho/
  • Recommended audio inbox: ~/Library/Group Containers/group.com.privycloudless.privyecho/CLIInbox/
  • Task JSON directory: ~/Library/Group Containers/group.com.privycloudless.privyecho/CLITasks/
  • Transcript / summary output directory: ~/Library/Group Containers/group.com.privycloudless.privyecho/CLITranscriptions/

If the source audio is outside the shared container, copy it into CLIInbox/ first.


2. Async API

2.1 Submit one task

OpenClaw should call the bundled GeodeCLI:

"/Applications/Geode.app/Contents/Helpers/GeodeCLI" --enqueue-transcription \
  --audio "/Users/.../Library/Group Containers/group.com.privycloudless.privyecho/CLIInbox/audio.m4a" \
  --language zh \
  [--format txt|md|docx] [--summary]

GeodeCLI auto-detects the enclosing Geode.app and launches Geode --worker automatically.

Only during development or non-default installs, you may need:

"/path/to/GeodeCLI" --enqueue-transcription \
  --audio "/Users/.../CLIInbox/audio.m4a" \
  --language zh \
  --app-bundle "/path/to/Geode.app"

Behavior:

  • Async mode accepts exactly one --audio per task.
  • GeodeCLI persists a task JSON file into the App Group container.
  • GeodeCLI launches Geode --worker and returns immediately.

2.2 Success output

  • stdout: TASK_ID=\x3Cuuid>
  • exit code: 0

Example:

TASK_ID=123e4567-e89b-12d3-a456-426614174000

2.3 Error output

  • stderr: Error: \x3CCODE> plus optional English detail lines
  • Exit code:
    • 1: runtime error
    • 2: invalid arguments

Common async-specific codes:

  • TASK_CREATE_FAILED
  • TASK_READ_FAILED
  • WORKER_LAUNCH_FAILED

3. Query Status

After receiving a task id, OpenClaw should poll:

"/Applications/Geode.app/Contents/Helpers/GeodeCLI" --task-status 123e4567-e89b-12d3-a456-426614174000

3.1 Success output

  • stdout: one JSON object
  • Exit code: 0

Example:

{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "recordingId": "6a9b17c5-6c9d-4f0b-8401-f0d7f06a5e48",
  "audioPath": "/Users/.../Library/Group Containers/group.com.privycloudless.privyecho/CLIInbox/audio.m4a",
  "language": "zh",
  "outputFormat": "txt",
  "summarize": true,
  "status": "summarizing",
  "transcriptPath": "/Users/.../Library/Group Containers/group.com.privycloudless.privyecho/CLITranscriptions/audio_2026-03-18T07-00-00Z.txt",
  "summaryPath": null,
  "errorCode": null,
  "errorDetail": null,
  "workerId": "pid-12345",
  "createdAt": "2026-03-18T07:00:00Z",
  "updatedAt": "2026-03-18T07:02:10Z",
  "startedAt": "2026-03-18T07:00:02Z",
  "finishedAt": null
}

3.2 Status values

Status Meaning
queued Task is persisted and waiting for a worker.
running Transcription is in progress.
summarizing Transcript is written; AI summary is still running.
succeeded Task completed successfully.
failed Task failed. Check errorCode / errorDetail.
cancelled Reserved for future use.

3.3 Task status error

  • stderr: Error: TASK_NOT_FOUND
  • Exit code: 1

4. Common Error Codes

These codes may appear in task status JSON:

Code Meaning
INVALID_ARGS Missing required arguments or invalid usage.
AUDIO_NOT_FOUND Audio file does not exist.
AUDIO_UNREADABLE Audio file cannot be opened.
NOT_LOGGED_IN User is not logged in to Geode.
INSUFFICIENT_QUOTA Not enough transcription quota.
EMPTY_RESULT Transcription returned no text.
OUTPUT_DIR_CREATE_FAILED Failed to create the output directory.
OUTPUT_WRITE_FAILED Failed to write an output file.
TRANSCRIPTION_FAILED Internal transcription failure.
SUMMARY_NOT_LOGGED_IN User is not logged in for AI summary.
SUMMARY_INSUFFICIENT_QUOTA Not enough AI summary quota.
SUMMARY_FAILED AI summary generation failed.
WORKER_INTERRUPTED The worker stopped before finishing the task.

5. Recommended Workflow

When the user wants to transcribe an audio file and later retrieve the result:

  1. Copy the source audio into: ~/Library/Group Containers/group.com.privycloudless.privyecho/CLIInbox/
  2. Call: /Applications/Geode.app/Contents/Helpers/GeodeCLI --enqueue-transcription --audio "P" --language \x3Clang> [--format ...] [--summary]
  3. Read TASK_ID=\x3Cuuid> from stdout.
  4. Poll: /Applications/Geode.app/Contents/Helpers/GeodeCLI --task-status \x3Cuuid>
  5. When status becomes succeeded:
    • read transcriptPath
    • read optional summaryPath
    • copy result files to the user-requested destination if needed
  6. When status becomes failed:
    • use errorCode for branching logic
    • use errorDetail for logs or user-facing context

Recommended polling behavior:

  • first poll after 1 to 2 seconds
  • then every 2 to 5 seconds
  • stop polling when status is succeeded, failed, or cancelled

6. Summary

  • OpenClaw should call the bundled GeodeCLI inside Geode.app for async submission and status polling.
  • GeodeCLI returns TASK_ID=\x3Cuuid> immediately.
  • Geode.app performs the actual transcription in --worker mode.
  • Audio, task JSON, transcript, and summary files all live in the shared App Group container.

7. Agent Instructions

  • This skill is designed for asynchronous transcription. Tasks may take a long time to complete.

Submission behavior

  • When the user requests audio transcription, use --enqueue-transcription to submit a task.
  • Always return the TASK_ID immediately after submission.
  • Do NOT wait for transcription to finish (non-blocking behavior).
  • After submission, allow the conversation to continue normally.

Progress & retrieval

  • Only check task status when:
    • the user explicitly asks for progress or results, OR
    • you proactively decide to check in the background (without blocking the user conversation).
  • Poll task status using --task-status \x3CTASK_ID>.

While task is running

  • If the task is still in queued, running, or summarizing:
    • Inform the user that the task is still in progress.
    • Suggest checking again later.
    • Do NOT block or repeatedly poll in a tight loop.

Completion

  • When status is succeeded:
    • Return the transcriptPath.
    • Return summaryPath if available.

Failure handling

  • When status is failed:
    • Explain the failure using errorCode.
    • Include errorDetail if available.
    • Suggest corrective actions if applicable (e.g., login, quota, file issues).

Environment handling

  • If the Geode app is not installed:
    • Guide the user to install it from the App Store before retrying.
Usage Guidance
This skill is an instruction-only integration that calls a local macOS helper app (Geode.app). Before installing or using it: 1) Verify the provenance of Geode.app — prefer installing it from a trusted source (the App Store link is present, but the skill has no verified homepage or source repo). 2) Confirm whether the summary feature runs fully on-device or requires logging into a cloud service (the error codes imply a login/quota); if you require strict local-only processing, validate this with the vendor or by testing offline. 3) Inspect the App Group container (~/Library/Group Containers/group.com.privycloudless.privyecho/) after a test run — transcripts/summaries will be written there and may contain sensitive data. 4) Test the CLI commands manually before allowing an agent to invoke them autonomously. 5) If provenance or cloud-dependence cannot be confirmed, treat the skill as potentially privacy-impacting and consider not installing it or limiting its use. Additional useful info to reduce uncertainty: a link to the official Geode source or vendor, documentation clarifying local vs cloud summary behavior, and a signed binary distributed from a trusted developer account.
Capability Analysis
Type: OpenClaw Skill Name: geode-transcribe Version: 1.0.0 The skill provides an integration for the 'Geode' macOS application to perform local audio transcription and summarization. It is classified as suspicious because the `submit_transcription` tool in `skill.json` is vulnerable to shell command injection; the `audio_path` parameter is interpolated directly into a command string without sanitization. While the instructions in `SKILL.md` and `README.md` describe a legitimate and privacy-focused workflow, the underlying tool definition presents a significant security risk if the agent processes untrusted file paths.
Capability Assessment
Purpose & Capability
The skill claims on-device transcription/summarization and the instructions exclusively call a local CLI bundled with a macOS app (/Applications/Geode.app/Contents/Helpers/GeodeCLI) and use an App Group container for input/output — which is coherent for a macOS-only, on-device tool. However, README/SKILL.md assert 'privacy-first' and 'all processing happens locally' while the documented error codes include SUMMARY_NOT_LOGGED_IN and SUMMARY_INSUFFICIENT_QUOTA, implying an account/quota or cloud-backed AI summary. Also the published metadata lacks a real homepage/source repository (skill.json contains a placeholder), which weakens provenance.
Instruction Scope
Runtime instructions are narrowly scoped: copy audio into the App Group inbox, run the bundled GeodeCLI to enqueue a single audio file, and poll the CLI for status and output file paths. The instructions do not ask the agent to read unrelated system files, environment variables, or send data to remote endpoints. They do rely on writing/reading files under ~/Library/Group Containers/... which is expected for an App Group integration.
Install Mechanism
There is no install spec and no code files — the skill is instruction-only and expects the preinstalled Geode.app/GeodeCLI. This is low-risk from an install perspective, but it means trust is shifted to the external Geode.app binary (which the skill does not provide or verify).
Credentials
The skill requests no environment variables or credentials, which is appropriate. But the error codes referencing login/quota for summaries suggest that parts of the summary feature may require an account or networked service; that capability is not declared or explained in the metadata and contradicts the 'local-only' privacy claim.
Persistence & Privilege
The skill does not request 'always: true' and does not modify other skills or system-wide settings. It interacts only with a local App Group path and the bundled app/CLI, which is within expected privileges for a local helper integration.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install geode-transcribe
  3. After installation, invoke the skill by name or use /geode-transcribe
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Initial release of Geode On-device Transcribe & Summary skill. - Enables asynchronous transcription and summarization of audio/video files locally via GeodeCLI and Geode.app integration. - Uses a shared App Group container for file exchange and task tracking. - Provides clear task management: submit, poll status, retrieve results, and handle errors. - Includes detailed agent instructions for submission, progress updates, completion handling, and environment checks (including prompts to install the Geode app if missing).
Metadata
Slug geode-transcribe
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Geode On-device Transcribe & Summary?

Transcribe and summarize audio/video files locally. Unlimited usage at a flat rate for heavy users. It is an AI Agent Skill for Claude Code / OpenClaw, with 74 downloads so far.

How do I install Geode On-device Transcribe & Summary?

Run "/install geode-transcribe" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Geode On-device Transcribe & Summary free?

Yes, Geode On-device Transcribe & Summary is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Geode On-device Transcribe & Summary support?

Geode On-device Transcribe & Summary is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Geode On-device Transcribe & Summary?

It is built and maintained by geodeteam (@geodeteam); the current version is v1.0.0.

💬 Comments