Skip to content

Latest commit

 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

enprompt

enprompt

Write, dictate, and draw — from one key.

enprompt is a free, menu-bar writing assistant for macOS that turns your ⌥ Option key into a wand. Triple the speed of your typing, dictate with your voice, and turn anything on your screen into the perfect prompt — all without ever leaving the app you're working in.

macOS Version Downloads Swift Price


🎬 Watch it work

Two minutes, one Option key: expand a rough draft, dictate an idea aloud, and capture a screen region into a finished prompt.


✨ What can enprompt do?

enprompt is built around one gesture language. Every superpower is bound to the key, so you never have to think about shortcuts again — just press Option the way the moment demands.

Gesture Superpower What it does
(double-tap) Enhance any text Reads the focused text field and expands, shortens, or transforms it with your LLM of choice — then writes the result back in place. Type shorthand like btw the q3 numbers were gr8 and get back a polished sentence.
hold (1.2s) Dictate A live dictation bar appears under your cursor. Speak — the words are transcribed on-device and typed into the field you're focused on.
(triple-tap) Screen → prompt A crosshair lets you circle any region of your screen — an error message, a design, a chart. enprompt turns it into a prompt, you speak or type an instruction, and the answer lands in your text field.
+ draw Live canvas An overlay canvas appears on screen: draw, highlight, or laser-point over anything, perfect for presentations and screen-share annotations.
⌘Z Instant undo Reverts the last enhancement back to your original text.
Esc Dismiss Cancels dictation or the capture flow instantly.

Prompt-engineer mode 🧠

enprompt treats your text field like an LLM prompt box. You don't have to write full prompts — but when you do, it understands them:

  • Expandtldr: ship the landing page by friday and add a pricing table → a complete, structured paragraph.
  • Transformrewrite this as a formal email to my manager → polite, professional prose, written in place.
  • Shortencut this to 3 bullet points → crisp bullets.
  • Any instructiontranslate to french · make this funnier · turn this into a twitter thread — the focused text is the input, your words are the instruction, and the LLM does the rest.

💡 Safety guard: enprompt only ever activates when is pressed alone. If Option is combined with another modifier (⌥⌘, ⌥⇧…), nothing happens — your system shortcuts always win.


🚀 Install

The fastest way — one command, straight from GitHub Releases:

curl -L -o ~/Downloads/enprompt.dmg https://github.com/aadityakumarsah/enprompt/releases/download/v1.8/enprompt-1.8.dmg && open ~/Downloads/enprompt.dmg
  1. Download — run the command above (or grab the DMG from Releases).
  2. Install — drag enprompt into your Applications folder and open it.
  3. Grant Accessibility — System Settings → Privacy & Security → Accessibility. Needed once so enprompt can see your keystrokes and focused text field everywhere.

⚙️ First-run setup

  1. Click the enprompt icon in your menu bar → Settings…
  2. Pick a provider and paste your API key — it's stored in the Keychain, never in a file.
  3. Hit Save, then Test connection — the built-in self-test validates key, provider, and vision in one pass.
Provider Key looks like Notes
Google Gemini AIza… / AQ… Fast, generous free tier; supports vision capture
OpenRouter sk-or-v1… One key, every model (Claude, GPT, Llama…)
Anthropic sk-ant-… Claude-native, supports vision capture
Ollama (local) type ollama 100% local & private — free forever, works offline

🔒 Privacy by default: your API key lives in macOS Keychain, prompts go straight to your chosen provider (or stay on your Mac with Ollama), and there is no telemetry, no analytics, no accounts.


💸 100% free local setup (no API key, no money)

enprompt works fully offline and free forever with Llama models (run locally through the free Ollama engine). Nothing is sent anywhere. A brand-new Mac needs exactly four steps — enprompt guides you through them in Settings → LLM (the "Run locally — free & private" button and the ? buttons open the full guide — install commands, Llama text + vision downloads, disk space and benchmarks — at enprompt.pages.dev/run-locally/):

  1. Install Ollama (free, ~1 min)
    • Visit ollama.com/download and install the app, or run curl -fsSL https://ollama.com/install.sh | sh in the Terminal
    • Start the Ollama menu-bar app (the little llama icon must be there)
  2. Pull the models — one line in the Terminal, or click the buttons inside enprompt's Settings (Ollama models section) — no terminal needed:
    ollama pull qwen2.5vl:7b    # vision — reads your screenshots in ⌥⌥⌥ capture (~6 GB)
    ollama pull llama3.2        # text — enhance/dictate polishing (~2 GB)
    Any Ollama model works (llava, gemma3, qwen3…). Small models = faster on weaker Macs.
  3. Open enprompt → Settings… → LLM → Change → pick Ollama (local) — the server (http://127.0.0.1:11434/v1) and API key (ollama, a sentinel — there is no real key) fill themselves. Hit Save.
  4. Pick your models in the "Ollama models" section — enprompt lists everything you pulled and auto-selects the first vision-capable model for ⌥⌥⌥ capture. Done — double-tap to enhance.

💡 Not enough RAM/disk? Vision is only needed for screen capture — for pure text enhancement a ~2 GB model (like llama3.2) is plenty and runs on almost any Mac.


🏗 Architecture

File Role
KeyboardMonitor.swift Global CGEvent tap — sees every tap/hold system-wide and routes it to the right gesture
AccessibilityService.swift Finds the focused field via AXUIElement, reads & replaces its text, detects Terminal-style edge cases
LLMClient.swift Async client for Gemini, OpenRouter, Anthropic, and any OpenAI-compatible endpoint (incl. Ollama)
SpeechTranscriber.swift On-device dictation transcription
ScreenCapture.swift / CanvasController.swift Region capture for screen→prompt, and the live draw/laser overlay
KeychainStore.swift API key storage via SecItem
SelfTest.swift One-click connection + vision self-test (no hardcoded keys)
AppState.swift Shared state & gesture wiring

Repo layout

├── enprompt-app/     # Swift package — the macOS app (menu bar, event tap, UI)
└── enprompt-site/    # React + Vite landing page (deployed to enprompt.pages.dev)

Build & run

cd enprompt-app
./build_app.sh        # builds release and signs with your Apple Development identity
open build/enprompt.app

Landing site

React (Vite + react-router-dom). Routes: / (landing) and /run-locally (Ollama guide). Deploys to Cloudflare Pages from GitHub.

cd enprompt-site
npm install
npm run dev           # local dev server with SPA fallback
npm run build         # outputs static site to dist/

Cloudflare Pages settings: build command npm run build, output directory dist. public/_redirects makes every path serve the app, so deep links like enprompt.pages.dev/run-locally work.


enprompt — your keyboard, upgraded. Free forever. Built for macOS 14+.

⭐ Found it useful? Give the repo a star — it keeps the magic flowing.

About

enprompt — macOS menu-bar writing assistant. Double-tap ⌥ to enhance your text, hold ⌥ to dictate, triple-tap ⌥ to turn any screen area into a perfect AI prompt. Works with Claude, ChatGPT, Gemini, OpenRouter or local Ollama.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages