Using PiLot Studio
Voice, Git, and diagnostics
Use local voice dictation, draft commit messages from staged changes, and capture diagnostics when something goes wrong.
Browse the wiki
These features sit around the chat: speaking a prompt instead of typing it, drafting a commit message from staged changes, and collecting a log when something goes wrong.
Voice dictation
PiLot Studio includes local speech-to-text. Audio is captured by a native helper and transcribed by a whisper.cpp model on your machine. After the one-time model download, no audio is sent to a cloud service.
Starting dictation
- Click the microphone button in the composer.
- Or press
Ctrl+Shift+;(Cmd+Shift+;on macOS). - Or run PiLot Studio: Toggle Dictation from the Command Palette.
The first use asks permission to download a model. Accept, wait for the progress indicator, then speak. The transcription is inserted into the composer; review and edit it before sending. Click the microphone again to stop.
Models
pi-agent.voice.model chooses the model. The default is tiny-q5_1, a small multilingual model.
| Value | Label | Approximate size | Language |
|---|---|---|---|
tiny-q5_1 |
Tiny multilingual (Q5_1) | 31 MB | Multilingual |
tiny |
Tiny multilingual | 75 MB | Multilingual |
tiny.en |
Tiny English-only | 75 MB | English |
base-q5_1 |
Base multilingual (Q5_1) | 57 MB | Multilingual |
base |
Base multilingual | 141 MB | Multilingual |
base.en |
Base English-only | 141 MB | English |
Larger models are more accurate but slower. The model is cached in <agentDir>/voice-models/. If a download is interrupted, the partial file is removed and retried on the next start.
Platform notes
- macOS: the bundled helper and whisper framework are used.
- Windows: x64 and arm64 helpers are included; the MSVC runtime is static.
- Linux: x64 and arm64 helpers are included. Microphone capture needs ALSA (
libasound2on Debian/Ubuntu,alsa-libon Fedora/RHEL).
If the Linux helper cannot load its shared libraries, PiLot Studio reports the missing ALSA dependency instead of failing silently.
Settings and privacy
pi-agent.voice.enabledshows or hides the microphone and enables dictation.pi-agent.voice.modelselects the model.- The model download uses Hugging Face; the audio and transcript never leave your machine.
Dictation is separate from the model provider. A local model setup can use voice without any network access after the model is cached.
Generate Commit Message
PiLot Studio can draft a commit message from the changes you have already staged.
How to run it
- Click the sparkle button in the Source Control title bar of a Git repository.
- Or run PiLot Studio: Generate Commit Message from the Command Palette.
What it reads
git statusto count untracked files;git diff --cached --statfor the complete staged summary;git diff --cachedfor the patch, capped at 40,000 characters.
The prompt asks for a Conventional Commits message, imperative mood, a subject under 72 characters, and a short body only when useful. The model's reply is normalized and written into VS Code's commit-message box.
What it does not do
It does not stage, commit, amend, push, or create a session. The draft is placed in the commit box for you to review and edit. Nothing is written to Git history.
If the patch was truncated or there are untracked files that are not part of the staged diff, the result is reported as a warning rather than a clean success. A timeout or a failed write to the SCM input box is also reported.
Choosing the model
By default the draft uses the standard PI model. Set pi-agent.git.commitMessageModel to a provider/id value to pin a cheaper or faster model. The same value is available in Preferences → Commit Messages.
The command needs a Git repository, the built-in Git extension, and a working pi binary. It resolves all three before spending a model request.
Diagnostics
PiLot Studio can write a local diagnostic log for troubleshooting.
Enabling
Set pi-agent.diagnostics.enabled to true. The setting is off by default because the log can contain file paths, command output, and other session details.
When enabled, entries go to the PiLot Studio Diagnostics output channel and to an in-memory buffer.
Viewing and exporting
- PiLot Studio: Show Diagnostics Log opens the output channel.
- PiLot Studio: Export Diagnostics Log… writes the buffered log to a file you choose.
The buffer keeps the most recent 2,000 lines, and each entry is capped at 2,000 characters, so a long session cannot grow without bound. Toggling diagnostics off adds an explicit [Diagnostics logging disabled] marker so stale entries are not mistaken for current output.
What to include in a report
When opening an issue, include:
- VS Code version and operating system.
- PiLot Studio version (header or Extensions view).
pi --versionoutput.- The exported diagnostics log.
- The provider or MCP server involved, with any error text from the chat.
Review the log before sharing it. It is local-only, but it may contain workspace paths and command output.
Rebuilding native addons
Some PI features use better-sqlite3, a native Node addon. If it fails to load after a VS Code or Node upgrade, run:
PiLot Studio: Rebuild Native Addons
The command rebuilds the addon for the current extension host and reports progress in a terminal. This is a repair action; it does not change your sessions or provider configuration.
Updates
The header update button and the PiLot Studio: Check for Updates command check for a newer PI release and package updates. The background check runs every six hours (with a one-hour floor between manual checks).
- PI CLI update: runs
pi updatein a VS Code terminal. - Package updates: runs
pi update --extensions. - Automatic updates: set
pi-agent.autoUpdatetotrueto open the update terminal automatically when a newer PI release is found. - Offline mode:
pi-agent.offlineskips update checks and other startup network operations.
PiLot Studio itself updates through the VS Code Extensions view or your extension marketplace.
Something inaccurate or missing? Open an issue with the page title.