All projects

Every question you ask a research agent leaves your machine and lands on someone else's servers.

Local Smartz
In beta · macOS · Linux · Python 3.12+

Deep research that plans, searches, and writes without a single byte leaving your machine.

A single local DeepAgent with eight research tools — search, scraping, PDF parsing, sandboxed Python — running on Ollama models on your own hardware.

$ curl -fsSL https://raw.githubusercontent.com/tyroneross/local-smartz/main/install.sh | bash

Python 3.12+ · Ollama · CLI, web UI, macOS app · no cloud API keys

Local Smartz macOS app — Research tab with the agent roster (Planner, Researcher, Analyzer, Writer, Fact-checker) in the sidebar and a local gpt-oss:120b model loading into memory.
01Agent roster

One DeepAgent, five roles

Planner, Researcher, Analyzer, Writer, and Fact-checker are the roles the single DeepAgent moves through as it works, visible in the app's sidebar next to whatever Ollama model is loaded into memory. DeepAgents' built-in `write_todos` planning and `task` subagent delegation drive the orchestration underneath.

Local Smartz macOS app — Research tab with the agent roster in the sidebar and a local model loading into memory.
02Hardware profiles

Full or lite, auto-detected from RAM

64GB+ Macs get the full profile — Llama 3.1 70B for planning, Qwen 2.5-Coder 32B for execution, 20 max turns, subagent delegation. Smaller machines get lite — Qwen 3 8B for both, a reduced tool whitelist, a 10-turn cap, and a loop detector built for how small local models actually fail. Override with `--profile lite`.

03Live trace

Watch the agent work, not a spinner

The macOS app and web UI both stream tool calls over SSE as the agent runs — a live queue of search, scrape, parse, and calculation steps. The same SSE stream backs `--serve` mode and the `/api/research` endpoint.

Local Smartz macOS app showing a research run in progress with the live trace queue.
04Calculation policy

Every number runs through code, not the model

Numeric answers route through the sandboxed `python_exec` tool — local models hallucinate arithmetic often enough that this is a hard rule. Eight tools cover search, scraping, PDF/spreadsheet parsing, and report generation, and tool-call parsing tolerates the stringified-JSON arguments smaller local models produce on roughly a fifth of structured calls.

  • All LLM inference runs through your local Ollama instance — no cloud API keys, no data leaving your machine
  • Optional tracing (Phoenix + OpenTelemetry) runs locally and stays opt-in — it's not on by default
  • Web search uses DuckDuckGo, not a paid search API — no search API key required
Does it need an internet connection?

Only for the web_search and scrape_url tools. Model inference, planning, and everything else runs locally through Ollama with no connection required.

What hardware do I need?

8GB+ RAM runs the lite profile (Qwen 3 8B for planning and execution). 64GB+ RAM unlocks the full profile (Llama 3.1 70B planning, Qwen 2.5-Coder 32B execution). Profile is auto-detected from system RAM, or set manually with `--profile lite`.

How do I install it?

One line: `curl -fsSL https://raw.githubusercontent.com/tyroneross/local-smartz/main/install.sh | bash`. It installs Ollama if missing, installs the `localsmartz` CLI, and runs first-run setup to pull default models.

Is plugin support finished?

Not fully — `localsmartz plugins install <path>` is still being wired up in the current build. If it's not available on your install yet, pull latest and re-run the installer.

From the maker

I wanted a research agent I could point at anything — including the stuff I didn’t want leaving my laptop — and most agent frameworks assume a cloud API key on day one. Point them at a local model instead and they fail in their own specific ways: dropped tool calls, stringified arguments, loops that never terminate on an ambiguous prompt.

Local Smartz is a local-first port of the multi-agent research patterns I’d already built for Stratagem: one DeepAgent, eight tools, running entirely on Ollama. It auto-detects whether your machine can run a 70B planner or needs to fall back to an 8B model doing double duty, and it treats local-model failure modes as things to design around rather than prompt away — every calculation goes through real Python, never LLM arithmetic. It’s beta: the CLI, web UI, and macOS app all work today; plugin support is still landing.

$ curl -fsSL https://raw.githubusercontent.com/tyroneross/local-smartz/main/install.sh | bash

Python 3.12+ · Ollama · CLI, web UI, macOS app · no cloud API keys