GopherMind

Single Go binary ยท macOS ยท Linux ยท Windows

An AI coding agent that asks first.

GopherMind points at a model you run โ€” local llama.cpp, Ollama, LM Studio, vLLM, or any hosted OpenAI-compatible endpoint โ€” or at a free provider that needs no API key at all. It reads, searches, edits and runs commands in your repo, and every action that changes something stops for your approval.

It stopped. That is the whole design. Nothing mutates without a yes.


Why this one

Your model, your machine

Anything that speaks the OpenAI /v1 API. Models are discovered from the endpoint, and named provider profiles switch backends without editing config.

No account. No telemetry to us. Point it at localhost and unplug the network.

Safe at every layer

File paths are contained to your repo and checked through symlinks. Shell commands pass a deny-list. Mutating tools hit the approval gate unless you opt into auto.

Plus a read-only mode, per-role tool restrictions that fail closed, and --dry-run to preview a whole run.

Small enough to read

Pure Go, no CGO, one static binary. Adding a tool is still one struct and one function โ€” the codebase stays legible as it grows.

Signed and notarized on macOS. Every release ships an SBOM and checksums.txt.

A window, if you want one

The same harness in a desktop app: chat, a queue of pending approvals you can act on, and a model picker showing what allowance each model has left.

Signed, notarized and stapled, so it opens without a Gatekeeper prompt even offline. The window talks to the same local server the CLI runs, over HTTP. Nothing new is trusted.

Pick a model, or let it pick

Order your preferences, filter by what is reachable or has capacity, and exclude providers whose terms you will not accept. Cycle to the next model automatically when one runs out.

Usage is metered per model against the limit that model publishes. Where a provider publishes none, none is shown.

Batteries, all switched off

A local semantic index and RAG, a read-only SQL/Parquet/CSV toolkit, multi-agent strategies, an MCP client and server, WASM plugins, Prometheus metrics.

Every integration is inert until you configure it, so the default install stays small and quiet.


Install

macOS

brew install jbrahy/tap/gophermind

A signed and notarized universal binary โ€” no Gatekeeper warning.

Desktop app

brew install --cask jbrahy/tap/gophermind-desktop

The window, if you want one. Signed, notarized and stapled, so it opens cleanly even on a machine that is offline.

Any platform

npm install -g gophermind

Downloads the prebuilt binary for your platform. x64 and arm64.

Linux packages

.deb ยท .rpm ยท .apk ยท .tar.gz

Grab one from the latest release. Windows users, a .zip.

From source

git clone https://github.com/jbrahy/gophermind.com
cd gophermind.com
make build

Go 1.25 or newer.


First run

No key needed

gophermind --profile free-ovhcloud ask "hello"

Runs against a free provider with no API key and no local server. gophermind free list shows all of them, what each free tier allows, and which need a key — no-key ones first.

Interactive

gophermind

A wizard asks for your endpoint, an optional key, a model from a live list, and your approval mode — then saves it.

One shot

gophermind run "add a --json flag"

Non-interactive. Same gate, same tools.

Read only

gophermind ask "how does retry work?"

Answers questions about the repo. Never edits.