Extract 3–7 blueprint-level insights from any voice recording — runs entirely locally, no cloud APIs required.
Pipeline: Voice file → afconvert (WAV) → whisper-cli (transcription) → Ollama/gemma3:4b (extraction) → Markdown file
- Rust installed (
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) - macOS (uses
afconvertfor audio conversion) - whisper-cpp installed with the
whisper-clibinary on yourPATH- Model file expected at
/opt/homebrew/share/whisper-cpp/ggml-base.en.bin
- Model file expected at
- Ollama running locally with the
gemma3:4bmodel pulled
# Install whisper-cpp via Homebrew
brew install whisper-cpp
# Pull the Ollama model
ollama pull gemma3:4b
# Start Ollama (if not already running)
ollama servegit clone <this-repo>
cd blueprint
cargo build --releaseThe binary will be at ./target/release/blueprint.
cargo install --path .
# now you can run `blueprint` from anywhere# Basic — output markdown next to the audio file
blueprint meeting.m4a
# Choose output directory
blueprint meeting.m4a --output ~/Documents/Blueprints
# Extract 3 points instead of 5
blueprint meeting.m4a -n 3
# Include full transcript in the markdown output
blueprint meeting.m4a --verbose
# Transcribe only — skip extraction, save transcript.txt
blueprint meeting.m4a --transcript-only.m4a, .mp3, .wav, .ogg, .webm, .flac, .mp4
Audio is converted to 16kHz mono WAV via
afconvertbefore being passed towhisper-cli.
A markdown file is saved in the same directory as the audio file (or --output dir):
2025-04-27_1430_meeting_blueprint.md
Example content:
# Blueprint: meeting
> Generated on **April 27, 2025 at 14:30**
> Source: `meeting.m4a`
> Word count: 8,412 words
---
## 🗺 Blueprint Points
### 1. Pricing Model Needs a Rethink
The team agreed the current flat-rate pricing doesn't reflect usage patterns
for enterprise clients, leading to undercharging heavy users.
**Implication →** A usage-based tier should be prototyped before Q3 planning.
### 2. ...When --transcript-only is used, a transcript.txt file is saved instead of a markdown file.
Runs entirely locally — no API costs.
| Step | Tool | Model |
|---|---|---|
| Audio conversion | afconvert (macOS built-in) |
— |
| Transcription | whisper-cli (whisper-cpp) |
ggml-base.en |
| Extraction | Ollama | gemma3:4b |
blueprint/
├── Cargo.toml
└── src/
├── main.rs # CLI entry point + orchestration
├── whisper.rs # Local whisper-cli transcription
├── extractor.rs # Ollama blueprint extraction
└── output.rs # Markdown file writer
- Whisper model path is hardcoded in
whisper.rsasWHISPER_MODEL— update if your path differs. - Ollama endpoint (
http://localhost:11434) and model (gemma3:4b) are constants inextractor.rs. - Long transcripts are chunked at 1,000 words and summarized before final extraction.
- Point count is validated to the range 3–7 at the CLI level.