Euclid app icon

The shortest path from
thought to command.

A native macOS launcher for developers. Press ⌥Space, type, hit ↵. Instant, offline, and configured in one TOML file you can read top to bottom.

Free for personal use during the beta · macOS 14+ · Apple Silicon and Intel · signed and notarized

10,000 items · 1.4 ms worst case
1.4 msworst-case search over 10,000 items
9 msto show the panel (median)
54 MBmemory at idle, 0% CPU
0accounts, trackers or cloud syncs

Release build on a GitHub Actions macOS runner, 25 October 2026. How we measure. The footer in the app shows the same timing on every search.

Why Euclid

Not another extension store or AI subscription. A sharp tool you configure like the rest of your setup.

01 · lightning fast

Native Swift, no web views

No Electron and no JavaScript runtime. Results update on every keystroke, and the footer tells you how long it took.

02 · no AI lock-in

Your agent, your model, your key

AI is just another action. Hand a question to Claude Code, Codex, or a local model through Ollama, in one keystroke. No Euclid AI plan, and none of it is required.

03 · offline by design

Nothing leaves your Mac

Your clipboard, history and index stay on disk. No account, no telemetry, and the licence is checked offline. Every network call, listed.

04 · transparent config

One TOML file, nothing hidden

Every action is one shell line you can read in ~/.config/euclid/config.toml. It reloads on save and --check-config lints it in CI.

05 · extensible

If it runs in a terminal, it's an action

Scripts in ~/.config/euclid/bin are on every action's PATH. Share a team config, import Raycast and Alfred snippets, and let agents search Euclid over MCP.

06 · everything optional

Switch off what you don't use

Clipboard, browser history, files, notes, integrations, update checks: each is one line in the config. Page indexing stays off until you turn it on.

Your whole setup is one folder. Put it in git.

Everything you configure lives in ~/.config/euclid. Commit it with your dotfiles, and a new Mac is one git clone away.

~/.config/euclid/
├── config.toml  # actions, snippets, hotkeys
├── bin/         # your scripts
└── plugins/     # one folder each

$ cd ~/.config/euclid
$ git init && git add .
$ git commit -m "my euclid"
  • Review it like code. Every change is a diff you can read, revert or share in a PR.
  • No secrets in the repo. Tokens stay in the Keychain; plugins and integrations read them with a command.
  • No machine junk either. Clipboard, history, indexes and the licence live in ~/Library/Application Support/Euclid.
  • Share with your team. include a team file and point [plugins] paths at a team repo; your own settings still win.

What you don't sign up for

Launchers tend to grow accounts, AI plans and extension stores. Euclid keeps the box small and hands you the keys.

EuclidThe usual launcher
PricePay once. Free during the beta.Monthly plan for AI, sync and themes
AIAny agent or model you run, local ones tooThe vendor's AI, on the vendor's plan
Extending itA script that prints JSON, in any languageAn SDK, a build step and a store review
SettingsOne folder you keep in git: config, scripts, pluginsA settings window and a cloud account
Your dataStays on your MacSynced to someone's server

Where your data goes

Euclid works with the network unplugged. These are the only times it goes online.

  • Update checks ask GitHub for the latest version. Turn them off with [updates] check = false.
  • Bitbucket and Jira, only if you set them up, talk straight to your own server, with a token your own command fetches (Keychain, 1Password CLI).
  • Page indexing, off by default, fetches pages you already visited so you can search their text.
  • Your actions do whatever their shell line says, nothing more.
  • Never sent anywhere: what you type, your clipboard, your history, your files, your usage counts.
  • Password managers: copies from 1Password and friends are never recorded.
  • This website counts page views with cookie-free Cloudflare Web Analytics. The app has no analytics at all.

Everything in the box

Built in, on by default unless it says otherwise. Each one is a line in the config you can switch off.

Search

  • Apps, git projects and files, files via Spotlight
  • Clipboard history: text, images and copied files
  • Browser history from Arc, Dia, Chrome, Safari and more
  • Obsidian notes by title and text
  • Page text of sites you visited opt-in
  • Bitbucket and Jira: your PRs, reviews and issues

Answers as you type

  • Calculator and units: 1.5 gb in mb
  • Epoch ⇄ date: 1697040000
  • JSON, JWT, base64, URL decode and pretty-print
  • Colours: #ff8800 ⇄ rgb(), with a swatch
  • Fresh UUIDs, and ↵ copies any answer

Without opening the panel

  • Text expansion: type a snippet's keyword in any app opt-in
  • Per-command hotkeys for any app, project, action or snippet
  • Snippets with {date} {clipboard} {uuid}
  • MCP server: your agents search what Euclid knows

Make it yours

  • Actions: any shell line, on ⌘1–⌘9 and ⌘K
  • Project tasks: make, npm, just, cargo in a new tab
  • Preview pane: clips, images, READMEs, Quick Look
  • Learns what you pick, plus aliases and favourites
  • Team config via include, and Raycast/Alfred import

See the complete feature list →

Describe a plugin. Your agent builds it.

Say what you want in plain words. Paste the prompt into Claude Code, Codex or any agent with a shell. It reads the guide, writes the plugin, tests it with --try-plugin, and it shows up in the bar on save.

1. Describe what you want

2. Copy the prompt into Claude Code, Codex or any agent with a shell

The prompt points at the plugin guide, the whole format on one page. Euclid also keeps a copy at ~/.config/euclid/plugins/AGENTS.md. Agent without web access? and paste it in first.

More prompts and how it works →

Plugins are just scripts

A folder with a plugin.toml and a script in any language that prints one JSON object per line. No SDK, no build step, no store. Save it and it's in the bar.

# ~/.config/euclid/plugins/tokens/plugin.toml
name = "Claude tokens"

[badge]                     # a chip on the search bar
run   = "./today.sh"        # prints "1.2M tok · $4.10"
refresh_minutes = 5
click = 'ghostty-run tab npx -y ccusage@latest daily'
  • [source] adds items to search, refreshed in the background.
  • [answer] replies to what you type, on a prefix or a regex.
  • [badge] puts a live status on the bar.
  • [[action]] adds commands to ⌘K.
  • Let your AI write one. The format ships as AGENTS.md: ask Claude Code or Codex, check it with --try-plugin.

Ready to add, one command each:

githublinearslacktokenscurrencydefinecontactsshortcuts
euclid-bar --plugin add github

Browse plugins and starter prompts → · or paste a one-line action

Actions: one line each

Your query arrives as $1, passed as an argument, never pasted into the command.

[[action]]                                   # ⌘1 and ⌘↵
name = "Ask Claude in a new Ghostty tab"
run  = 'ghostty-run tab claude "$1"'

[[action]]                                   # ⌘2
name = "Codex in a herdr split"
run  = 'herdr-run split codex "$1"'

[[action]]                                   # a local model, no API key
name = "Ask Llama on this Mac"
run  = 'ghostty-run tab ollama run llama3.2 "$1"'

[[action]]
name  = "Search GitHub code"
alias = "gh"
run   = 'open "https://github.com/search?type=code&q=$EUCLID_QUERY_URL"'

[[action]]
name = "Pretty-print JSON to clipboard"
run  = 'printf %s "$1" | jq . | pbcopy'

Browse all actions →

Free while in beta. Pay once after.

Personal use is free during the beta, and stays free for everyone who installs before launch. After that it's US$29, once, with a 30-day trial that never locks.

Personal
Free during the beta, then US$29 one-time
  • For you, on all your Macs
  • Install during the beta and it stays free
  • Every feature and integration
  • 2 years of updates included
  • No account, no subscription
Business
US$59 per seat, one-time
  • Required for use at work
  • Invoices and volume pricing
  • Licences move between people as your team changes
  • 2 years of updates included
Buy for your team