Skip to main content

The Problem

You subscribe to Claude Pro, Codex, and Gemini. Three powerful models. Three separate terminals. Three isolated memories. Claude doesn’t know what you did in Codex. Gemini can’t see your Claude sessions. Switch models and you start from zero. The models are powerful individually, but they can’t work together. Wrappers like LangChain solve this with APIs — but that means extra cost per token, rate limits, and you lose each CLI’s native capabilities (tools, MCP, agents, hooks).

The Insight

AI CLIs run in terminals. Terminals can run other terminals. If Claude Code runs in a PTY, and that PTY has shell access, then Claude can type codex "review this" — just like a human would. No API. No wrapper. Codex runs with its own official model, on the human’s own subscription. Claude gets the response. This works in every direction. Any CLI can call any other CLI. The only requirement: they share a terminal.

OpenCLIs

OpenCLIs is the name for this architecture:
┌──────────────────────────────────────────────────────────────────┐
│  OpenCLIs                                                        │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│  "Open" = CLIs are open to each other.                           │
│  Not open source. Not open API.                                  │
│  Open access between CLI tools through shared terminal.          │
│                                                                  │
│  Three properties:                                               │
│                                                                  │
│  1. Any AI CLI can invoke any other AI CLI                       │
│     Via shared PTY. No API keys. Official models.                │
│                                                                  │
│  2. Human and AI share the same environment                      │
│     Same shell, same tools, same file system.                    │
│     What human can do, AI can do. And vice versa.                │
│                                                                  │
│  3. Memory crosses model boundaries                              │
│     Sessions end, but memory stays.                              │
│     Models change, but context follows.                          │
│                                                                  │
└──────────────────────────────────────────────────────────────────┘

What OpenCLIs Is Not

┌──────────────────────────────────────────────────────────────────┐
│  NOT A WRAPPER                                                   │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│  Wrappers call APIs on your behalf.                              │
│  OpenCLIs lets each CLI call its own model directly.             │
│  Kill the wrapper → experience gone.                             │
│  Kill any part of OpenCLIs → each CLI still works.               │
│                                                                  │
├──────────────────────────────────────────────────────────────────┤
│  NOT AN API PROXY                                                │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│  No tokens consumed by the framework.                            │
│  No additional API keys needed.                                  │
│  No rate limits imposed.                                         │
│  Each CLI uses the human's existing subscription.                │
│                                                                  │
├──────────────────────────────────────────────────────────────────┤
│  NOT A NEW AI MODEL                                              │
├──────────────────────────────────────────────────────────────────┤
│                                                                  │
│  OpenCLIs doesn't compete with Claude, Codex, or Gemini.         │
│  It makes them work together.                                    │
│  New model arrives tomorrow? Install the CLI. Done.              │
│                                                                  │
└──────────────────────────────────────────────────────────────────┘