Clover, start to finish.
Everything you need to install Clover, pick an AI, and get the most out of your voice, your trackpad and your screen.
Install
You need macOS 26 or later (Clover uses Apple’s new on-device speech) and one AI: Claude Code on a Claude plan, the Antigravity CLI on your Google plan, an API key, or Ollama.
Download the app
- Download the latest
Clover-vX.Y.Z-macOS.zip. Each release also carries a.sha256checksum. - Unzip it and move Clover.app into
~/Applications. - The build is signed ad hoc, not notarized, so the first time right-click it and choose Open, or run:
xattr -dr com.apple.quarantine ~/Applications/Clover.appOr install with one line
This checks your Mac, downloads Clover to ~/.clover, builds ~/Applications/Clover.app, starts it at login and keeps it updated. It needs Apple’s command line tools (xcode-select --install).
curl -fsSL https://raw.githubusercontent.com/joinhackyard/clover/main/install.sh | bashNix
nix run github:joinhackyard/cloverRun it again to update. Nix installs show this update path in Settings instead of Clover’s own updater.
First run
The first launch opens a short setup that checks your AI and walks through each macOS permission one at a time: Microphone, Speech Recognition, Accessibility (to move windows and type), Screen Recording (to see what you’re asking about) and, if you want them, Calendars and Automation.
Two fingers sideways turn the page in setup, the same as Back and Continue. You can reopen setup from the menu bar any time.
Choose your AI
Settings → Intelligence → AI provider. Test connection makes one tiny real call and tells you exactly what’s wrong: a bad key, a wrong deployment, an unreachable server.
| Provider | What you enter | Notes |
|---|---|---|
| Claude Code (default) | Nothing: your Claude plan sign-in | Background agents, connectors and routines run here. |
| Antigravity | Nothing: your Google sign-in | Runs the agy CLI headless. Clover’s safety gate is its PreToolUse hook; without it Clover only answers, never acts. |
| Claude API | Anthropic key | Haiku for quick asks, Sonnet for real work. Uses prompt caching. |
| OpenAI | Key, optional base URL | Load models lists your chat models. |
| Azure OpenAI | Endpoint, key, deployment, API version | Classic deployment URLs, or v1 for the Foundry v1 API. |
| Google Gemini | Gemini key | Flash for quick asks, Pro for work. |
| OpenRouter · Groq · Mistral · DeepSeek · xAI | That service’s key | Sensible defaults; change them or load the list. |
| Ollama | Nothing (local) | Talks to localhost:11434. Pick a model you’ve pulled. |
| Custom | Base URL, key, model, format | Any OpenAI-compatible server (LM Studio, vLLM…) or Anthropic Messages. |
Cheapest keeps every ask on the fast model, Balanced moves long jobs to the work model, Most capable always uses the work model. You can also switch from the model chip in the box.
~/.config/clover/settings.json (owner-only, mode 0600) and only go to the provider you chose.The shortcut and the box
Hold ⌃ ⌥ space, talk, and let go. Choose Hold to talk or Press to toggle in Settings → General → Shortcut behavior, or record your own shortcut.
- Pressing the shortcut while Clover answers stops it; while it’s speaking, it stops the voice. esc cancels listening without sending.
- Hover the box and a typing field grows in; type instead of talking whenever you like. Press ↑ in an empty field to recall your last request.
- Click an answer to copy it. Click your request to edit it and ask again.
- Under every answer: Copy, Read aloud and Follow up. Code blocks get their own Copy button; links become chips with their site.
- Drag the box anywhere; drag an edge to resize it. While Clover works in a covered window, another Space or another display, a live mini screen shows that window.
Hands-free
Turn on Wake word in Settings → General → Hands-free (it’s off by default). The word is “Clover” unless you type your own; say it with or without “hey”. A little chirp means it’s listening. Speech is recognized on your Mac only, and macOS shows the orange mic dot while the wake word is on.
After each answer Clover listens again, 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.
Voice commands
These 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” |
Gestures
Clover answers the trackpad the way Apple’s own apps do. Turn gestures off in Settings → General → Gestures.
| Where | Gesture | What happens |
|---|---|---|
| The box | Two fingers sideways | The box follows. 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 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. |
How it feels
- Momentum counts. A flick is judged by where its momentum would land, not where your fingers stopped, and the spring starts at the speed you let go.
- You can catch it. Fingers back on the trackpad while the box is springing, and it stops right there under them.
- The trackpad ticks on a Force Touch trackpad when a gesture passes its point of no return, and again when it lands.
- Edges stretch. Where there’s nowhere to go, things give a little and come back instead of stopping dead.
- Scrolling stays scrolling. Only clearly sideways (or, on a card, clearly downward) movement counts, never over a table or code block that scrolls that way.
- Reduce Motion turns every spring and flight into a quick fade.
Dictate anywhere
Hold fn to talk, let go to insert. Double-tap to lock it on. Your words land in whatever text field has the cursor.
- 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. It never answers or acts on what you dictate.
- For other languages pick Whisper in Settings → General → Speech model. It runs whisper.cpp on your Mac.
Settings → Dictation keeps a searchable history and your own words, so names and jargon come out right.
Point and draw
Click Point at your screen next to the mic, then click, circle or scribble on anything and ask about it. The other way round, ask “where do I…?” and a ring lights up the spot, or ask “explain this and draw it” and Clover draws boxes, arrows and labels over your screen one step at a time, like a whiteboard.
Agents, routines and watching
Ask for something big (“find me USB-C hubs under $40”) and Clover hands it to a background agent while you keep working. A chip shows its live steps; the Agents window has the full report.
- Routines: “every weekday at 8, summarize my calendar”.
- Watching: “tell me when the build is done” watches a window with no AI while it waits.
Agents and routines run on Claude Code.
Meeting Copilot
Enable it in Settings → Meetings. You get live answers during calls, local transcripts in ~/.config/clover/meetings/, and a recap afterwards: by your AI, or fully on your Mac if you turn AI summaries off.
Memory and learning
Say “remember…” and every ask after that knows it. Settings → Memory shows and edits what Clover remembers.
Ask for something new once and Clover works out the steps; ask again and it runs in a blink, with no AI. Opening apps, moving windows, playing music and web searches never need AI at all. Teach it phrases too: “when I say focus mode, close Slack and open my to-do list.”
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. |
rm, sudo, disk tools, shutdown and git push. Every exact command Clover runs is in the ask log.Calendar changes show the old and new time on a card first. Adding is immediate; moving or deleting asks. Replies Clover writes go at your cursor. It never sends them.
Privacy
- Apple’s on-device speech turns your voice into text. Audio never leaves your Mac.
- Clover sends nothing anywhere except to the AI you chose.
- No account, no telemetry. Anonymous usage counts exist only in builds that set
CLOVER_POSTHOG_KEY; the releases here don’t. - Meeting transcripts, memory and settings live in
~/.config/clover.
Updates and uninstall
Clover starts at login and updates itself when it’s idle. Turn that off in Settings → About & Updates. Every version bump on main is built by CI and published to Releases.
Remove Clover
launchctl bootout gui/$(id -u)/org.hackyard.cloverThen delete ~/Applications/Clover.app, ~/.clover, ~/.config/clover and ~/Library/LaunchAgents/org.hackyard.clover.plist.
Build from source
git clone https://github.com/joinhackyard/clover.git && cd clover && ./build.shClover.swift: the app. Hotkey, wake word, speech, overlay, sounds, gestures, windows.clover.py: the brain. Instant commands, the system prompt, helpers for windows, web and screen, and 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.
Run the offline checks with python3 -m unittest discover -s tests. For the pages, serve the repo with python3 -m http.server and open tests/ui.html: it uses a mock bridge and makes no Mac actions or AI calls. See CONTRIBUTING.md.
Troubleshooting
macOS says Clover “can’t be opened”
Release builds are signed ad hoc, not notarized. Right-click Clover.app → Open once, or run xattr -dr com.apple.quarantine ~/Applications/Clover.app.
Clover can’t move windows or type
Grant Accessibility in System Settings → Privacy & Security. If Clover is already listed, switch it off and on again after an update.
It can’t see my screen
Grant Screen Recording in System Settings → Privacy & Security, then quit and reopen Clover.
The wake word doesn’t hear me
Check Settings → General → Hands-free is on and the right microphone is chosen. Clover only opens the mic you pick, so Bluetooth headphones stay out of call mode.
My API key doesn’t work
Use Test connection in Settings → Intelligence. It names the problem: a wrong key, deployment, model or base URL.
Gestures don’t do anything
Make sure Settings → General → Gestures is on. Swipes only count when they’re clearly sideways and not over something that scrolls sideways, like a wide table or code block.
Where do I report a bug?
Settings → Report feedback prepares an issue for you, or open one on GitHub. Security issues go through SECURITY.md.
Clover Docs