Twigg is a stateful API for interacting with LLMs with no lock-in. You create a chat and send the next event. Twigg then fits your chat’s context to the requested model’s schema, compacts and truncates if needed, and routes it to the LLM. With a Dashboard to control tool schemas, system prompts, context windows and track usage and billing. Designed for building personal agents or ChatApps without the headache of managing and hosting context and provider lock-in.
Twigg is a stateful API for calling LLMs. Instead of rebuilding and resending your whole conversation on every request, you create a chat once and send only the next event. Twigg holds the state: it fits context to the target model's schema, compacts or truncates when it runs long, and routes the call. Control tool schemas, system prompts and context windows from the dashboard, and track usage and billing. Build anything from personal agents to enterprise apps. You never manage context again.
We've spent the last year building AI workspaces, and before every new launch we'd end up re-engineering the same thing: the context layer. Where the conversation lives, how it gets fitted to a model's context window, how tool calls and files get replayed.
What we really wanted was a hosted, stateful LLM API that didn't only work with one provider. Something like OpenAI's Responses API crossed with OpenRouter. We didn't want to spend time building infrastructure and code that weren't core to our product.
Since we'd already built most of the pieces, we turned them into Twigg: the stateful API for every LLM.
How it works: you create a chat and get back an ID. From then on you only send the next prompt or tool result. You don't send, or even store the context. Twigg manages that for you. Want a different model? Change one field on the next request. Twigg will fetch, assemble and fit the context to the right schema and send back the response. It even auto-compacts conversations, so you never have to worry about a chat getting too long. The idea is to move all the boilerplate logic and infrastructure LLM apps need behind one unified API.
v0.1.0 is live today. It includes namespaces for organising chats per user, a dashboard for system prompts, tool schemas and context budgets. It also track per-run cost and usage so you can bill your own users. Point your agent at twigg.ai/llms.txt for the full rundown!
We'd love to hear what you think, and whether anyone else has had the same context frustrations we have.
Twigg
Hi Product Hunt
We've spent the last year building AI workspaces, and before every new launch we'd end up re-engineering the same thing: the context layer. Where the conversation lives, how it gets fitted to a model's context window, how tool calls and files get replayed.
What we really wanted was a hosted, stateful LLM API that didn't only work with one provider. Something like OpenAI's Responses API crossed with OpenRouter. We didn't want to spend time building infrastructure and code that weren't core to our product.
Since we'd already built most of the pieces, we turned them into Twigg: the stateful API for every LLM.
How it works: you create a chat and get back an ID. From then on you only send the next prompt or tool result. You don't send, or even store the context. Twigg manages that for you. Want a different model? Change one field on the next request. Twigg will fetch, assemble and fit the context to the right schema and send back the response. It even auto-compacts conversations, so you never have to worry about a chat getting too long. The idea is to move all the boilerplate logic and infrastructure LLM apps need behind one unified API.
v0.1.0 is live today. It includes namespaces for organising chats per user, a dashboard for system prompts, tool schemas and context budgets. It also track per-run cost and usage so you can bill your own users. Point your agent at twigg.ai/llms.txt for the full rundown!
We'd love to hear what you think, and whether anyone else has had the same context frustrations we have.
Thanks for checking it out!
Mailwarm
Does Twigg support branching chats, like trying two different tool choices from the same context?