A control plane for LLM execution.
Write intent once.
Run safely across different LLMs — without rewriting prompts, parameters, or backend logic.
If your app supports multiple LLMs, you already know the pain:
❌ Different SDKs
❌ Different invocation styles
❌ Different parameter names
❌ Different prompt formats
❌ Different capabilities
❌ Endless if model == ... branches
What starts simple turns into backend chaos very fast.
llmcontrol exists to stop that.
Applications should express intent — not provider-specific logic.
llmcontrol introduces a canonical control layer between your app and LLM providers.
Think of it as a control plane that:
- normalizes prompts 🧩
- normalizes parameters 🎛️
- understands model capabilities 🧠
- executes safely and predictably 🚦
This is not a thin wrapper. This is infrastructure.
✅ Canonical, provider-agnostic execution
✅ Model-aware prompt adaptation
✅ Parameter normalization across providers
✅ Capability detection & downgrade
✅ Explicit execution decisions
✅ First-class observability
All without leaking provider quirks into your business logic.
Let’s be very clear:
- ❌ Not an agent framework
- ❌ Not a chaining framework
- ❌ Not a prompt playground
- ❌ Not a “universal LLM SDK”
- ❌ Not feature-complete by design
Opinionation is a feature, not a limitation.