Skip to content

Repository files navigation

Scriba

Record. Transcribe. Flow.

License: MIT


Scriba is an agent that turns your recordings into a searchable, queryable knowledge base and lets you ask questions across all of it. It builds a persistent knowledge graph so the agent always has context, not just the last thing you said.

Run entirely offline with local STT models (Parakeet, Whisper, SenseVoice) + Ollama, or bring your own AI providers (OpenAI, Anthropic, Google).

Scriba home

How it works

  1. Record — capture your microphone or system audio
  2. Transcribe — local STT models (Parakeet, Whisper, SenseVoice) or the OpenAI API
  3. Enrich — an LLM extracts summaries, topics, entities, and action items from every recording
  4. Ask — an agent reasons across your entire history to answer questions, find connections, and take action

Get started

Requirements: FFmpeg and (optionally) Ollama for Private mode.

Install

macOS (Apple Silicon and Intel) and Linux (x86_64):

curl -fsSL https://raw.githubusercontent.com/giovannialberto/scriba/main/install.sh | sh

The script downloads the latest release, verifies its checksum, and installs scriba into ~/.local/bin — no sudo. Set SCRIBA_INSTALL_DIR to change the location or SCRIBA_VERSION to pin a release. Scriba updates itself from the dashboard afterwards.

FFmpeg: brew install ffmpeg on macOS; sudo apt install ffmpeg (Debian/Ubuntu), sudo dnf install ffmpeg (Fedora/RHEL), or sudo pacman -S ffmpeg (Arch) on Linux.

Alternatives: Homebrew, direct download
brew install ffmpeg
brew tap giovannialberto/scriba
brew trust --tap giovannialberto/scriba   # Homebrew 6+: allow formulae from this tap
brew install scriba

Or grab a binary directly from Releases.

Run

scriba

On first run, Scriba walks you through an onboarding flow to choose your mode and configure your setup. Then Ctrl+R to record.

Meeting detection

Scriba notices when a meeting starts — Zoom, Meet, Teams, or any app that opens your microphone — and offers to record it. No audio is analyzed for this: it watches which process holds the mic, so talking at your desk never triggers it.

  • A notification card asks Record or Ignore the moment a call begins (unanswered cards are ignored — nothing is recorded without your consent).
  • Recording stops by itself the instant you leave the call, then transcription and enrichment run in the background.
  • While recording, a live indicator shows the app, elapsed time, and mic level; the recording appears in your list the moment it stops, with a spinner until the transcript is ready.
  • Ctrl+R stops any recording in progress; the Meeting Watch toggle in Settings turns detection off entirely.

Detection runs whenever the dashboard is open, at effectively zero CPU cost. You can also run it standalone with scriba watch (see scriba watch --help for options such as --no-confirm).

Fine-tuning lives under meeting_detection in ~/scriba_recordings/config.json: confirm_timeout_seconds, cooldown_seconds, and ignored_processes — a list of app/bundle-id substrings whose mic use should never count as a meeting (useful if you run another recording tool alongside Scriba).

Supported on macOS 14+ (per-app attribution via Core Audio) and Linux with PulseAudio/PipeWire.

Ask Scriba

Ask "what did we decide in last Tuesday's call?" or "who has mentioned the Q2 roadmap?" and Scriba will search your transcripts, look up entities, and chain tool calls to get to a real answer. Ask from the home to query your entire history, or from within a transcript for recording-specific context.

Ask Scriba chat

MCP server

Scriba exposes your recordings to Claude Desktop via the Model Context Protocol:

{
  "mcpServers": {
    "scriba": { "command": "scriba", "args": ["mcp"] }
  }
}

Add to your Claude Desktop config:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

License

MIT — Copyright (c) 2026 Giovanni Alberto Falcione

About

The private voice agent.

Resources

Stars

9 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages