what shall we fix?
Frog
A coding agent for your Mac, built for local models.
Download for MacmacOS 26 on Apple silicon·updates itself
-
Answers in a second
The first message runs on Apple's on-device model. Nothing to download, no key, no account.
-
Your models, your Mac
Runs open models itself on Metal, or through ollama and LM Studio. Cloud keys are optional.
-
Context as a budget
Before every call it drops stale reads and old output. Your own messages are never paraphrased away.
-
Knows when it’s stuck
The third identical call is refused with a nudge to change approach. Small models stop spinning.
-
Docs at your versions
Reads the dependencies you actually have installed, offline, before it ever reaches for the web.
-
Subagents do the digging
A search through dozens of files runs in a child’s context. Only its report comes back.
-
See the change first
Permission cards show exactly what an edit will do before you allow it. ⌘↩ to allow, ⌘. to deny.
-
Rewind anything
Every turn is a checkpoint. Undo what it edited and what its commands did.
-
Race attempts
Run one prompt 2–4 ways in parallel worktrees, score them with your tests, keep the best.
-
A sandbox that means it
With
--sandbox, writes stay in the project folder, and on macOS shell commands are confined too. -
Tools it won’t trust
MCP tools whose descriptions look like prompt injection or hide Unicode are quarantined. The model never sees them.
-
Answer from anywhere
When a turn needs you and you’re in another app, allow or deny right from the notification.
-
Talk to it
Dictate into the composer. Speech is turned into text on this Mac, and audio never leaves it.
-
Draws what it means
Diagrams from typed JSON a small model can’t get wrong, and code maps drawn from the code itself.
-
Brings your setup
It finds your CLAUDE.md, skills and MCP servers and uses them, so there’s nothing to set up twice.
-
Keyboard all the way
⌘K reaches sessions, models, modes, fork and compact. Everything in the menus has a shortcut.
-
Energy you can check
Every solved task, measured across the whole Mac: . Failed attempts count against it. How it's measured
In the terminal
The same engine ships inside the app as frog.
$ alias frog=/Applications/Frog.app/Contents/Resources/frog $ frog -m ollama/qwen3-coder:30b $ frog -p "why does the build fail?" # one-shot, to stdout