Skip to content

About

Free, open-source voice assistant for macOS: ask about your screen and a pointer shows you where, dictate anywhere (offline by default), hand tasks to a Codex agent. Your own key or a free account. MIT.

Topics

Resources

Contributing

Stars

8 stars

Watchers

0 watching

Forks

Repository files navigation

OpenClicky

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.

Download for macOS Windows (new) Linux (early) Website Join the Discord How it works Contributing

Or with Homebrew: brew install --cask flowsxr/tap/openclicky

Latest release macOS 14.2 or later Apple Silicon and Intel, notarized Linux, X11 MIT licence

Asking out loud where battery health is: the pointer flies to Battery in System Settings. Then holding fn and talking: the sentence is typed into TextEdit.

Try it in three steps

  1. 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.
  2. 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.
  3. 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.

Ask and get pointed at it

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.

Watch the OpenClicky demo

Dictation that stays on your Mac

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.

On Linux too (early)

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.

On Windows too (new)

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/.

See it work

The record page: a greeting, the engine banner, the take box, recent takes, words this week
record. The engine banner says where your voice goes; takes land in the box when this window is in front.
History: takes grouped by day, searchable, with a question box
history. Every take with what you said and what was written; type a question and press enter to ask across them.
Styles: language and script, then one style per group of apps
styles. Auto-detect or pin a language, native or roman script, and the apps written in each style.
Settings: the General page inside the same window, below the word pages in the sidebar
settings. In the same window: General, Dictation, Keyboard, Clicky, The Orb, Privacy & Security, Account, About, with a search over every setting.

The orb: a small dark pill with two dashes

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 first-run tour on the island: your turn, ask me something, with the control and option keycaps

What dictation gives you

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.

What is inside

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-on talk loop, 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 the openclicky skills CLI). 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_at tool, 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.

Documentation

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

Next

  • 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.

Code signing policy

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.

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.

License and contributing

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.

About

Free, open-source voice assistant for macOS: ask about your screen and a pointer shows you where, dictate anywhere (offline by default), hand tasks to a Codex agent. Your own key or a free account. MIT.

Topics

Resources

Contributing

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages