crispasr-agent-transcriber — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited crispasr-agent-transcriber (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- mcp-name: io.github.EmiyaKatuz/crispasr-agent-transcriber -->
Local-only transcription for Codex and MCP-based AI agents, powered by CrispASR. No cloud uploads, no API keys required for transcription.
GitHub Release | npm installer | PyPI package | MCP Registry
Give it a local audio or video file. It:
for English, Qwen3-ASR for Chinese.
/v1/audio/transcriptions endpoint.Everything runs on your machine. Media never leaves it.
The plugin includes the Codex Skill, command-line tool, and MCP server. Media stays on your computer. Model files are never downloaded automatically.
Install Node.js 20 or newer, uv, and ffmpeg. The installer uses uv to provide Python.
node --version
uv --version
ffmpeg -versionnpx @emiyakatuz/crispasr-agent-transcriber@latest installThe installer:
~/plugins/crispasr-agent-transcriber;When a model is missing, the installer prints its official source and stops. Download the three files listed under Required models into:
~/plugins/crispasr-agent-transcriber/models/Then verify the complete installation:
npx @emiyakatuz/crispasr-agent-transcriber@latest doctorWith a Codex build that supports plugin commands, run:
codex plugin add crispasr-agent-transcriber@personalIf the CLI has no codex plugin command, open the Codex desktop Plugins view and install CrispASR Transcriber from the Personal marketplace. Start a new conversation, then ask:
Transcribe C:\path\to\sample.mp4 with CrispASR using auto language detection.
Save a verbose JSON transcript and an SRT subtitle file.npx @emiyakatuz/crispasr-agent-transcriber@latest update
npx @emiyakatuz/crispasr-agent-transcriber@latest uninstallUninstall preserves local models, CrispASR binaries, and outputs. Use uninstall --purge-data only when those files should also be deleted. See Plugin installation for manual installation and troubleshooting.
After installation, you can run the transcription script without Codex:
Set-Location (Join-Path $HOME "plugins\crispasr-agent-transcriber")
uv run python scripts/transcribe.py sample.mp4 --profile auto `
--manage-server `
--english-model models\cohere-transcribe.gguf `
--chinese-model models\qwen3-asr-1.7b-q4_k.gguf `
--lid-backend firered --lid-model models\firered-lid-q2_k.gguf `
--format verbose_jsonThe MCP server is the cross-agent interface. Any agent that supports MCP stdio can run the released package directly from GitHub:
uvx --from "crispasr-agent-transcriber[mcp] @ git+https://github.com/EmiyaKatuz/[email protected]" crispasr-agent-mcpUse the same command and arguments in Claude Desktop, Cursor, or another MCP client. See AI agent integrations for a generic MCP configuration and Codex CLI command.
End users do not need the release steps. Maintainers should follow the publishing guide for Codex Marketplace, PyPI, MCP Registry, and cross-agent distribution.
This tool does not download models automatically. Download these three GGUF files and keep them in a local directory (the repo's models/ folder works well):
| Purpose | Local file | Variant / size | Model page | File page |
|---|---|---|---|---|
| English ASR | cohere-transcribe.gguf | F16, ~3.85 GB | Cohere Transcribe 03-2026 GGUF | Download |
| Chinese ASR | qwen3-asr-1.7b-q4_k.gguf | Q4_K, ~1.33 GB | Qwen3-ASR 1.7B GGUF | Download |
| Language detection | firered-lid-q2_k.gguf | Q2_K, ~350 MB | FireRed LID GGUF | Download |
The English F16 file is the highest-quality Cohere option and preserves the existing default. The same repository also provides smaller quantized files, including cohere-transcribe-q4_k.gguf; pass its exact local path if you choose that variant. All three upstream model families are Apache 2.0 licensed.
For automatic English/Chinese routing, pass both ASR paths. The language probe runs first, and only the matching model is loaded:
--english-model models\cohere-transcribe.gguf
--chinese-model models\qwen3-asr-1.7b-q4_k.gguf
--lid-backend firered --lid-model models\firered-lid-q2_k.ggufFor an explicit english or chinese profile, --model remains available as a single-model override.
The tool auto-detects, installs, and updates the CrispASR binary from GitHub releases.
| Flag | Effect |
|---|---|
--install-crispasr | Download latest platform binary to bin/ |
--update-crispasr | Upgrade to newest release |
--crispasr-status | Show installed version + update availability |
--crispasr-bin-dir PATH | Custom directory (default ./bin) |
--crispasr-bin PATH | Exact path to crispasr.exe |
When --manage-server is set and no binary is found, it auto-installs before starting the server.
On install and update, the tool checks your hardware:
nvidia-smi available, or CUDA_PATH / CUDA_HOME set, orCUDA in PATH -> downloads crispasr-*-cuda variant.
vulkaninfo or VULKAN_SDK set (only when CUDA is absent) ->downloads crispasr-*-vulkan variant.
macOS always uses the universal binary.
| Profile | Backend | ASR model | Language hint |
|---|---|---|---|
english | cohere | Cohere Transcribe 03-2026 | en |
chinese | qwen3-1.7b | Qwen3-ASR 1.7B | zh |
auto | determined by LID | determined by LID | detected |
auto mode runs FireRed language detection on the media, then routes English to Cohere or Chinese to Qwen3-1.7B. Mixed or uncertain content stops with a clear error asking you to re-run with --profile english or --profile chinese.
uv run python scripts/transcribe.py sample.wav `
--profile auto `
--manage-server `
--english-model models\cohere-transcribe.gguf `
--chinese-model models\qwen3-asr-1.7b-q4_k.gguf `
--lid-backend firered --lid-model models\firered-lid-q2_k.gguf `
--format srt `
--out-dir outputsAdd --keep-server to leave the server running after transcription.
# Terminal 1 -- start the server
crispasr --server --backend cohere `
-m models\cohere-transcribe.gguf `
--port 8080
# Terminal 2 -- transcribe
uv run python scripts/transcribe.py sample.mp4 `
--profile english `
--server-url http://127.0.0.1:8080 `
--format verbose_jsonIf the running server's backend doesn't match the selected profile, the tool prints the exact command you need to start the correct server.
--format | File extension | Contents |
|---|---|---|
text | .txt | Plain transcript |
verbose_json | .json | Full response with segments |
srt | .srt | SubRip subtitles |
vtt | .vtt | WebVTT subtitles |
A .metadata.json sidecar is always written alongside the transcript.
Video files are detected automatically. ffmpeg extracts the audio track to a temporary mono 16 kHz WAV before sending it to CrispASR. The temporary file is deleted when transcription finishes.
--profile auto|english|chinese
--format text|verbose_json|srt|vtt
--out-dir PATH
--server-url URL
--allow-remote-server
--manage-server
--keep-server
--model PATH Local GGUF override for an explicit profile
--english-model PATH Cohere model selected after English detection
--chinese-model PATH Qwen3-ASR model selected after Chinese detection
--allow-model-auto-download
--lid-model PATH Local LID model path
--lid-backend firered|silero|ecapa|whisper
--host HOST Managed server host (default 127.0.0.1)
--port PORT Managed server port (default 8080)
--language CODE Language hint for transcription
--prompt TEXT Initial prompt/context
--vad Enable voice activity detection
--diarize Enable speaker diarization
--diarize-method METHOD
--hotwords WORD,WORD Comma-separated hotwords
--no-timestamps
--preprocess auto|always|never
--api-key KEY If CRISPASR_API_KEYS is enabled
--crispasr-bin-dir PATH
--crispasr-bin PATH
--install-crispasr
--update-crispasr
--crispasr-statusuv sync --extra mcp
uv run --extra mcp crispasr-agent-mcpExposed tools:
| Tool | Description |
|---|---|
crispasr_health | Check CrispASR server health |
crispasr_backends | List available backends |
crispasr_detect_language | Run language detection on a file |
transcribe_audio | Transcribe an audio file |
transcribe_video | Transcribe a video file |
transcribe_folder | Batch-transcribe a folder |
--server-url only accepts localhostunless --allow-remote-server is explicitly passed.
remote schemes are rejected.
shell=False. No user-controlled strings are interpolated into shell commands.
-m auto)requires --allow-model-auto-download. The same guard applies to language detection models.
windows are deleted when transcription finishes.
official CrispStrobe/CrispASR GitHub releases.
match the SHA-256 value published in the same GitHub Release.
and the named Personal marketplace entry. Updates preserve local models, binaries, and outputs.
uv run pytest
uv run ruff check . # zero lint warningsThis project is licensed under the MIT License.
This tool orchestrates several independently-licensed projects. It does not bundle, fork, or redistribute their code -- it downloads pre-built binaries and calls them as subprocesses or HTTP services at runtime.
| Component | License | Role |
|---|---|---|
| CrispASR | MIT | ASR engine, server, language detection |
| ffmpeg | LGPL 2.1+ / GPL 2+ | Media decoding and audio extraction |
| Cohere Transcribe 03-2026 | Apache 2.0 | English ASR model (loaded by CrispASR) |
| Qwen3-ASR 1.7B | Apache 2.0 | Chinese ASR model (loaded by CrispASR) |
| FireRed LID | Apache 2.0 | Language detection model (loaded by CrispASR) |
| httpx | BSD | HTTP client for CrispASR API |
| MCP Python SDK | MIT | MCP server framework |
| Node.js | MIT | npm installer runtime |
| adm-zip | MIT | Verified plugin ZIP extraction |
Model files must be downloaded separately by the user from their respective HuggingFace repositories. See Required models above.
tool wraps
desktop GUI (not used by this tool)
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.