Your team has a powerful, custom-built script. It deploys the latest build, resets a staging database, or pulls a critical report. It's a lifesaver for productivity. But how do you share it? Email it? Drop it in a shared Slack channel? A shared Git repo?
Suddenly, that "lifesaver" script becomes a security liability. Who has the latest version? Who is allowed to run it? And more importantly, are the embedded credentials and API keys secure?
Building powerful internal tools is one thing; managing and securing them is a completely different challenge. This is where traditional methods fall short, and where a new, agentic approach shines. With cli.do, you can transform your business logic into powerful, secure command-line interfaces (CLIs) without the security overhead.
When you build internal tools using traditional shell scripts or simple Python programs, you often bake in security risks without realizing it.
These challenges turn what should be a simple utility into a complex management and security problem.
cli.do is a service on the Agentic Workflow Platform that rethinks this entire process. By treating your CLI as an API, it shifts the execution, logic, and security away from the end-user's machine and into a secure, managed cloud environment.
This "Business as Code" approach means you only define the functionality. We handle the rest, including the security.
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) => {
// Secrets are handled securely on the backend, not the user's machine
// const API_KEY = process.env.DEPLOYMENT_API_KEY;
console.log(`Deploying ${args.project} to ${args.env}...`);
// Your deployment logic here
// await triggerDeployment(args.project, args.env, API_KEY);
return { status: 'success', message: `Deployment of ${args.project} to ${args.env} initiated.` };
});
// Your CLI is now live and callable by authorized users:
// > do cli deploy --project my-app --env production
Here's how this fundamentally solves the security challenges of internal tooling:
With cli.do, your sensitive credentials, API keys, and tokens live securely on the backend environment where your agentic workflow runs. The CLI tool on your user's machine only sends the command and its arguments (like deploy, --project my-app). The actual logic that uses the secrets is executed in the cloud, never exposing them to the end user.
Forget all-or-nothing access. cli.do is built on the .do platform's robust authentication and authorization system. This allows you to define exactly who can do what.
You have full, granular control to ensure the right people have access to the right tools, and no one else.
Every time a command is executed through cli.do, the call is logged. You get an immutable audit trail showing:
This visibility is critical for security, compliance, and debugging. There's no more guessing games; you have a single source of truth for all tool activity.
Found a bug in your deployment script? Just update the code for your agentic workflow. The moment you save it, the CLI is instantly updated for everyone. There's no need to redistribute files or ask team members to git pull. You eliminate the risk of old, vulnerable versions of your tools floating around.
Imagine you need a tool to run a database migration.
The old way: A migrate.sh script containing a database connection string. You share it with a new developer, who accidentally runs it against the production database instead of their local one. Disaster ensues.
The cli.do way:
Your developers and operators need powerful tools to be effective. But that power shouldn't come at the cost of security and control. By turning your complex processes into managed Command-Line Tools with cli.do, you empower your team while strengthening your security posture.
Ready to stop emailing scripts and start building secure, scalable, and manageable internal CLIs?
Learn more about cli.do and build your first secure command today.