A TypeScript framework for building stateful, long-running LLM agents as graphs, with persistence, memory and human-in-the-loop.
SomeOddCodeGuy/WilmerAI
A self-hosted LLM semantic router that sits between your app and multiple LLM APIs, running multi-step prompt workflows behind a standard OpenAI or Ollama-compatible endpoint.
- Stars
- 830
- Forks
- 52
- Open issues
- 3
- Last commit
- 14 days ago
What is it?
WilmerAI routes requests to different LLMs based on the full conversation history rather than only the latest message. Routing and processing are defined as node-based JSON workflows, where each node can call a different LLM endpoint, run a tool, execute a script, or invoke another workflow. The client application sees the whole multi-step process as a single standard API call.
The project exposes OpenAI- and Ollama-compatible chat and generate endpoints, so existing front ends such as Open WebUI and SillyTavern can connect without modification. On the backend it connects to Claude, OpenAI-compatible servers, Ollama, and KoboldCpp. It also includes a four-part conversation memory system and experimental MCP tool calling.
WilmerAI does not track token usage, so operators should monitor costs through their LLM providers' dashboards. Output quality depends heavily on the connected models and prompts.
Key features
- 01Routes prompts by full conversation context using configurable workflows.
- 02Chains multiple LLMs and tools within one workflow via node-based JSON definitions.
- 03Exposes OpenAI- and Ollama-compatible endpoints to existing front ends.
- 04Connects to Claude, OpenAI-compatible, Ollama, and KoboldCpp backends.
- 05Provides conversation memory with keyword and optional embedding-based search.
- 06Supports OpenAI-style tool calling passthrough and JSON Schema structured output.
Use cases
- Routing different types of chat requests to specialized local or cloud models.
- Adding retrieval or web lookups to a chatbot before the final LLM call.
- Using older machines as worker LLMs in a multi-model pipeline.
- Keeping prompt logic on your own server while front ends stay unchanged.
Things to know
- The project is still under development and is provided as-is without warranty.
- It is licensed under GPL-3.0, a copyleft license that requires derivative works to remain open source.
- The web fetcher requires Python 3.13.14/3.14.5 or newer; other features run on Python 3.11.10/3.12.13.
- Agentic MCP tool integration is experimental.
In collections
Topics
FAQ
- What is WilmerAI?
- A self-hosted LLM semantic router that sits between your app and multiple LLM APIs, running multi-step prompt workflows behind a standard OpenAI or Ollama-compatible endpoint. WilmerAI routes requests to different LLMs based on the full conversation history rather than only the latest message. Routing and processing are defined as node-based JSON workflows, where each node can call a different LLM endpoint, run a tool, execute a script, or invoke another workflow. The client application sees the whole multi-step process as a single standard API call.
- Is WilmerAI free to use? What license does it have?
- WilmerAI is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
- Is WilmerAI still maintained?
- Actively maintained. The last commit to WilmerAI was on Oct 25, 2026.
- What can I use WilmerAI for?
- Routing different types of chat requests to specialized local or cloud models. Adding retrieval or web lookups to a chatbot before the final LLM call. Using older machines as worker LLMs in a multi-model pipeline. Keeping prompt logic on your own server while front ends stay unchanged.
- Where can I get WilmerAI?
- The source code and installation instructions are on GitHub: https://github.com/SomeOddCodeGuy/WilmerAI
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Describe a UI in plain language, see it rendered live, and iterate on it with any supported LLM.
An open-source coding agent for the terminal that runs on local models via Ollama or any OpenAI-compatible API.
A local proxy that lets Claude Code, Codex, and other coding agents run on free or alternative model providers from your terminal, IDE, browser, or chat apps.
Self-hosted, source-available LLM router that sends simple prompts to cheap or local models and complex ones to premium models, behind an OpenAI-compatible proxy.
A Discord bot that turns a server or DM into a shared frontend for any OpenAI-compatible LLM, local or remote.