We are currently looking for testers on Linux and macOS. If you can help validate the CLI behavior on these platforms, please open an issue or share feedback.
Turn your software into tools that humans, automation, and AI agents can use.
⭐ Give us a star to support the project
Get Started · Building a plugin · Documentation · Getting Started Guide
- APIs made software accessible to applications.
- CLIs made software accessible to developers.
- AI agents are making software capabilities accessible through natural language.
But agents still need reliable, deterministic tools to actually get things done. That's where the CLI comes in.
A good CLI is already designed for what AI agents need:
- Discoverable. Agents can understand commands and capabilities.
- Composable. Commands can be combined into workflows.
- Automatable. CLIs work naturally with scripts, CI/CD and automation.
- Deterministic. The same command produces predictable results.
- Readable by machines. Structured JSON output makes results easy for software and agents to consume.
- Local and secure. CLIs can run alongside the developer, their code and their existing authentication environment.
- Cheaper in tokens. Agents discover a CLI on demand through
--helpand can filter its output before it reaches the model. A typical MCP setup loads every tool definition into the context up front and passes every result through it.
Anthropic's engineering team describes those two costs, and the same remedy of on-demand discovery and filtering results before they reach the model, in Code execution with MCP.
The CLI isn't going away. It's evolving.
Building a production-ready CLI from scratch means repeatedly solving the same problems:
- Authentication
- Configuration
- Secrets
- Command parsing
- Validation
- Logging
- Error handling
- Output formatting
- Updates
- Platform support
The BYO SDK takes care of the infrastructure so you can focus on what actually matters: your software's capabilities.
Build your CLI once and expose it to:
| Audience | What it gets | |
|---|---|---|
| 👨💻 | Developers | A powerful interface to your platform. |
| ⚙️ | Automation | Your capabilities in scripts, CI/CD and workflows. |
| 🤖 | AI Agents | Deterministic, executable tools that agents can discover and use. |
Your Software
▼
CLI SDK
▼
Humans Automation AI Agents
Instead of building separate experiences for every consumer, create one executable interface that serves them all.
The next generation of software won't just be consumed through websites and APIs. It will be executed by people, automated by systems, and orchestrated by AI agents.
Build the tools they'll need. Build your CLI with BYO.
From API to CLI. From CLI to AI.
Run a single command to install. Works across all major platforms.
macOS / Linux
curl -fsSL https://github.com/softwareworkercom/byo/releases/latest/download/install.sh | bashWindows (PowerShell)
iwr -useb https://github.com/softwareworkercom/byo/releases/latest/download/install.ps1 | iexThe installers detect your OS/architecture, download the matching binary, verify its SHA256 checksum, and add it to your PATH.
Then run:
byo --helpThe byo CLI is built with the BYO SDK and is the reference for what you get. It helps you save repeatable commands, organize local settings, and turn messy terminal habits into reliable automation.
- Never lose a command again. Save the exact commands that worked, and run them instantly whenever you need them.
- Less context switching. No more digging through notes, Slack messages, or shell history to remember flags and scripts.
- Secrets stay local. Sensitive values are collected by workflows and stored in the local, encrypted secrets store. No account, no sync service, no hosted backend.
- Automate the boring stuff. Turn repetitive setup, deployment, and debugging steps into reusable workflows in seconds.
- Extend it. Add new command groups through NuGet plugins built against
BYO.SDK. See Building a plugin.
A plugin is a NuGet package that adds your own command groups to byo. Write command handlers against BYO.SDK, pack, install, and your commands appear in byo --help, the interactive shell, scripts and CI alongside the built-in ones.
- Building a plugin: Quick start, the command model, parameters, SDK services, packaging and troubleshooting
BYO CLI is built around seven command groups:
- run: Execute saved commands or workflows
- commands: Manage saved shell commands
- settings: Manage configuration key-value pairs
- secrets: Manage encrypted sensitive values
- workflows: Manage multi-step automation workflows
- plugins: Discover, install, and uninstall plugins from NuGet.org, your own NuGet feeds or local folders
- alias: Give the CLI your own name
Prefer to stay in BYO? Run byo without arguments to open an interactive shell with autocompletion, syntax highlighting and history.
Token replacement resolves {{Key}} against settings, secrets, built-in values, and command-line overrides when a command runs.
These flags are available on executable commands where applicable:
- storage: Learn where BYO CLI stores your data and understand the file formats
Secrets can be set directly with byo secrets set, or collected during a run by a workflow InputAsSecret step. Either way they are encrypted at rest and referenced with token replacement.
All commands follow a consistent pattern: byo <group> <action> [options]
For a complete walkthrough with a practical example check out the Getting Started Guide.
- 🐞 Report bugs and request features in Issues
- 💬 Share ideas in Discussions
This project is licensed under the MIT License.