I self host this and the reason is that the core is a library sitting in my own repo rather than a platform I have to live inside. Agents, workflows and tools end up next to the code that calls them, so I can read what an agent will actually do without opening a dashboard, which is most of what I want out of a framework. Being TypeScript the whole way through also means the same types cover the agent and the API route that triggers it.