Sharath Kuruganty

Universal CLI by Composio - Connect AI agents to 1000+ apps directly from your terminal

There’s a lot of debate right now around how agents should use tools: MCP vs. CLI. We don’t think there’s one right answer. Universal CLI by Composio gives you a single interface to connect agents to tools, whether you're working with MCP, APIs, or both. Same underlying system. Just another way to access it.

Add a comment

Replies

Best
Sharath Kuruganty
Hello PH 👋🏼 I'm back with a banger launch. There's a debate happening on Twitter right now: MCP vs CLI. Everyone's picking sides. We're here to settle it: the answer is both. Stoked to announce Universal CLI by Composio today. Your agents can get access to 1000+ tools instantly with one command in your terminal. Same Composio ecosystem you know, new interface for where a lot of you are actually building. The wave is here. We're riding it 🏄 If you have any questions/feedback, me and my team will be hanging out in comments. Let's chat. GO TEAM CLI 🚀
Soham Ganatra

Hey PH community. Soham, co-founder at Composio.

We're taking a side today: we go where our users are.


And right now, a big chunk of them are in the terminal. Claude Code users. Agent builders running scripts. Teams with CI/CD pipelines. They've been asking for this.


MCP is a protocol. CLI is an interface. They solve different problems at different layers and we support both. But the timing for CLI is right, and we're not going to sit on the sidelines while the ecosystem moves.

Announcing Universal CLI by Composio

                 curl -fsSL https://composio.dev/install | bash


With this one command your agent get to access:
- 1000+ tools
- managed auth
- scoped permissions 


All from your terminal.


If you're already on Composio via MCP, this is additive. Use whatever fits your environment.


Building something with it? Drop it below — happy to go deep.


Got any feedback? Let us know what you think in comments below.

swati paliwal

@soham_ganatra3 For teams scoping permissions across multiple devs, how granular does the auth get? Can you lock it to specific tools/actions per env/user without boilerplate?

Jayesh Sharma

@soham_ganatra3  @swati_paliwal Hi Swati! Yes, you can lock specific tools and actions per user when you create a session. You can also limit what a specific tool can do by specifying the scopes. For example, just read or read and write both.

Gabe Perez

Congrats on the launch! I'm a big fan of composio, I've been using @Rube by Composio for almost all my agents. I see that we can also install Composio natively into other agents aside from the CLI as well. How does the new launch and those other methods compare to Rube? Which do your recommend?

Shawn Esquivel

@gabe Hey Gabe! I work on the DevRel side at Composio so happy to clarify this.

Short answer: if you love Rube, keep using it! We still love MCP.

The CLI just brings that same tooling to the command line. So if you're using Claude Code, Cursor, Codex, or any AI agent in your terminal, the CLI makes them way more powerful by giving them access to all 1000+ Composio tools right where they already work.

Think of it as: Rube brings Composio to your apps, the CLI brings Composio to your terminal.

Same tools, just meeting you wherever you are.

Let me know if that makes sense!

Gabe Perez

@shawn_esquivel super clear, thanks for the explanation! Capturing the one line in case others come looking with the same question!

Rube brings Composio to your apps, the CLI brings Composio to your terminal

Preston Daniel

This seems very helpful for solo developers. How do teams collaborate using this system?

Mykola Kondratiuk

The MCP vs CLI thing is genuinely annoying to navigate as someone who runs a bunch of terminal-based agents. I keep hitting cases where one tool works great over MCP but another only has a CLI wrapper. Having a unified interface that handles both underneath makes a lot of sense. Curious how you handle auth token refresh for long-running agents - that’s usually where things break silently.

Shawn Esquivel

@mykola_kondratiuk  Hi Mykola,

DevRel from Composio here.

This is the exact pain point that made makes Composio perfect for agent workflows.

On the auth refresh question — Composio manages the entire token lifecycle on their side. When you connect a service via `composio link`, the OAuth tokens are stored and refreshed by Composio, not your agent.

So your agent just calls `composio execute GMAIL_SEND_EMAIL` or whatever, and Composio handles whether that token needs a refresh before the call goes through. Your agent never touches tokens directly.

That's the key difference from rolling your own integrations — there's no silent breakage at 3am because a Google token expired and your refresh logic had an edge case. Composio sits in between as the auth layer.

And on the unified interface point, that's exactly right.

It's the same auth, same tool library, same permissions whether you're coming in through MCP (Rube) or the Composio CLI.

We designed it to fit the interface that fits your environment, so we can support as many devs as possible.

Hope that makes sense!

Shawn

Mykola Kondratiuk

that’s the right call - delegating auth lifecycle to the platform layer means agents don’t need to care about token state at all. makes the failure surface much smaller.

Shawn Esquivel

@mykola_kondratiuk  you hit the nail on the head :)

Mykola Kondratiuk

ha, always nice when a tool actually delivers on what the demo promises. good luck with the launch!

Mihir Kanzariya

The MCP vs CLI take is spot on. I've been going back and forth on which approach to use for my agent workflows and honestly it shouldn't matter that much. One interface for both is the right call.

How's the OAuth handling work in practice? That's always the part where things get messy when you're connecting to like 10 different services.

Shawn Esquivel

@mihir_kanzariya 

Appreciate it Mihir! DevRel from Composio here!

And yeah, the OAuth piece is actually where Composio shines the most IMO. In practice, you don't manage OAuth flows yourself at all.

When you try to execute a tool and the account isn't connected yet, the CLI just tells you. Then you run `composio link ` — it opens a browser-based auth flow, handles the token exchange, and stores the credentials on Composio's side.

After that, every tool call for that service is automatically authenticated.

So for 10 services, it's literally just `composio link github`, `composio link gmail`, `composio link slack`, etc. — one-time setup per service.

From that point on, whether you're using `composio execute`, scripting with `composio run`, or even hitting raw API endpoints via `composio proxy`, auth is handled for you. No token refresh logic, no credential management in your codebase.

The key thing is Composio manages the auth layer - your agent just calls tools.

It never sees tokens or deals with OAuth scopes directly. That's the same whether you're coming in through the CLI or through Rube/MCP.

Hope that makes sense

Jayesh Sharma

@mihir_kanzariya  @shawn_esquivel And you don't have to run the link commands yourself. If you're using an agent environment, the agent gives you the link to click on as and when a toolkit is required so you don't really have to manage the overhead of connecting tools before you actually need them.

Shawn Esquivel

W demo video guys

Been using the Composio CLI inside Claude Code to connect Notion, Slack, Gmail, and GitHub recently. It's a massive unlock as a solopreneur.

One-click OAuth for all of them, no more context switching between apps.

Multi-Claude'ing + CLI is all you need

Curious Kitty
A lot of teams worry about security boundaries with agents: where do credentials live, how are scopes enforced, and what audit/logging exists. How does the Universal CLI handle least-privilege and credential lifecycle in practice, especially for multi-user teams and headless/CI environments?