Jazz
An agent harness that runs one user-defined agent, with its models, persona, tools and permissions set in a single JSON file, across many surfaces: a terminal REPL, a one-shot script command, a scheduled job, or a Telegram or Discord bot the user hosts themselves.
Jazz separates the definition of an agent, its primary and companion models, persona, tools and permissions, from where it runs: the same configuration runs as an interactive terminal session, a one-shot command inside a script, a scheduled workflow, a GitHub Action that reviews pull requests, or a bot on a Telegram or Discord server the user controls. In a chat surface it asks for permission inline when a job needs it; from any other surface, it parks the job and sends a notification the user can approve from their phone.
It supports 23 model providers, including OpenAI, Anthropic, Google, Mistral and Groq with an API key or a ChatGPT subscription, plus self-hosted backends such as Ollama, llama.cpp, vLLM and SGLang with no API key required unless the server itself demands one; anything else connects through MCP. A single agent can bind different companion models to different media, keeping one model for reasoning and tools while routing image, audio or video understanding to models suited to each.
It installs as a single self-contained binary with no Node or npm dependency, or through npm, and is written in TypeScript with Effect.