● v0.4.0 — 115+ MCP packages, manifest builder
object oriented inference
Drop it in with one command. Watch it stream in your own UI. Or spin up the built-in server in seconds.
What you get
The Obj-C runtime for LLM tooling
Selectors, dispatch tables, forwarding chains, method swizzling — applied to tool orchestration.
What it does
smallchat compiles tool definitions, embeds semantic fingerprints, and dispatches natural-language intent to the best-matching implementation — at runtime, with caching.
See the dispatch model →Why it matters
Tool proliferation is the next scaling problem. Routing by string matching breaks. Routing by semantic vector search does not. smallchat brings the Obj-C message dispatch model to LLM tooling.
Read the motivation →Deep dive
SelectorTable, DispatchContext, OverloadTable, ResolutionCache, ToolClass hierarchies, method swizzling, streaming tiers, and the MCP 2025-11-25 server — all documented.
Explore the internals →New in 0.4.0
MCP Tool Registry & Manifest Builder
115+ MCP packages
Pre-compiled servers from GitHub, Slack, Stripe, Docker, Notion, Postgres, and more — searchable by category.
Cart-style builder
Select the tools you need, compile a single manifest, and download — no account required.
Anonymous compile API
POST /api/compile merges any packages into one dispatch-ready JSON artifact.Primitives, not a framework
Why not LangChain?
smallchat gives you the dispatch layer. You build the agent. No abstractions you didn't ask for.
| Concern | LangChain | smallchat |
|---|---|---|
| Streaming | CallbackManager + custom piping | for await over native provider deltas |
| Tool dispatch | Chain/Agent hierarchy | One smallchat_dispatchStream call |
| Caching | External wrappers | Built-in resolution cache |
| Extensibility | Subclass and register | toolClass.addMethod or swizzle |
| Bundle size | Multiple adapter packages | < 5 MB, zero dependencies |
Streaming
LangChainCallbackManager + custom piping
smallchat
for await over native provider deltasTool dispatch
LangChainChain/Agent hierarchy
smallchatOne
smallchat_dispatchStream callCaching
LangChainExternal wrappers
smallchatBuilt-in resolution cache
Extensibility
LangChainSubclass and register
smallchat
toolClass.addMethod or swizzleBundle size
LangChainMultiple adapter packages
smallchat< 5 MB, zero dependencies
"The big idea is messaging."— Alan KayGet started →