Ask your data,watch it reason
An agent that runs sandboxed Python, inspects results, self-corrects tracebacks, and verifies its own findings — locally on your machine.
brew tap Wizard-AIA/wizard && brew install wizardAn agent that
investigates.
Real analytical questions are rarely one step — a dirty join key or a column that means three things only shows up once you look.
Investigates, then verifies
Rather than following a plan fixed before anything ran, the manager sees what the code actually produced and decides what to do next. The headline result is recomputed by a different route before it reaches you.
Upload.Ask.Verify.

It runs on
your machine.
Generated code runs in a subprocess by default — its own memory ceiling, a per-step timeout, a working Stop button. Docker is opt-in, not a fallback.
host — a sandboxed subprocess, the default. docker — a container per session, opt-in. inprocess — used only when spawning is forbidden.
Numbers you
can check.
Bring your
own model.
Nothing is hardcoded — the app uses whatever your provider actually has, and you can assign a different model, on a different backend, to each role.
Autonomous,
not uncontrolled.
Generated code is untrusted by default. Four layers apply before it ever touches your filesystem or the network.
Static code guard
An AST policy check rejects restricted imports and dynamic execution before anything runs.
OS-native containment
Landlock + seccomp, sandbox-exec, or a Windows Job Object — writes confined, network denied.
Container isolation
Opt into Docker for cap_drop=ALL, no-new-privileges and per-execution timeouts.
Scoped filesystem
Each session reads and writes only its own workspace directory.
A REST API.
And a WebSocket.
The same protocol the web UI uses to stream reasoning, code, stdout and the answer is open for anything else you want to build against it.
Typed event protocol
session · reasoning_delta · code · stdout · final — every WS frame is a fixed shape.
Streams as it thinks
Reasoning, code, stdout and the answer arrive as separate delta streams, token by token.
Six providers, one interface
Ollama, LM Studio, Anthropic, OpenAI, Gemini, or any OpenAI-compatible gateway.
OpenAPI, generated
Interactive docs at /docs; TypeScript types generated straight from the schema.
In the project's own words.
Two small Ollama models are enough to be useful. Nothing is sent anywhere.
Wizard
Local-first, README.md
Pick your
setup.

Local-only
Nothing leaves your machine. No API key.
- Ollama or LM Studio
- Any two local models — reasoning + code
- Nothing else to configure
Hybrid
Keep local models, make a cloud key available for either role.
- A local provider for the default pair
- One cloud API key
- Assign roles later from /models
Cloud-only
No local weights needed — Anthropic, OpenAI, Gemini, or any gateway.
- One provider API key
- No GPU, no local install
- Auto-selects a model on that provider
Ready to ask
your data something?
Local-first, no API key required. Two small Ollama models are enough to get started.
BSD 3-Clause · runs entirely on your machine









