Transcript CLI for Linux

Turn recordings into transcripts, recaps, and Google Drive docs on a server. Send a voice memo from your phone after a meeting and the recap lands in Drive on its own.

1. Install

curl -fsSL https://transcriptprivate.com/install.sh | sh

One static binary for x86_64 or ARM64 that runs on any distribution. It installs to ~/.local/bin (or /usr/local/bin as root) after checking its SHA-256. Transcript also needs ffmpeg, and Python 3 with venv for local Whisper:

sudo apt install ffmpeg python3-venv   # Debian / Ubuntu

2. Activate

transcript license activate TRANSCRIPT-...

A server uses one activation of your license, like a Mac. Find your key in the Polar purchase email under Benefit Grants.

3. Choose who writes the recap

  • Codex (recommended): run codex login on the server. Transcript uses it automatically.
  • Claude Code: log in with your Claude.ai subscription and pass --provider claude.
  • Gemini: works as a fallback, and is required to recap straight from audio and to name sessions with AI:
transcript config --gemini-api-key YOUR_KEY

Secrets are saved in ~/.config/transcript-app/credentials.json, readable only by your user.

4. Connect Google Drive (optional)

transcript drive connect
  1. Open the printed link on any device and sign in.
  2. Pick the Drive folder for your recaps.
  3. The browser ends on a page that fails to load (127.0.0.1). That is expected: copy that page's full address and paste it into the terminal.

Each recap uploads as a Google Doc, plus its metadata. Add --include-transcript or --include-audio to upload those too. Check it with transcript drive status --check.

5. Process recordings automatically

transcript watch turns a folder into an inbox. Each audio file that lands there (m4a, mp3, wav, ogg/opus voice notes, video…) is imported, transcribed, recapped, named, and uploaded. Files are picked up once they stop growing, so copies still in progress are safe.

transcript watch ~/inbox

Run it as a service so it survives logouts and reboots:

mkdir -p ~/inbox ~/.config/systemd/user
cat > ~/.config/systemd/user/transcript-watch.service <<'EOF'
[Unit]
Description=Transcript inbox
After=network-online.target

[Service]
Environment=PATH=%h/.local/bin:/usr/local/bin:/usr/bin:/bin
ExecStart=%h/.local/bin/transcript watch %h/inbox
Restart=on-failure

[Install]
WantedBy=default.target
EOF
systemctl --user daemon-reload
systemctl --user enable --now transcript-watch
sudo loginctl enable-linger "$USER"   # keep running after logout

Follow it with journalctl --user -u transcript-watch -f. Get recordings into ~/inbox however you like: Syncthing, Tailscale Taildrop (tailscale file get --loop ~/inbox), scp, or a phone app that uploads over SFTP. Files that are not readable audio move to ~/inbox/failed/ with a note explaining why.

Speed and privacy

  • Transcription runs locally with Whisper (faster-whisper) on the CPU, or on an NVIDIA GPU when CUDA is available. The first run installs it in a private Python environment and downloads the model.
  • The default model, large-v3-turbo, gives the best quality but can take longer than the meeting on a small server. Choose a lighter one with --model small (also on watch), or set TRANSCRIPT_WHISPER_MODEL=small.
  • transcript watch --from-audio skips local transcription and sends the audio to Gemini instead: faster on small servers, but the audio leaves your machine.

One file at a time

transcript import ~/meeting.m4a --json
transcript transcribe latest
transcript recap latest
transcript rename latest --apply
transcript drive upload latest

Every command supports --json, so scripts and AI agents can drive it. See transcript --help.

Update and uninstall

transcript update
rm ~/.local/bin/transcript
rm -r ~/.config/transcript-app ~/.local/share/TranscriptPrivate

Recordings stay in ~/Documents/Transcript-App until you delete them; change the location with transcript config --data-dir /path.

What only the Mac does

Recording system audio, live transcription, meeting detection, PDF export, and Google Calendar linking stay in the Mac app. On Linux, recordings arrive as files.

Help

Email support@transcriptprivate.com and include the output of transcript --version.