vibe Documentation

TypeScript ai & cross-platform repository by @thewh1teagle. AI agent rules & system prompts with 6.7k stars.

6,743 stars TypeScript TypeScript 1 file ยท ~5,300 tokens #ai#cross-platform#desktop#openai#rust#transcribe#whisper
RAW Doc

File: README.md

Vibe - Transcribe on your own!


Screenshots

Features ๐ŸŒŸ

  • ๐ŸŒ Transcribe almost every language
  • ๐Ÿ”’ Ultimate privacy: fully offline transcription, no data ever leaves your device
  • ๐ŸŽจ User friendly design
  • ๐ŸŽ™๏ธ Transcribe audio / video
  • ๐ŸŽถ Option to transcribe audio from popular websites (YouTube, Vimeo, Facebook, Twitter and more!)
  • ๐Ÿ“‚ Batch transcribe multiple files!
  • ๐Ÿ“ Support SRT, VTT, TXT, HTML, PDF, JSON, DOCX formats
  • ๐Ÿ‘€ Realtime preview
  • ๐Ÿค– Supports Whisper, Nemotron 3.5, and Parakeet TDT v3 models
  • โœจ Summarize transcripts: Get quick, multilingual summaries using the Claude API
  • ๐Ÿง  Ollama support: Do local AI analysis and batch summaries with Ollama
  • ๐ŸŒ Translate to English from any language
  • ๐Ÿ–จ๏ธ Print transcript directly to any printer
  • ๐Ÿ”„ Automatic updates
  • ๐Ÿ’ป Optimized for GPU (macOS, Windows, Linux)
  • ๐ŸŽฎ Optimized for Nvidia / AMD / Intel GPUs! (Vulkan/CoreML)
  • ๐Ÿ”ง Total Freedom: Customize Models Easily via Settings
  • โš™๏ธ Model arguments for advanced users
  • โณ Transcribe system audio
  • ๐ŸŽค Transcribe from microphone
  • ๐Ÿ–ฅ๏ธ CLI support: Use Vibe directly from the command line interface! (see --help)
  • ๐Ÿ‘ฅ Speaker diarization
  • ๐ŸŽฌ Stable timestamps mode for subtitle/movie-grade timing (VAD-backed, slower)
  • ๐Ÿ“ฑ iOS & Android support (coming soon)
  • ๐Ÿ“ฅ Integrate custom models from your own site: Use vibe://download/?url=<model url>
  • ๐Ÿ“น Choose caption length optimized for videos / reels
  • โšก HTTP API with Swagger docs and agent skills

Supported platforms ๐Ÿ–ฅ๏ธ

MacOS
Windows
Linux

Contribute ๐Ÿค

Developers

Get started with local development here.

PRs are welcomed!
In addition, you're welcome to add translations.

Community

Roadmap ๐Ÿ›ฃ๏ธ

You can see the roadmap in Vibe-Roadmap

Add translation ๐ŸŒ

See the translation guide.

Docs ๐Ÿ“„

see Vibe Docs

I want to know more!

Medium post

Issue report

You can open new issue and it's recommend to check debug.md first.

Privacy Policy ๐Ÿ”’

Your privacy is important to us. Please review our Privacy Policy to understand how we handle your data.

Credits

Thanks for tauri.app for making the best apps framework I ever seen

Thanks for github.com/whisper.cpp for outstanding interface for the AI model.

Thanks for openai.com for their amazing Whisper model

Thanks for github.com for their support in open source projects, providing infastructure completely free.

And for all the amazing open source frameworks and libraries which this project uses...


File: desktop/README.md

Tauri + React + Typescript

This template should help get you started developing with Tauri, React and Typescript in Vite.


File: docs/building.md

Building

Prerequisites

pnpm | uv | Cargo

Optionally install just to use the shortcuts in the root justfile (run just to list them):

console
# Windows
winget install Casey.Just
# macOS
brew install just
# Linux
sudo apt install just   # or: cargo install just

Linux:

Based on tauri/prerequisites/#setting-up-linux

console
sudo apt-get update
sudo apt-get install -y pkg-config build-essential libglib2.0-dev libgtk-3-dev libwebkit2gtk-4.1-dev clang cmake libssl-dev libasound2-dev

macOS:

Make sure to install XCode from the AppStore and open it once so it will download essential macOS libraries.

Build

Run the pre-build script (downloads the Sona runner binary and sets up platform deps):

console
uv run scripts/pre_build.py

Install frontend dependencies from desktop folder:

console
cd desktop
pnpm install

Start dev mode:

console
pnpm exec tauri dev

Or build for production:

console
pnpm exec tauri build

You can also do it all in one step:

console
uv run scripts/pre_build.py --dev   # or --build

Build sona locally (dev)

Download prebuilt whisper.cpp libs (one-time):

console
uv run sona/scripts/download-libs.py

Windows only โ€” install MSYS2, then install MinGW and Vulkan headers:

console
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-vulkan-devel

Open an MSYS2 MinGW64 shell with your full Windows PATH (so rustc, cargo, etc. are available):

console
C:\msys64\msys2_shell.cmd -mingw64 -defterm -no-start -use-full-path

Then build sona and place it as sidecar (from desktop/):

console
# macOS/Linux
cargo build --manifest-path ../sona/Cargo.toml -p sona --release
cp ../sona/target/release/sona ../desktop/src-tauri/binaries/sona-$(rustc -vV | awk '/host:/ {print $2}')
# Windows
cargo build --manifest-path ../sona/Cargo.toml -p sona --release
cp ../sona/target/release/sona.exe ../desktop/src-tauri/binaries/sona-$(rustc -vV | awk '/host:/ {print $2}').exe

Then copy the binary into the dev target so tauri dev picks it up immediately:

console
cp desktop/src-tauri/binaries/sona-$(rustc -vV | awk '/host:/ {print $2}') target/debug/sona

Test

console
export RUST_LOG=trace
cargo test -- --nocapture

Lint

console
cargo fmt
cargo clippy

Create new release

  1. Increment version in tauri.conf.json and commit
  2. Run the Release workflow from GitHub Actions (workflow_dispatch)

It will create releases for Windows, Linux, and macOS

Along with latest.json file (used for auto updater).

When Release action finishes, it will run Deploy landing action

and update downloads links in landing page.

Landing

Compress images

console
pnpx tinypng-go static/*.png

Convert markdown to PDF

console
go install github.com/mandolyte/mdtopdf/cmd/md2pdf@latest
md2pdf -i website/public/privacy_policy.md -o website/public/privacy_policy.pdf

Normalize wav file for tests

console
ffmpeg -i file.wav -ar 16000 -ac 1 -c:a pcm_s16le normal.wav

Edit PR before merge

  1. Install gh cli
console
gh pr checkout 
git push <fork url>

Update packages

console
pnpm install
pnpx ncu -u
cd src-tauri
cargo install cargo-edit
rm -rf ../Cargo.lock
CARGO_NET_GIT_FETCH_WITH_CLI=true cargo upgrade
# OR
cargo +nightly -Zunstable-options update --breaking

Clear Github actions cache

console
gh cache delete -a

Notes

  • Always update crates and lock in specific commit so it will be easy to revert!!
  • Don't upgrade important crates such as tauri as long as it stable and works and there's no real need!!

Windows Code Signing

See Windows Code Signing

Install Windows SDK:

console
winget install -e --id Microsoft.WindowsSDK.10.0.26100

Generate a self-signed certificate (valid 10 years):

console
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 3650 -nodes -subj "/CN=Vibe" -addext "extendedKeyUsage=codeSigning"
openssl pkcs12 -export -out cert.pfx -inkey key.pem -in cert.pem -password pass:YOUR_PASSWORD
base64 -i cert.pfx

Copy the base64 output and update GitHub secrets:

  • WINDOWS_CERTIFICATE โ€” the base64 output
  • WINDOWS_CERTIFICATE_PASSWORD โ€” the password used above

Then delete the local files:

console
rm key.pem cert.pem cert.pfx

Analytics (Optional)

Vibe uses Aptabase for analytics. Not required for development. To enable, set these env vars at build time:

console
export APTABASE_APP_KEY="A-..."
export APTABASE_BASE_URL="https://..."

Gotchas

Build faster in dev mode (useful in Windows)

console
rustup nightly install
rustup component add rustc-codegen-cranelift-preview --toolchain nightly
# Unix
CARGO_PROFILE_DEV_CODEGEN_BACKEND="cranelift" cargo +nightly build -Zcodegen-backend
# Powershell
$env:CARGO_PROFILE_DEV_CODEGEN_BACKEND="cranelift" ; cargo +nightly build -Zcodegen-backend

File: docs/debug.md

Troubleshoot vibe crash / error

Try the following, the more you try the better the chance we'll find the cause :)

  1. Is the audio file valid? try with different one, eg. download vibe/samples/single.wav
  2. Do you have errors? report it with the 'report button'
  3. Do you experience crash without errors? try to run from the terminal with logs enabled:
  4. Do you use other model than the default one? Please use the default one that comes with Vibe when checking.

Windows

a. Open cmd.exe
b. Execute:

console
taskkill /IM vibe.exe /F
set RUST_BACKTRACE=1
set RUST_LOG=vibe=debug,whisper_rs=debug
%localappdata%\vibe\vibe.exe

macOS

console
RUST_LOG=vibe=debug,whisper_rs=debug RUST_BACKTRACE=1 /Applications/vibe.app/Contents/MacOS/vibe

Linux

Run it similar to macOS just change the path

Does it happens with original Whisper?

  1. Download one of the zip files from releases/tag/v1.6.0 (Scroll down and choose whisper-bin-x64.zip in Windows
  2. Extract them and open the folder, then open explorer in that folder and hit Ctrl + l in explorer, type cmd` and enter
  3. Download vibe/samples/single.wav and place it in the same folder (and check that the file is ok)
  4. Try to transcribe by execute
console
main.exe -m "%localappdata%\github.com.thewh1teagle.vibe\ggml-medium.bin" -f "samples_single.wav"

App crashing and no even errors!

In windows, open search menu and search for Event Viewer, choose Windows Logs -> Application and check if there's some error there

Find debug log file
If you can't open the app due to crash, try to check any logs in

macOS: $HOME/Library/Application Support/github.com.thewh1teagle.vibe

Windows: %appdata%\github.com.thewh1teagle.vibe

Linux: ~/.config/github.com/thewh1teagle.vibe

Get OS information for posting in a bug

Windows

  1. Open cmd.exe
  2. Execute the following
console
winget install neofetch
neofetch
  1. Copy and paste it in the issue

macOS

console
brew install neofetch
neofetch

Linux

console
sudo apt-get update
sudo apt install -y neofetch
neofetch

vulkan-1.dll or vcomp140.dll is missing

For vcomp140.dll install vc_redist.x64.exe

For vulkan-1.dll install VulkanRT-Installer.exe

After you finished, share you results by opening new issue or just comment in the issue.


File: docs/install.md

Install notes ๐Ÿ“

System Requirements

Windows: Version 8 or greater.

macOS: Version 13.3 or greater.

Linux: Tested on ubuntu-22.04+

Hardware:
No special requirement. resource usage can be customized through advanced settings in main window.

Currently, listening for the audio file isn't supported on Linux

In addition you may need to set this environment variable before start it

console
export WEBKIT_DISABLE_COMPOSITING_MODE=1

Setting Up Summarization with Ollama

  1. Install Ollama

Download and install Ollama from https://ollama.com.

  1. Install a Model

Once installed, set up a model for summarization. For example, you can install llama3.1 by running the following command in your terminal:

console
ollama run llama3.1
  1. Enable Summarization

After the model is installed, open the Ollama app. Navigate to More Options and enable Summarize just before the transcription step. You can leave the settings at their default values.

Make sure to run the 'Run check` to see that it works

That's it! Summarization will now be active in Ollama.

Stable Timestamps (Subtitles / Movies)

Vibe includes a stable timestamp mode for tighter subtitle timing on long-form content.

  1. Open More Options.
  2. Enable Stable timestamps.
  3. If prompted, download the VAD model.

Notes:

  • This mode is quality-first and typically around 4x slower than normal transcription.
  • Best for subtitle creation and movie/video transcript timing.
  • VAD model used by default: ggml-silero-v6.2.0.bin
  • Upstream model source: https://huggingface.co/ggml-org/whisper-vad

Translating to English

Translation to English works only with Whisper small, medium, and large models. It does not work with Whisper large-v3-turbo.

If you need translation, download a supported model from the models docs.

Manual Install ๐Ÿ› ๏ธ

MacOS Apple silicon: install aarch64.dmg file from releases Don't forget to right click and open from Applications once

MacOS Intel: install x64.dmg file from releases Don't forget to right click and open from Applications once

Windows: install .exe file from releases

Linux: install .deb from releases (Arch users can use debtap)

All models available for manual install. see Pre built models

Offline Setup ๐Ÿ’พ

Offline installation with Vibe is easy: open the app, cancel the download, and navigate to the Customize section within settings.

All models available for manual install. see settings or Pre built models

Faster transcriptions on macOS (2-3x) ๐ŸŒŸ

  1. Download the matching .mlcmodelc.zip for your model from https://huggingface.co/ggerganov/whisper.cpp/tree/main
  • e.g. ggml-medium-encoder.mlmodelc.zip matches ggml-medium-encoder.bin
  1. Open models path from Vibe settings
  2. Drag and drop the .mlcmodel.c file into the models folder so that it is alongside the .bin file
  3. Transcribe a file, the first time you use the model it will take longer as it is compiling the model. Every subsequent time it will be faster.

Error of `msvc140.dll` not found โŒ

Download and install vc_redist.x64.exe

You can add links to your websites for letting users download your models easily from your website directly to vibe.

The URL should be like

text
vibe://download/?url=https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-tiny.bin?download=true

Usage on linux server

To use Vibe on linux server you need to install fake display

console
sudo apt-get install xvfb -y
Xvfb :1 -screen 0 1024x768x24 &
export DISPLAY=1

wget https://github.com/thewh1teagle/vibe/releases/download/v0.0.1/ggml-medium.bin
wget https://github.com/thewh1teagle/vibe/raw/main/samples/single.wav
vibe --model ggml-medium.bin --file single.wav

File: docs/models.md

๐ŸŒŸ Vibe Models ๐ŸŒŸ

Welcome to the Vibe Models page! Here you can find a curated list of suggested models to use with Vibe. To install a model, use the "Magic Setup" link to open it in Vibe, or copy and paste the direct download link in Vibe settings.

Available Models

๐ŸŒฑ Tiny Model

A compact and efficient version, suitable for quick tasks and limited-resource environments.

๐Ÿ‘‰ Magic Setup
๐Ÿ”ฝ Direct Download

๐ŸŒฟ Small Model

A small yet capable model for a balance of efficiency and performance.

๐Ÿ‘‰ Magic Setup
๐Ÿ”ฝ Direct Download

โš–๏ธ Medium Model

Balances performance and resource usage, making it ideal for most general applications.

๐Ÿ‘‰ Magic Setup
๐Ÿ”ฝ Direct Download

๐Ÿš€ Large Model (v3)

For high accuracy and more computational resources, excels in complex scenarios.

๐Ÿ‘‰ Magic Setup
๐Ÿ”ฝ Direct Download

๐Ÿ‘‰ Magic Setup
๐Ÿ”ฝ Direct Download

๐Ÿฆœ Parakeet TDT 0.6B v3

Supports streaming and is best suited for dictation.

๐Ÿ‘‰ View Model
๐Ÿ”ฝ Download Q4_K_M

โšก Nemotron 3.5 ASR Streaming 0.6B

Supports streaming and is best suited for dictation.

๐Ÿ‘‰ View Model
๐Ÿ”ฝ Download Q4_K_M

Models optimised for other languages

โœก๏ธ Hebrew (Ivrit)

Specialized for Hebrew (Ivrit) language data, optimized for high speed and accuracy in Hebrew tasks.

๐Ÿ‘‰ Magic Setup (Large v3 Turbo)
๐Ÿ”ฝ Direct Download (Large v3 Turbo)

๐Ÿ‡ณ๐Ÿ‡ด Norwegian

Optimised for Norwegian by the AI Lab at the National Library of Norway.

๐Ÿ‘‰ Magic Setup (medium)
๐Ÿ”ฝ Direct Download (medium)

๐Ÿ‘‰ Magic Setup (large)
๐Ÿ”ฝ Direct Download (large)

More models of smaller sizes are available via their huggingface download page.
Find the size you want, download the ggml-model.bin file, rename the file, and palce it in vibe's model folder.

๐Ÿ‡ธ๐Ÿ‡ช Swedish

Optimised for Swedish by the Data Lab at the National Library of Sweden.

๐Ÿ‘‰ Magic Setup (medium)
๐Ÿ”ฝ Direct Download (medium)

๐Ÿ‘‰ Magic Setup (large v3)
๐Ÿ”ฝ Direct Download (large v3)

More models of smaller sizes are available via their huggingface download page.
Find the size you want, download the ggml-model.bin file, rename the file, and palce it in vibe's model folder.

Enjoy exploring these models and enhancing your Vibe! ๐ŸŒโœจ

Want More?

Find additional models here:

๐Ÿ‘‰ See More Models


Prepare your own models

Convert transformers to GGML

console
# Setup environment
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc
uv venv
uv pip install torch transformers huggingface_hub
huggingface-cli login --token "token" # https://huggingface.co/settings/tokens

# Convert and upload
git clone https://github.com/openai/whisper
git clone https://github.com/ggml-org/whisper.cpp
git clone https://huggingface.co/ivrit-ai/whisper-large-v3-turbo
uv run ./whisper.cpp/models/convert-h5-to-ggml.py ./whisper-large-v3-turbo/ ./whisper .
uv run huggingface-cli upload --repo-type model whisper-large-v3-turbo-ivrit ./ggml-model.bin ./ggml-model.bin

# Quantize
sudo apt install cmake build-essential -y
cd whisper.cpp
cmake -B build
cmake --build build --config Release
cd ..
./whisper.cpp/build/bin/quantize ggml-model.bin ./ggml-model.int8.bin q8_0 # fp32/fp16/q8_0/q5_0