Getting started
Vehla is a macOS menu-bar app. There is no window. There is no dashboard. There is one thing: a palette you summon with a keystroke, anywhere in macOS. This guide walks you from a fresh download to your first ten actions.
Install
Download the DMG from vehla.app/download. Open it, drag Vehla.app into Applications, eject the DMG, launch the app. Vehla lives in your menu bar — look for the small aurora glyph next to your battery icon.
Permissions
Vehla asks for two macOS permissions on first launch:
- Accessibility. Required to read selected text from other apps. Without it, the "selection" input is unavailable but clipboard and paste still work.
- Input Monitoring. Required for the global hotkey. Without it, you'll have to click the menu-bar icon to open the palette.
Both are reversible from System Settings → Privacy & Security at any time. Vehla never reads anything until you press the hotkey.
Your first action
- Open any app with text. Mail, Notes, your editor — anything.
- Select a paragraph.
- Press
⌥ Space(or your custom hotkey). - Type a few letters of the action you want —
rew proffinds "Rewrite — Professional" — and hit↵. - The result streams in. When it finishes, it's auto-copied to your clipboard. Paste anywhere.
Keyboard shortcuts
| Shortcut | What it does |
|---|---|
⌥ Space | Open palette (default — rebindable in Settings) |
⌥⇧R | Run Rewrite Selection on the current selection |
↑ / ↓ | Navigate the action list |
↵ | Run the focused action |
/ | Filter to snippets |
Esc | Close result view first, then close palette |
Inputs & context
The palette assembles its input from a few places:
- Pasted text. If you paste into the palette, that becomes the input. The query field stays clean for filtering actions.
- Clipboard. Used automatically if "Use clipboard as palette input" is enabled in Settings → General.
- Selection. Highlighted text in the front app, captured when you press the hotkey.
The context label in the palette tells you whether Vehla is using pasted text, clipboard text, or a selection.
Output & copy
Responses stream as Markdown and render visually — headings, lists, code blocks, bold, italic. When the stream finishes, the result is auto-copied to your clipboard. You can also use the Copy button in the result view.
- Formatted (RTF). Default. Pastes with bold, headings, lists into Mail, Pages, Notion, Slack — anywhere that respects rich text.
- Plain. Strips Markdown syntax (
**,#, etc.) and emits clean plain text.
Snippets
A snippet is a reusable prompt with template variables. Snippets are filtered by typing / in the palette.
{selection} # the selected/pasted input text
{clipboard} # the system clipboard
{app} # the front app name, when available
Example: a "PR description" snippet
Title: PR Description
Trigger: /pr
Prompt:
Write a pull-request description for the following diff.
Use sections: Summary, Test plan.
Keep bullets concise and user-facing.
---
{selection}
Personas
A persona is a small style block that's silently prepended to every prompt. Use it to lock the voice across actions without writing it into each snippet. A persona has four fields:
- Name. Shown in the palette footer when active.
- Tone. One-line description of the voice.
- Vocabulary. Words you do and do not use.
- Forbidden. Words and phrases to never produce ("just", "leverage", "delve", emoji, etc.).
Memory notes
Memory is a single plain-text note (max 4 KB) that's injected at the top of every prompt as system context. Use it for things Vehla should always know:
My name is Sam. I'm the founder of Vehla.
I write in American English. I prefer en-dashes, never em-dashes.
My company is Kaila Consulting Inc., based in Ottawa, Canada.
Customers usually email from a +work address.
Local models
Vehla ships with an MLX-based local inference runtime. The default model is Gemma 4 E2B (4-bit), an estimated 2.5 GB download for fast on-device replies. You can switch to Gemma 4 E4B (4-bit) for stronger quality or Gemma 4 E4B (8-bit) for the highest local quality.
To install a local model:
- Open Settings → Models.
- Choose a model from the catalog.
- Click Download. Progress shows in the menu bar.
- Toggle "Use Local AI" in Settings → General.
When Local AI is on, no network call is made for inference. Cloud keys can stay configured — Vehla just won't use them.
Cloud API keys
Vehla stores every key in macOS Keychain. We do not have a server, so the keys go from your Mac directly to the provider. Per provider:
- OpenAI — paste a key starting with
sk-. - Anthropic Claude — key starts with
sk-ant-. - Google Gemini — paste your AI Studio key.
- DeepSeek — paste a key from the dashboard.
- OpenRouter — one key, all models.
Ollama
Already running Ollama? Point Vehla at it.
- Settings → Providers → Ollama.
- Base URL: enter your local Ollama endpoint, usually
http://localhost:11434. - Model: any tag you've pulled, e.g.
llama3.2:3b.
Trial
The 7-day trial unlocks the app. No credit card. The trial is tied to your email and this Mac's device identifier, and is server-verified against Supabase to prevent abuse.
Activation
Buy a Pro license ($29.99). The purchase confirmation page shows your license key and downloads vehla-license.txt. Paste the email and license key into Settings → Privacy → License. Two activation slots, one per Mac. Reinstalling on the same Mac reuses the slot.
Deactivate a Mac
Need a slot back? Go to Settings → Privacy → License and click "Deactivate this Mac". The slot is released immediately and Vehla returns to trial mode (or unlicensed, if the trial is over).
Updates
Vehla periodically checks an HTTPS update manifest, downloads the new DMG when available, and verifies the DMG's SHA-256 before installing. If the hash doesn't match, the update is refused.
Privacy mode
Toggle "Use Local AI" in Settings → General to route AI actions only to the selected local model. If local AI is unavailable, Vehla shows an error instead of falling back to a cloud provider.