A lightweight, self-learning coding agent that drives your own model — any OpenAI-compatible server, local or cloud, in a single static binary, with a built-in risk model watching every tool call.
It runs a reason → act → observe loop over a handful of fat tools, recovers from errors using lessons it learned on past runs, and gets better over time. Local-first — LLMTray on a Mac (ours — native mlx-lm in the menu bar), Ollama, vLLM, or anything else serving /v1/chat/completions — and the same loop runs the cloud providers (OpenAI, Anthropic, Grok, Groq, OpenRouter, Z.ai) when you want one. It can also delegate a task to a sub-agent on a different model. Your machine, your keys, under a permission policy you control.
$ curl -fsSL https://raw.githubusercontent.com/ipsupport-llc/ipsupport-code/main/scripts/install.sh | sh
PS> iex (irm https://ipsupport-llc.github.io/ipsupport-code/install.ps1)
macOS · Linux · Windows — one binary, no Python, no runtime, no dependencies · verifies SHA-256
❯ ipsupport-code ✦ ipsupport-code model qwen2.5-7b-instruct cwd ~/myproject ❯ add a /health endpoint and run the tests ⚙ file edit server.go +6 −0 ⚙ run go test ./... → exit 0 ok ./... (0.4s) ✦ noted tests run with: go test ./... Added GET /health returning 200 "ok"; all tests pass. ❯ review that change across grok and claude, then merge ⇉ spawned grok · grok-4.3 · ~/myproject ⇉ spawned claude · claude-sonnet · ~/myproject ✓ grok finished ✓ claude finished → both: correct. grok wants a 503-case test; claude flags a missing Content-Type. Reviewer agrees it's solid; I'll add the 503 test. NEXT: add the 503-case test qwen2.5-7b-instruct · ~/myproject · ctx 4.0k/8k · ↑1.6k · ready
Built for micro-tasks on your own machine. It won't match a frontier model — it's a private, controllable agent that compounds what it learns.
One executable, CGO_ENABLED=0 — no Python, no Node, no runtime, no virtualenv to rot. Download, run, done. It updates itself in place.
After each task it reflects and writes durable lessons and project facts to disk, then folds them into the next run. Tool errors are met with fixes it found before.
One tool per domain — file · run · git · web · calc — so the catalog stays tiny and small models route well. Native tool-calls only.
LLMTray on a Mac — our menu-bar app running mlx-lm natively on Apple Silicon — or any local server speaking OpenAI's API: Ollama, vLLM, and the rest. Nothing leaves your box unless you point it at a cloud provider.
One /ai key away from OpenAI, Anthropic, Grok, Groq, OpenRouter, or Z.ai — switch models live with /model (search its 300+).
Delegate a task to a sub-agent on another model — run locally, then have a frontier model review the diff, or compare a review across 2–3 models. Paid spawns ask first.
Per-name sessions with restore-on-startup — -session <name> gives a thread its own log and goal, so several can run side by side — plus a token ledger with day/week/month rollups and estimated $ cost by model.
Allow/deny globs, a workspace jail, and a non-overridable safety floor. A plan / auto toggle and non-stealing approval prompts. Opt-in OS sandbox for shell commands — Seatbelt on macOS, Landlock on Linux.
/goal sets a multi-turn objective. When the agent thinks it's done, a separate judge decides — and re-feeds the gap until the goal is actually met.
/steer folds a note into a running task without stopping it; /btw asks a quick side question while the task keeps going.
A small risk model ships inside the binary — pure Go, 768 KB of weights, ~28µs a call, nothing sent anywhere. It scores every tool call, and one it flags stops for you even when your policy would allow it: y, n, or a for the session. It learns from your answers, per project. Off in /config or with -skip-risk-check.
The built-in system prompt is ~2.7 KB and the whole tool catalog ~5 KB — about 2,000 tokens before your task, so a small local model keeps its context for the work. Skills, sub-agents, MCP and history each add a tool only when there is something for it.
-read-only answers a review or a question with nothing allowed to change: no file writes, no git changes, and commands run in the OS sandbox with the workspace read-only and no network.
Downloadable, toggleable instruction packs — load extra know-how only when the topic fits, so the prompt stays lean.
A settings panel you navigate with the arrow keys, plus a local token ledger broken down by day and provider/model.
Live-streamed tool calls, markdown answers, syntax-highlighted diffs, multi-line paste, and a status bar with model · context · tokens.
Three steps from nothing to a running agent in your project.
~/.local/bin.localhost:8765 by itself. Elsewhere, Ollama, vLLM or any other
OpenAI-compatible server does the same job.
Prefer the cloud? ipsupport-code then
/ai key openrouter sk-… and /ai openrouter.cd your-project && ipsupport-code, then type a task.
It edits files, runs commands, and reports real output — under your permission policy.Every feature is a slash-command or a keystroke — /help shows this inside the agent too.
/help · /status · /usage · /budget · /config
/ai & /ai key · /model · /reasoning · /agents · /jobs
/goal · /diff · /rewind · /history · /knowledge
/steer · /btw · /snip · /risk · /login · /shell
/skills · /permissions · /sessions · /cd · /mcp
/new · /clear · /compact · /plan·/auto · /reflect
/loop · /update · /offline · /rename · /color
Enter send · alt+enter newline
Tab complete a /command or @file path
ctrl+r reverse-search prompt history
shift+tab plan ⇄ auto mode
ctrl+u clear input · ctrl+l clear screen
↑ answer approval / edit queued · esc cancel · ctrl+c quit
Define profiles in /config → Sub-agents (provider → model → name).
Then ask, e.g. "review internal/tool across grok and claude, then merge."
They run in parallel, each jailed to its own directory. Manage with
/agents add|add-tool|rm|exec — add-tool plugs in local CLI agents (codex, claude, muse, aider…); relax the per-spawn prompt with /permissions agents on.
Or fire one in the background and keep working — its result folds into the next turn; watch them with /jobs.
OpenAI-compatible at the core, so the agent is model-agnostic — local first, cloud when you want it. Anything serving /v1/chat/completions works, including keyless local servers.
Rate it from the agent itself: /rate 5 a few words — reviews appear here once moderated.