THE CLI IS JUST THE BEGINNING

Small tools.
Big reach.

Define your CLI once.
Use it from terminals, desktop forms,
HTTP, and AI agents.

Your language. Your scripts. One consistent contract.
clyops makes the tools you write accessible wherever work happens.

OPEN SOURCE / MIT9 LANGUAGE IMPLEMENTATIONS
FROM SCRIPT TO AGENTILLUSTRATIVE PLAYBACK
~/ops / scripts/plan.py
$EDITOR scripts/plan.py
#!/usr/bin/env python3
import json

from clyops import Cli

cli = Cli(name="plan")
cli.set_description("Build a deployment plan. Change nothing.")
cli.opt("SERVICE", "service", "s", "api", "Service", rule="choice:api,worker")
cli.opt("ENV", "env", "e", "staging", "Environment", rule="choice:staging,production")
cli.opt("REPLICAS", "replicas", "r", "2", "Replica count", rule="int:1-10")
cli.set_effects("read-only")
cli.set_stdout("Deployment plan", "application/json")
args = cli.run()
print(json.dumps({"service": args.SERVICE, "env": args.ENV, "replicas": args.REPLICAS}))
Write the tool01 / 06

Register options, validation and effects beside your code.

Real tool output. Agent dialogue illustrated. Schema and HTTP views abbreviated. Read or run the demo →

01 / ONE SOURCE OF TRUTH

The interface lives
beside your code.

Register an option once. Its type, default, validation and description travel with the tool. Help text, generated forms and agent inputs all start with the same contract.

your toolBash, Python, TypeScript, Rust…
--help-json-schema
THE CONTRACToptions · types · validation
effects · secrets · stdin / stdout

02 / MEET YOUR TOOLS WHERE YOU WORK

A script can be more than a script.

01 — TERMINAL

Stay in your flow.

Parsing, validation, generated help and shell completion. Turn a directory of tools into one command with the dispatcher.

$ ops plan --env stagingExplore the dispatcher
02 — DESKTOP

Give scripts a face.

The desktop runner builds forms from the schema, streams output and handles secrets, templates and declared effects.

Meet the desktop runner
03 — HTTP

Make it an endpoint.

Serve a tool directory with JSON input, OpenAPI, streamed I/O and optional jobs. Keep the execution logic in your tool.

POST /tools/planBuild an HTTP API
04 — AGENTS

Let agents call it.

MCP exposes each tool with typed inputs and effect annotations. Validate arguments before the tool runs.

plan({ env: "staging" })Connect an MCP client

03 / START SMALL

Your next useful tool
starts here.

Pick your language. Register a few options.
Let the same interface do more of the work.

All guides and API references
PYTHON / INSTALL
python -m pip install clyops
Read the Python guide →

Shared specification. Shared conformance suite.

Every language is checked against the same behavior contract.

Read the specification