Ask your Mac. It shows you where. Hold ⌃ control + ⌥ option anywhere and ask out loud ("where do I check battery health?"): a pointer flies out of the notch and lands on the answer on your screen. Hold fn and talk, and your words are typed where your cursor is, cleaned up in the style of the app in front: offline by default with Apple's on-device recogniser, eleven Indian languages with your Sarvam key. And when it is more than a question, hand the task to a Codex agent. MIT licensed.
Or with Homebrew: brew install --cask flowsxr/tap/openclicky
- Open the dmg and click Move to Applications when OpenClicky offers (or drag it there). Grant Microphone and Accessibility when the walkthrough asks: the first hears you, the second pastes. Type your email when it offers a free account (no password, no key) and spoken answers and polished dictation work straight away; or skip it and keep everything on your Mac.
- Hold ⌃ control + ⌥ option anywhere and ask about what is on your screen ("where do I check battery health?"). The pointer flies out of the notch to the answer and tells you what to do.
- Hold fn in any text box, say a sentence, let go. It is typed where your cursor is; the orb at the bottom of the screen shows every step. Tap fn to start a take and tap again to finish; two quick taps or esc discard it. Open OpenClicky (menu bar → open openclicky) for your history, the dictionary ("you say aditya shatriya → it writes Aaditya Kshatriya"), spoken shortcuts ("my sign-off"), and a style per app.
Hold ⌃ control + ⌥ option and ask about anything on screen, tap ⌃ twice to type instead, tap
fn + ⌃ twice for hands-free. The "do work" lane (files, commands, apps) additionally needs the
openclicky CLI and Codex: see Run the agent.
Nothing leaves your Mac until you choose an engine that needs the network (Settings → engine): Sarvam with your own key (Saaras hears Hindi, Tamil, Telugu, Malayalam, Kannada, Bengali, Marathi, Gujarati, Punjabi, Odia and English, with the words appearing while you speak), or the OpenClicky backend with a free account or your OpenAI key. The same key or account polishes takes with a model (punctuation, "three p.m." → "3 PM", your style's rules) and powers Hey Clicky: hold fn + ⌃, say "make it formal", and the selected text is rewritten.
An early Linux client, contributed by Maya Okonkwo: ask about your
screen and the pointer points, step-by-step guides, offline dictation and spoken answers, with the
same keys and the same ~/.openclicky files as the Mac. Python and GTK 3, X11 only for now (no
Wayland). Download the .whl from the latest release
and follow OpenClicky on Linux.
A native Windows port, contributed by Tan Wei Jie (Justin): dictation,
ask out loud with the pointer, the agent lane, skills, the island and every settings page, in C# and WPF.
Hold Ctrl + Win to talk and right Ctrl to dictate; private offline dictation is Parakeet. x64 and ARM64,
Windows 10 (2004 or later) and 11. Download it for Windows
(the Setup.exe on the latest release; not
code-signed yet, so SmartScreen may warn), or build it from windows/.
The orb rests at the bottom of the screen and shows each take: bars while listening, "moving your words", "moved to text box". The first run happens on the island under the notch: one card per permission, then a short tour that waits for you to try each thing (dictate, ask, hand over a task):
| The orb | a pill at the bottom of the screen: resting, listening with live bars, "moving your words", "moved to text box". Three looks, three themes, draggable, can hide when idle. |
| Styles, app by app | developer (code stays code), work messaging, personal messaging (lowercase, shorthand), email, other apps. Assign any app to any style; edit the rules the model reads. |
| Dictionary & shortcuts | names spelled your way, replaced inside any sentence; shortcuts that expand when you say exactly the trigger. Plain JSON under ~/.openclicky/dictation. |
| History | every take with what you said and what was written, grouped by day, searchable, editable, on this Mac in SQLite. Incognito keeps takes out of it. |
| Language & script | auto-detect or pin a language; native script or roman letters for Indian languages. |
| Installed like an app | self-installs from the dmg, updates itself (Sparkle), opens at login if you want, frees the fn key from Emoji & Symbols with one click. |
The idea comes from Google DeepMind's AI pointer ("Reimagining the mouse pointer for the AI era", May 2026): a pointer that understands what is on your screen and why it matters to you. OpenClicky is an independent, open-source take on it and is not affiliated with Google. Parts of the Mac app's first version came from Farza's MIT-licensed Clicky; HeyClicky is a separate product and this project is not affiliated with it either. The dictation product shape follows Sarvam's Kivi, studied in docs/research/2026-10-06-kivi-reverse-engineering.md; no Kivi code, art or fonts are used.
Thank you. To Adrien Baranes, Rob Marchant and the Google DeepMind team, whose AI pointer showed what a pointer could become and is where OpenClicky began. To the Sarvam AI team behind Kivi: the way it handles dictation (one key anywhere, a style per app, a history you can search, an orb that shows every step) taught us how dictation on a Mac should feel, and much of OpenClicky's dictation and settings is modelled on it. And to Farza, for open-sourcing Clicky.
Modeled on the HeyClicky idea, built as a headless agent core plus a native shell:
macos/OpenClicky— the native app.Dictation/is the take loop (the key, the engines, the formatter, the paste, the store), the orb, the main window and onboarding; the rest is the shell (which started from Clicky's code): the cursor buddy, ScreenCaptureKit capture, the companion shortcuts, in-process OpenAI Realtime voice, and an Agent mode that hands "make / fix / run…" requests to a Codex thread.agent/— a TypeScript CLI that drives the OpenAI Codex CLI over JSON-RPC stdio (the "do work" lane), plus the ask lane, a cheap gate that routes between them, screenshots, push-to-talk voice, an always-ontalkloop, and thread management.backend/— a Hono API that holds every provider key, verifies Supabase auth, proxies model calls, mints Realtime voice secrets, transcribes audio, and serves the skill library. Runs on Node or Cloudflare Workers unchanged.- Skills in three layers — 15 built-in agent skills, 17 app-teaching skills matched to the app or
site in front of you, and your own library in
~/.openclicky/skills(folders dropped in by hand, switched on with theopenclicky skillsCLI). The active set reaches both the voice model and the agent. Missing your app? Request a skill, or add one by pull request (how). - Pointing from Realtime voice — the voice model gets a
point_attool, so "where is the export button?" flies the buddy to it while the answer is spoken, one call per step for walkthroughs.
Your own keys need no account. Put openaiApiKey (and anthropicApiKey for the Claude lanes —
an OpenAI key alone does not cover those) in ~/.openclicky/shell.json and leave token empty: the
app and the CLI then call OpenAI and Anthropic directly, and OpenClicky's servers are not involved.
The hosted backend is only for people without keys, and the backend's own keys never leave it. See
own keys or a free account.
Free accounts. OpenClicky's hosted backend runs on a research grant, so anyone can use it for free while the grant lasts: type your email during setup and it works at once, with a $1 starter allowance per Mac; click the link in the email and it becomes $10 of use a month, to use as fast as you like. There are no passwords: on another Mac you sign in with your email and a 6-digit code. Places are limited (100 confirmed accounts); when they are full, use your own key instead — that never needs an account.
Not there yet: active-document reading, connectors (Composio app connections are switched off in 0.8.0 and return in a later release), cua-driver itself (only the wiring), HeyClicky's skill approval queue and team-shared skills, drawing/circling annotations on screen, a paywall, crash reporting; on the dictation side, history sync between Macs, teams and a leaderboard, rich paste for Notion / Sheets / Slack, and Wispr Flow import.
| Document | What |
|---|---|
| How it works | the request flow end to end, repository layout, the three skill layers, following upstream HeyClicky |
| Setup and running from source | prerequisites, backend, CLI, macOS app, provider choices, own keys vs free accounts, auth flow, releases and the update feed |
| Dictation design | the take loop, engines, formatting, the space, the orb, installation — what was built and why |
| Kivi, reverse-engineered | the report the dictation product shape was taken from |
| Dictation hand test | what to try by hand after a build, step by step |
| OpenClicky on Linux | the early Linux client: install, shortcuts, settings, what works and what does not yet |
| Skill authoring | SKILL.md format, matching, budgets, activation |
app-skills/ |
the 17 app-teaching skills and how to add one |
| CONTRIBUTING.md | setup, test commands, where help is welcome |
- Dictation: rich paste for Notion / Sheets / Slack, history sync between Macs, Wispr Flow import,
Wayland for the Linux client. The Windows client is in
windows/. - Shell (
macos/OpenClicky): stream agent milestones onto the cursor bubble, Keychain token entry (upstream PR #80 is a good template), active-document reader. - Voice: wake word, spoken task-finished summaries, Deepgram/Whisper STT fallback.
- Backend:
/agent/realtime/turn|warmup,/skills/activations/sync(cross-machine activations), Composio session brokering. - Skills: the approval queue + "My Skills" filter, team sharing, and more app skills (HeyClicky covers 89 apps).
- Pointing: drawing/circling on screen (HeyClicky's spatial context and hand-drawn annotations).
- Agent: Composio + cua-driver end-to-end once those services are configured; barge-in/always-on voice.
Windows releases are signed. Free code signing is provided by SignPath.io,
with a certificate from the SignPath Foundation. Only binaries built by this
repository's GitHub Actions workflow (.github/workflows/windows-release.yml) from its public source are
signed, and only OpenClicky's own files: the third-party libraries it ships keep their publishers'
signatures.
- Committers and reviewers: contributors to this repository
- Approvers: @prasanthsasikumar
Privacy. OpenClicky reaches other networked systems only for what you use it for:
- the AI vendors whose keys you add (OpenAI, Anthropic and others), called directly with your key;
- the hosted OpenClicky backend when you use a free account (first-run setup without keys of your own starts a guest account, identified by a device hash, with no email);
- downloads of the optional offline models (Kokoro, Parakeet) and update checks against this repository's GitHub Releases.
Dictation with the offline engine, your history, dictionary and settings stay on your computer. Analytics are off unless a build is given a PostHog key.
MIT, see LICENSE (the Mac app is derived from Farza's MIT-licensed Clicky; HeyClicky is a separate
product). Everything here runs on your own machine with your own keys; the hosted backend is only a
convenience, free while the grant lasts. CONTRIBUTING.md has the setup, the test commands, and where help is
welcome. Pull requests run the TypeScript and Swift test suites in CI.







