Skip to main content
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.

terminal
Get started 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.
ConcernLangChainsmallchat
StreamingCallbackManager + custom pipingfor await over native provider deltas
Tool dispatchChain/Agent hierarchyOne smallchat_dispatchStream call
CachingExternal wrappersBuilt-in resolution cache
ExtensibilitySubclass and registertoolClass.addMethod or swizzle
Bundle sizeMultiple adapter packages< 5 MB, zero dependencies
Streaming
LangChainCallbackManager + custom piping
smallchatfor await over native provider deltas
Tool dispatch
LangChainChain/Agent hierarchy
smallchatOne smallchat_dispatchStream call
Caching
LangChainExternal wrappers
smallchatBuilt-in resolution cache
Extensibility
LangChainSubclass and register
smallchattoolClass.addMethod or swizzle
Bundle size
LangChainMultiple adapter packages
smallchat< 5 MB, zero dependencies
"The big idea is messaging."— Alan Kay
Get started →