Niffler is an agent harness that extends itself while you talk to it. The core and every capability run as separate operating-system processes speaking one wire protocol — JSON envelopes over NATS — and the agent can write, build, spawn and remove components mid-conversation. No teardown code, no leaked children.
The modularity goes all the way down to the process boundary, and no component is bound to a language: the shipped set is mostly Nim and Go, but anything that can speak the envelope protocol fits.
- Batteries included — tool calls, subagents, git, MCP, LSP, repo maps, skills, plugins, process control and observability ship in the manifest.
- Progressive tool disclosure — a small frozen direct toolset; everything else is one discovery call away instead of prompt bloat.
- The human stays in the loop — approval-gated tools with manifest digests; with no human reachable the call is denied, never silently allowed.
- Open models, all providers — any OpenAI-compatible endpoint, subscription OAuth, and a models.dev-backed catalog.