In modern development, the command line is our cockpit. We use it to deploy applications, manage infrastructure, query databases, and interact with dozens of APIs. But this power comes with a cost: toolchain chaos. Your terminal history is likely a graveyard of forgotten flags and distinct syntaxes for aws-cli, gcloud, kubectl, gh, stripe-cli, and a dozen other internal scripts.
Each tool is its own island, with unique authentication, syntax, and conventions. Orchestrating a task across them means context-switching, mental gymnastics, and brittle shell scripts.
What if you could consolidate all of it? What if you could build a single, unified "master CLI" for your entire organization—a single pane of glass for your terminal that speaks one language?
This isn't just a dream. It's the core principle behind cli.do: turning your Business as Code by treating the CLI as an API.
If you're a developer, DevOps engineer, or SRE, this probably sounds familiar. Your daily workflow involves interacting with a sprawling ecosystem of tools:
This fragmentation creates significant friction:
This is the digital equivalent of having a different, oddly shaped key for every single door in your office. It’s inefficient and frustrating.
cli.do offers a revolutionary approach. Instead of learning, installing, and managing dozens of binaries, you define your commands as simple API endpoints. We handle the rest, transforming your logic into powerful, scalable command-line tools.
The core idea is to abstract away the boilerplate. You write the function, and cli.do instantly generates, hosts, and distributes the CLI for you.
Let's look at how simple it is. Imagine you want to create a command to deploy a project. With cli.do, you don't write a shell script and a parser; you define an Agent.
import { Agent } from '@do-sdk/agent';
// Define your CLI command as an Agent
const cli = new Agent('cli.do');
// Create a 'deploy' command with project and environment arguments
cli.on('deploy', {
project: { type: 'string', required: true },
env: { type: 'string', default: 'staging' },
}, async (args) => {
console.log(`Deploying ${args.project} to ${args.env}...`);
// Your deployment logic here, e.g., calling a cloud provider's API
// await triggerDeployment(args.project, args.env);
return { status: 'success', message: `Deployment of ${args.project} to ${args.env} initiated.` };
});
// Your CLI is now live and callable:
// > do cli deploy --project my-app --env production
Look at that code. It reads like a web server route handler, not a traditional CLI script. You define a name (deploy), specify the expected arguments (project, env), and provide the async function to execute.
Instantly, this command becomes available to anyone on your team with access. No npm install, no pip install, no compiling binaries. Just pure functionality.
This goes far beyond simple aliases. With cli.do, your commands become intelligent "agents" capable of executing complex, multi-step Agentic Workflows.
Because you're just writing code, you can orchestrate actions across multiple services within a single command. Consider a unified command for onboarding a new customer:
> do clients onboard --name "Acme Inc" --plan "enterprise"
This single, intuitive command could trigger an agent that performs a complete workflow:
This is the true power of a master CLI. You're not just running commands; you're executing codified business processes from your terminal.
By consolidating your tools with cli.do, you gain immediate, transformative benefits:
Stop wrestling with a fragmented toolchain. Start building a coherent, powerful, and unified command-line experience for your entire team. Turn your disparate scripts and API calls into a single master CLI that represents your operational nervous system.
Get started with cli.do today and build the last CLI you'll ever need.
Q: What is cli.do?
A: cli.do is an Agentic Workflow Platform service that allows you to effortlessly create and manage command-line interfaces (CLIs) as APIs. It enables you to expose your business logic and automated workflows as simple, distributable tools.
Q: How does cli.do differ from traditional CLI builders?
A: Unlike traditional libraries that require manual setup, argument parsing, and deployment, cli.do abstracts the entire process. You define your command's logic as code, and we automatically generate, host, and scale the CLI, making it instantly available.
Q: Who can use the CLIs I build?
A: You have full control. CLIs can be kept private for internal team use, shared with specific users, or made public. Access is managed through the .do platform's robust authentication and authorization system.