Cannonade is a cross-platform local-first desktop app for building test suites, running them against multiple models at once, and comparing the results without writing an eval harness or shipping your prompts to a third-party service.
- Local models: view, load, unload, and delete the local models of your configured LLM providers.
- External models: view cloud model details and pricing from your configured LLM providers.
- Playground: chat with any configured model, tweak sampling parameters, and inspect token and timing stats.
- Prompt library: keep system prompts in one place and reuse them across the playground and test suites.
- Test suites: define test cases and configure evaluators once, then run them against any number of local or cloud models.
- Test runs: every run is saved locally with results, scores, and stats for each case.
- Model downloads: download models from the model registry of a configured provider or from huggingface.
- Local first: prompts, test suites, and test runs are all stored locally in JSON files.
| Provider | Notes |
|---|---|
| LM Studio | Local or remote LM Studio server |
| Ollama | Local or remote Ollama server |
| llama.cpp | Local or remote llama-server instance |
| Unsloth | Local or remote Unsloth Studio server |
| Custom | Any OpenAI-compatible local API endpoint |
| OpenRouter | Access hundreds of models via OpenRouter |
| Vercel | Access hundreds of models via AI Gateway |
| More | More supported providers are coming soon |
Grab the build for your platform from the latest release:
| Platform | Build |
|---|---|
| Windows | .exe installer |
| macOS | .dmg (Apple silicon) |
| Linux | .AppImage and .deb |
Note
The macOS build is not code-signed or notarized, so Gatekeeper reports it as damaged
on first launch. Copy Cannonade.app into /Applications, then remove the quarantine
flag before opening it:
xattr -dr com.apple.quarantine /Applications/Cannonade.appFull instructions, including what to do if macOS still blocks the app, are in the macOS setup docs.
Built with Electron, Vue 3, TypeScript, Vite, Pinia, and Sass.
npm ci
npm run devnpm run validate # typecheck + build + lint:fix + tests
npm run build
npm test
npm run lint:fixnpm run build:win
npm run build:mac
npm run build:linuxBug reports and feature requests: GitHub Issues.
