v0.1 Built for macOS 26 Tahoe · Read the changelog

Any repo.
Two keys.

⌥ SpaceSearch projects
⌥ TabSwitch windows
⌘ KProject actions

A keyboard launcher for developers who juggle dozens of repos across Cursor, VS Code, IntelliJ, Xcode, and every terminal in between. Press a hotkey, type three letters, land in the right window.

Apple-notarized Sandboxed No telemetry
14-day trial · no card macOS 26+ Tahoe Apple Silicon + Intel
+
Space
  • TS
    web-app
    ~/code/web-app · feat/pricing · 7
    Cursor
    VS Code
    IntelliJ IDEA
  • GO
    plexo-cli
    ~/code/side/plexo-cli · main
    IntelliJ IDEA
  • GO
    api-gateway
    ~/code/work/api-gateway · main
    IntelliJ IDEA
  • TS
    react-dashboard
    ~/code/work/react-dashboard · feat/onboarding · 3
    Cursor
  • RB
    notion-clone
    ~/code/side/notion-clone · main
Pressto open
On your desktop

Lives on your desktop. Two keys away.

No window to find. No app to alt-tab to. The palette appears wherever you are.

web-app · page.tsx
react-dashboard
api-gateway
platform-ios
~ pnpm dev
localhost:3000
admin-panel
etl-pipeline.py
odak-mac
plexo-cli · main.go
  • TS
    web-app
    ~/code/web-app · feat/pricing
    Cursor
    VS Code
  • GO
    api-gateway
    ~/code/work/api-gateway · main
    IntelliJ
  • TS
    react-dashboard
    ~/code/work/react-dashboard · feat/onboarding
    Cursor
  • RB
    notion-clone
    ~/code/side/notion-clone · main
⌥ SpaceSearch
⌥ TabSwitch
⌘ KActions

Find any repo. In three letters.

Every trip through Finder is a broken thought. Every dock-bounce is a thread lost. Hit ⌥ Space, type three letters, land in the right repo — your focus stays on the problem, not on hunting for the folder.

  • No syntax to remember"wba" finds web-app. "adak" finds odak. Typos forgiven.
  • Frecency, not alphabeticalRecent + frequent rises to the top. The repos you live in hit on the first letter.
  • Dirty-state badgesA red dot on repos with uncommitted work — never lose track of what you started.
  • SW
    odak-mac
    ~/code/odak-mac · feat/liquid-glass · 4
    Xcode
  • TS
    odak-site
    ~/code/odak-site · main
    Cursor
  • PY
    odak-scripts
    ~/code/odak-scripts · main
  • SW
    audio-dock
    ~/code/side/audio-dock · main
All editor windows ⌥Tab
  • Cursor
    web-app · pricing.tsx
    Cursor · ~/code/work/web-app
    just now
  • web-app · pnpm dev
    iTerm · zsh
    2m ago
  • Xcode
    platform-ios · AppDelegate.swift
    Xcode 16.2
    8m
  • IntelliJ IDEA
    platform-api · handler.go
    IntelliJ IDEA
    14m
  • VS Code
    platform-etl · pipeline.py
    VS Code
    32m
  • localhost:3000 · web-app
    Chrome · preview
    1h
⌥ SpaceSearch
⌥ TabSwitch
⌘ KActions

Every editor window. One list.

Cmd+Tab groups by app — useless when ten Cursor windows share one icon. Odak shows every window as a labelled row, grouped by project, most-recent first.

  • One list, not sixCursor, VS Code, Xcode, IntelliJ, GoLand, RubyMine, Zed, Sublime, terminals, and Chrome tabs tied to a localhost preview — all in one place.
  • Most recent, firstThe window you just left sits at the top — the keystroke you reach for is always the right one.
  • Event-driven, not polledWired into the macOS Accessibility API. No CPU spin, no lag — opens instantly.
⌥ SpaceSearch
⌥ TabSwitch
⌘ KActions

One actions library, every project.

Define your shortcuts once in ~/.odak/config.yaml. Drop an .odak file in any repo to pin its IDE and variables. Odak applies the right action to the right project — automatically.

  • Pin an editor per-repoDrop "ide": "Xcode" in .odak and that repo always opens in Xcode — even when you live in Cursor.
  • Variables that travelDeclare STAGING_URL in .odak once. Reference it from any global action — same shortcut, repo-specific result.
  • Conditional by filefileExists: Package.swift means "Open in Xcode" only shows for Swift repos. The palette stays relevant, not bloated.
📄 .odak JSON · in repo
// web-app/.odak
{
  "ide": "Cursor",
  "variables": {
    "STAGING_URL": "staging.acme.dev",
    "LOGS_QUERY": "kibana?q=landing"
  }
}
Actions · web-app ~/.odak/config.yaml
  • Open on GitHub ⌘G
  • Open {STAGING_URL} ⌘S
  • Tail Kibana logs ⌘L
  • >_
    Terminal in repo root ⌘⏎
  • Copy SSH URL ⌘⇧S
  • Open in Cursor ⌘C
Positioning

Why not just use Raycast?

Three tools, three jobs. Odak knows what a project is — which makes the difference.

Swiss-army launcher
Raycast
Fires anything. Calculator, clipboard, snippets, emoji, extensions, AI. Powerful. General-purpose.
Knows apps
Knows commands
Doesn't know what a repo is
Project switcher
Odak
One tool. It knows your repos, which editors have them open, and what each project wants you to do next.
Knows your projects
Knows which editor has them
Per-project actions
Window switcher
AltTab
Every window in the OS, in a flat list. Great at what it does. Has no idea two Cursor windows are the same repo.
Knows windows
Doesn't group by project
Can't open what isn't open
Pricing

$15. Once. Yours.

No seats, no subscription, no usage tiers. Buy it once, use it forever. Upgrades are free for two years.

Odak · one-time
14 days free
$15once
3 Macs · 2 years of updates
  • Every feature, unlocked. No pro tier, no add-ons.
  • Use on 3 Macs — desktop, laptop, work machine.
  • Two years of updates included. After that, keep the version you have.
  • 14-day free trial. No credit card.
Start 14-day trial ⌘ + D

One-time payment · instant activation · Sparkle auto-updates · 30-day refund

Pays for itself in a week.

Save fifteen seconds hunting for the right window, twenty times a day. Do the math.

Developers pay for tools that earn their place on the keyboard. We don't think that relationship should renew every month.

Apple-notarized Sandboxed Universal 2 No telemetry
FAQ

Quick answers.

Things people ask before they hit the trial button.

Will this run on my Mac?

macOS 26 Tahoe or later, on Apple Silicon and Intel. The Liquid Glass UI relies on macOS 26 APIs that don't backport to older systems.

I already use Raycast — why this?

Raycast knows apps and commands, not repos. Spotlight indexes everything, which means it indexes nothing well. Odak only knows projects — it sees which editors have them open and what each repo wants you to do next.

Which editors does it support?

Cursor, VS Code, IntelliJ IDEA, GoLand out of the box. Xcode and any other editor via a one-line bundle ID in Settings. Terminals and Chrome localhost tabs are tracked too.

What goes in .odak vs ~/.odak/config.yaml?

The .odak file in your repo root is small — just the IDE to use and any per-project variables. Your custom actions live globally in ~/.odak/config.yaml so you write them once and they apply everywhere. Conditional fields (e.g. fileExists: Package.swift) keep the palette relevant per repo.

Where does Odak store data?

Locally. Project list, history, and settings live in ~/.odak. Nothing leaves your machine — no telemetry, no analytics, no cloud sync.

What happens after the 14-day trial?

The trial unlocks every feature. After 14 days, you choose: $15 once, or stop using it. No card up front, no cancellation flow.

Refunds?

30 days, no questions. Email [email protected].