AI agents shouldn't be locked to one provider, one workflow, or one context window. lmctl is a local-first control plane for running teams of AI coding agents — across providers, with adversarial cross-provider review and durable memory, composed in plain text.
Not an IDE, not another chatbot. It coordinates the agent tools you already use.
npm install -g @lmctl-ai/lmctl
Already use Claude Code or Codex? One command lists all your sessions in one place →
my-data.mp4 here later to show lmctl ls lighting up real Claude, Codex, and other provider sessions.
/assets/screencasts/my-data.mp4Why lmctl
Every agentic tool wants to be the whole platform. That leaves you with three kinds of lock-in:
Provider lock-in
You're trapped in one ecosystem — and most "AI code review" is really self-review: one model grading its own work in a different hat, which rubber-stamps its own blind spots. lmctl makes review adversarial — the reviewer is a different provider and model from the author. A Claude lead hands coding to Codex and has Gemini review it, so the check is genuinely independent of the work. Different models have different blind spots, and that diversity is the point: a varied team catches what one model — or its own clones — can't. More on adversarial review →
And "provider-agnostic" is literal: the first-class CLIs — Claude Code, Codex, Copilot CLI, Qwen Code, Antigravity — sit side by side, and the OpenCode provider reaches any other model — local (Ollama) or remote (DeepSeek, Qwen, OpenRouter, Copilot's GPT/Claude/Gemini, and more). Pick any collection and put them in one team, working together — not one model at a time. More on players & model diversity →
Workflow lock-in
When most tools say "multi-agent," one provider auto-spawns the agents and you just watch. lmctl is the opposite — you are in charge: you divide the work and build the team in plain text from simple building blocks (a lead talks to its members; teams connect to other teams), choose which provider and model plays each role — top-tier for design, leaner models for routine coding — and tune how they interact. Agents from different providers, orchestrated by you — not clones of one. And you never have to switch to save money: lmctl is an orchestrator, not a model — add a cheaper provider (say Alibaba's Qwen Coding Plan via Qwen Code) for high-volume coding and keep your premium model for the judgment. Cost & model routing → · Bring your own subscriptions →
Context-window lock-in
The industry's answer is bigger context windows — but every window eventually loses to a long-running project, and a session is bound to one provider and one folder. lmctl spreads work across specialized agents — planning, coding, review — and keeps a provider- and directory-agnostic memory (durable-memory). If a session fills up or breaks, start a fresh one — nothing is lost. More on context & durable memory →
Get started
npm install -g @lmctl-ai/lmctl
Then head to the docs to define your first team.