A little clover that lives on your Mac. Hold ⌃ ⌥ space or just say “Clover”, and ask.
It moves your windows, finds your files, reads your screen and types for you anywhere.
Free, open source, and your voice never leaves your Mac.
curl -fsSL https://raw.githubusercontent.com/joinhackyard/clover/main/install.sh | bashNeeds macOS 26 and one AI: Claude Code on your Claude plan, Antigravity on your Google plan, your own API key, or Ollama on your Mac.
Prefer a ready-made app? Grab it from Releases. Every way to install is below.
Things follow your fingers, keep their speed when you let go, and you can catch them mid-air.
On a Force Touch trackpad you feel a little tick when a gesture lands. Reduce Motion turns it all into a calm fade.
Things to say
| You say | Clover |
|---|---|
| “Code on my big screen, Chrome and Terminal on the laptop.” | Arranges three windows across two displays. |
| “Open Spotify.” or “Terminal on the left.” | Runs instantly, with no AI at all. |
| “Find my notes about the Tokyo trip.” | Searches your files by what’s inside them and opens the match on your other screen. |
| “What’s wrong with this code?” | Looks at your screen and answers in a line. |
| “Reply to this. Thursday works, send me a time.” | Reads the email on screen and writes the reply. Insert puts it at your cursor. It never sends. |
| “Move my dentist appointment to 4.” | Shows the old and new time on a card and moves it when you approve. Adding is immediate; moving or deleting asks first. |
| “Find me a desk lamp under $30 on Amazon.” | Works in Chrome behind your apps; a live mini screen shows it. |
| “Where do I turn on Night Shift?” | A ring lights up the exact spot on your screen. |
| “Play my late night coding playlist.” | Plays it in a second, no clicks. |
| “When I say focus mode, close Slack and open my to-do list.” | Remembers it. Next time, two words do it all. |
Ask for something new once and Clover works out the steps. Ask again and it runs in a blink, with no AI. Say “remember…” and every ask after that knows it.
Hands-free and voice commands
Turn on Wake word in Settings → General → Hands-free (off by default). The word is “Clover” unless you type your own. Say it, with or without “hey” first; a little chirp means Clover is listening. Speech is recognized on your Mac only.
After each answer Clover listens again. In hands-free chats it reads answers aloud (Settings → Read answers aloud in hands-free chats) and plays a soft chime when it’s your turn. Clicking other apps never closes a hands-free chat. While the wake word is on, macOS shows the orange mic dot.
Voice commands never reach the AI:
| Say | Clover |
|---|---|
| “stop”, “cancel”, “that’s all”, “thanks Clover”, “bye” | Ends the hands-free chat |
| “copy that” | Copies the last answer |
| “say that again”, “repeat that” | Reads the last answer again |
| “be quiet”, “shush” | Stops talking and listening until you say “Clover” |
Clover has its own little sound pack too (Pip, Hop, Bloom, Hush, Chirp), or classic Mac sounds, or silence.
Bring your own AI
Settings → Intelligence → AI provider:
| Provider | What you enter | Notes |
|---|---|---|
| Claude Code (default) | Nothing: your Claude plan sign-in | Background agents, connectors and routines run here. |
| Antigravity | Nothing: your Antigravity (Google) sign-in | Runs the agy CLI headless on your existing plan. Clover’s safety gate is installed as its PreToolUse hook; if Antigravity doesn’t load the hook, Clover only lets it answer, never act. Optional model override. |
| Claude API | Anthropic key | Defaults: claude-haiku-5-5 fast, claude-sonnet-5-5 for real work. Uses prompt caching. |
| OpenAI | OpenAI key (base URL optional) | Defaults: gpt-5-mini fast, gpt-5 for work. Load models lists your chat models. |
| Azure OpenAI | Endpoint, key, deployment (+ optional work deployment), API version | Classic …/openai/deployments/<name> URLs, or v1 for the Azure AI Foundry v1 API. |
| Google Gemini | Gemini API key | gemini-3.5-flash fast, gemini-3.1-pro for work. |
| OpenRouter, Groq, Mistral, DeepSeek, xAI | That service’s key | Sensible fast/work defaults; change them or load the model list. |
| Ollama | Nothing (local) | Talks to http://localhost:11434/v1; pick a model you’ve pulled. |
| Custom | Base URL, optional key, model, format | Any OpenAI-compatible chat completions server (LM Studio, vLLM, Together…) or Anthropic Messages. |
Test connection makes one tiny real call and tells you what’s wrong (bad key, wrong deployment, unreachable). With an API key, Clover runs its own tool loop: the model gets a bash tool and a read_file tool (screenshots come back as images), and every call goes through the same safety gate as Claude Code. Cheapest keeps every ask on the fast model, Balanced moves long jobs to the work model, Most capable always uses the work model. Keys stay in ~/.config/clover/settings.json (mode 0600) and only go to the provider you chose.
Permissions and safety
Settings → Account & Access → Safety has three modes:
| Mode | What Clover does |
|---|---|
| Ask first (default) | Shows an Allow card before anything deletes, sends, buys, runs a program or changes a file. |
| Auto | Acts on its own and only asks before deleting or buying. |
| Bypass permissions | Never asks. |
In every mode, for every AI provider, rm, sudo, disk tools, shutdown and git push stay blocked. Every exact command is in the ask log.
Every gesture
| Where | Gesture | What happens |
|---|---|---|
| The box | Two fingers sideways | Follows your fingers. Past a third of its width, or flicked, it flies off and closes. Short of that it springs home. |
| The box | Pinch in | Tucks into the small bar with its live steps. |
| The small bar | Pinch out, or pull down with two fingers | Opens the full box again. |
| An answer | Force click | Presses in with your finger and reads the answer aloud. |
| An agent card or an idea | Two fingers down | Its quiet choice: Later or ✕. |
| Settings | Two fingers sideways | The next or previous section. The ends stretch and bounce back. |
| Setup | Two fingers sideways | Back, or on to the next step. |
Only clearly sideways (or, on a card, clearly downward) movement counts, never over something that scrolls that way. Turn them off in Settings → General → Gestures.
The shortcut, the box, dictation and pointing
Shortcut. Choose Hold to talk or Press to toggle in Settings → General → Shortcut behavior. Pressing it while Clover answers stops it; during spoken playback it stops the voice. Esc cancels listening without sending.
The box. Click any answer to copy it. Click your request to edit and ask again, or press ↑ in an empty typing box to recall it. Answers come with code blocks and copy buttons, link chips, tables and math. While Clover works in a covered window, another Space or another display, a live mini screen shows that window.
Dictate anywhere. Hold fn to talk, let go to insert. Double-tap to lock it on. Verbatim types Apple’s on-device transcript with no AI. Clean up makes one quick AI pass that keeps your words, fixes what it clearly misheard, drops the “um”s, honours “scratch that”, and turns “new line” into formatting. For other languages pick Whisper in Settings → General → Speech model; it runs whisper.cpp on your Mac.
Point at your screen. Click it next to the mic, then click, circle or scribble on anything and ask about it. The other way around, ask “where do I…?” or “explain this and draw it” and Clover draws boxes, arrows and labels over your screen, one step at a time.
Agents, routines and Meeting Copilot
Ask for something big (“find me USB-C hubs”) and Clover hands it to a background agent while you keep working; a chip shows its live steps. Say “every weekday at 8, summarize my calendar” for a routine, or “tell me when the build is done” to watch a window with no AI while it waits. Agents and routines run on Claude Code.
Meeting Copilot (Settings → Meetings): live answers during calls, local transcripts under ~/.config/clover/meetings/, and a recap afterwards, by AI or fully on your Mac.
Install, update and remove
You need macOS 26 or later, Apple’s command line tools (xcode-select --install), and one AI: Claude Code on a Claude Pro/Max plan, the Antigravity CLI, an API key for any provider above, or Ollama.
One line. Checks your Mac, downloads Clover to ~/.clover, builds ~/Applications/Clover.app and opens it. Clover starts at login and updates itself (Settings → About & Updates). The first launch walks you through each macOS permission.
curl -fsSL https://raw.githubusercontent.com/joinhackyard/clover/main/install.sh | bashThe app. Every version is built by CI and attached to Releases as Clover-vX.Y.Z-macOS.zip with its SHA-256. It’s signed ad hoc, not notarized, so after unzipping into ~/Applications run xattr -dr com.apple.quarantine ~/Applications/Clover.app once, or right-click → Open.
Nix. Run it again to update. Nix installations show this update path in Settings instead of using Clover's Git updater.
nix run github:joinhackyard/cloverFrom source.
git clone https://github.com/joinhackyard/clover.git && cd clover && ./build.shRemove. launchctl bootout gui/$(id -u)/org.hackyard.clover, then delete ~/Applications/Clover.app, ~/.clover, ~/.config/clover and ~/Library/LaunchAgents/org.hackyard.clover.plist.
Peek inside
python3 -m unittest discover -s testsOffline regressions for the brain, the provider engine (against mock Claude, OpenAI and Azure servers) and the pages. For UI checks run python3 -m http.server 8765 --bind 127.0.0.1 and open tests/ui.html or tests/settings.html: they use a mock native bridge and make no Mac actions or AI calls. CI also compiles the app on macOS 26.
| Where | What lives there |
|---|---|
Clover.swift |
The app: hotkey, wake word, speech, overlay, sounds, gestures, windows |
clover.py |
The brain: instant commands, system prompt, helpers for windows, web and screen, the safety gate |
clover_engine.py |
Clover’s own model engine for API keys |
ui/ |
The overlay, setup, Settings, agents and meeting pages, the orb and the sound pack |
docs/ |
The website, published to joinhackyard.github.io/clover by .github/workflows/pages.yml |
scripts/ |
The sounds and the clover art, drawn from code |
Budget. Instant commands cost nothing. AI asks aim for a median under $0.002 and 6 s (python3 clover.py --budget). The system prompt stays under 10,000 characters, enforced by tests.
Privacy. Clover sends nothing anywhere except to the AI you chose. Anonymous usage counts are off unless a build sets CLOVER_POSTHOG_KEY.
MIT © Hackyard. See LICENSE, and THIRD_PARTY_NOTICES.md for the small pieces that keep their own notices.







