The multi-CLI coding stack, in depth.
Long-form articles on AI coding agent orchestration, the primitives behind Ringlet, and how it compares to adjacent tools. Subscribe via RSS.
Multi-agent workflows: parallel runners vs profile-switching
Two patterns for running multiple AI coding agents — parallel runs on git worktrees (Claude Squad, Conductor) and Ringlet's serial profile-switching. When each one is right, and how to use them together.
The agent stack in 2026: why one CLI per model isn't sustainable
Every major AI lab ships a coding CLI. Each assumes it owns your machine. The stack we're collectively building looks like the JavaScript ecosystem circa 2014 — and needs the same kind of orchestrator.
Migrating from shell aliases to Ringlet profiles in 15 minutes
A step-by-step migration from per-project bash aliases — multiple ANTHROPIC_API_KEY exports, direnv files, wrapper scripts — to Ringlet's profile model. Before/after, including the parts that don't translate.
Event hooks and webhooks: audit logs, Slack alerts, pre-tool guards
Ringlet's hook system fires shell commands, scripts, or webhooks on every agent lifecycle event — tool use, stop, notify, cost-threshold. Use it for audit logs, Slack pages, or pre-flight checks on tool calls.
Remote terminal sessions: running Claude Code on a server, browser access
How Ringlet runs an AI coding agent on a remote dev box and lets you access the live PTY from your laptop's browser. WebSocket PTY proxy, bearer-token auth, sandboxed exec, xterm.js dashboard.
Routing requests by cost, tool use, or token count with Ringlet
Ringlet's optional ultrallm proxy routes an agent's individual requests to different providers by token count, tool use, or arbitrary TOML rules. Cheap completions to Groq, tool-heavy work to Anthropic — same agent.
Cost tracking across Claude Code, Codex, and Grok in one ledger
How Ringlet parses streaming token-usage events from Anthropic, OpenAI, and MiniMax, writes them to a per-profile SQLite ledger, and aggregates spend across every agent and provider in one CLI command.
Keychain credential storage in Ringlet: Security.framework, Keyring, WinCred
Where Ringlet stores your API keys and why — Apple Security.framework on macOS, GNOME Keyring or KWallet on Linux, Windows Credential Manager. The Rust keyring crate, file-backed fallback, and how to rotate.
Sandboxing AI coding agents with bwrap and sandbox-exec
How Ringlet wraps remote agent sessions in a real OS sandbox — bubblewrap on Linux, sandbox-exec on macOS — keeping destructive commands inside a workspace. The config, trade-offs, and failure modes.
Profile isolation explained: how Ringlet keeps your AI agents separate
What's actually inside ~/.ringlet/profiles/<name>, how Ringlet rewrites the agent's HOME at launch, why env vars alone aren't enough, and what this means for caches, MCP servers, and tool approvals.