Install and run shared CLI commands
Browse community libraries and run commands directly. Or author your own as YAML specs with args, flags, and multi-step workflows.
brew install mycli-sh/tap/mycli Everything you need
From authoring to execution, mycli covers the full command lifecycle.
Install & Run
Install curated libraries and run commands directly as `my <library> <command>`. Git-backed sources and registry libraries both work — no account needed.
Define as Code
Author commands as YAML or JSON specs with args, flags, environment variables, Go templates, and multi-step workflows. Validated against a JSON Schema.
Publish & Sync
Push commands to a registry and sync them across machines. ETag-based caching keeps your local catalog up to date with minimal bandwidth.
How it works
From installation to creating your own.
Install
Install a library from the registry or add a git-backed source.
$ my library install kubernetes
Installed kubernetes (12 commands)
$ my source add https://github.com/user/ops-tools.git
Added source "ops-tools" (2 libraries) Run
Run commands directly as top-level subcommands with full arg parsing.
$ my kubernetes port-forward svc/my-service -p 8080
Forwarding svc/my-service:8080 → localhost:8080
$ my ops deploy api -e production
Deploying api to production...
Deploy complete. Create your own
Author commands as YAML specs, push to the registry, and share them.
schemaVersion: 1
kind: command
metadata:
name: greet
slug: greet
description: Greet someone
steps:
- name: greet
run: echo 'Hello, {{.args.name}}!'
$ my cli push -f command.yaml
Published version 1 (hash: e5f6a7b8) Powerful command specs
Define complex workflows with args, flags, environment variables, templates, and policies.
schemaVersion: 1
kind: command
metadata:
name: deploy
slug: deploy
description: Deploy application to environment
tags: [ops, deploy]
args:
positional:
- name: environment
description: Target environment
required: true
flags:
- name: dry-run
short: n
type: bool
description: Preview without applying changes
defaults:
shell: /bin/bash
timeout: 5m
steps:
- name: validate
run: |
echo "Deploying to {{.args.environment}}..."
test -f {{.cwd}}/deploy.sh
- name: deploy
run: ./deploy.sh {{.args.environment}}
policy:
requireConfirmation: true Ready to get started?
Install mycli and start running commands in seconds.