Skip to main content

cliyard

CLI + YAML + Yard — a framework that generates CLI commands from YAML specs. Define your REST API in a few YAML files, and cliyard produces a fully-structured Click CLI with parameters, types, response formatting, and auto-generated help.

Installation

pip install cliyard

# Or for development
pip install -e .

Quick Start

# Generate a CLI from spec files
cliyard gen --name mycli --defs-path ./specs/
cd mycli && pip install -e .

# Use it
mycli --help
mycli repos list --page-size 10

How It Works

cliyard turns a directory of YAML files into CLI commands. One directory equals one API service. Each YAML file becomes a resource group with subcommands for every defined method.

specs/
├── _auth.yaml              # Service config: name, servers, auth chain
├── _groups.yaml            # (optional) Group definitions for nesting
├── _flows.yaml             # (optional) Flow orchestration index
├── resources/              # Resource YAML files
│   ├── repos.yaml
│   └── ...
├── flows/                  # (optional) Flow step definitions
│   ├── _flow_create_repo.yaml
│   └── ...
└── plugins/                # Python plugins
    └── *.py

Data flow for a single invocation:

CLI input → bind & validate → auth chain → assemble request → HTTP call → format response

Features

  • YAML-driven: Add a new API resource by creating a .yaml file, no code changes
  • Plugin system: 7 extension points for auth, types, hooks, methods, commands, field resolvers, flow steps
  • Flow orchestration: Define multi-step workflows with conditional branching, loops, and lifecycle hooks
  • Multi-server: Support multiple API endpoints in a single CLI
  • Rich output: Tables, JSON, CSV formatting with datetime conversion
  • Resource grouping: Nest related commands under parent groups

Examples

See the examples/ directory for ready-to-use spec sets:

  • examples/demo/ — Pet Store API demo with resource commands, plugins, and flow orchestration
# Library mode (read YAML at runtime)
python3 -c "from cliyard.runtime import create_cli; create_cli('examples/demo')()"

# Flow orchestration
petstore flow list
petstore flow run add-user --name 张三
petstore flow run retry-demo
petstore flow run plugin-demo
petstore flow run hook-demo

Documentation

Generated CLI projects include a README.md with full usage docs covering:

  • Usage & environment management
  • Adding new resources
  • Plugin authoring (all 7 plugin types)
  • Flow orchestration with conditional branching, loops, and hooks
  • Multi-server configuration
  • Custom method plugins

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cliyard-0.9.1.tar.gz (111.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cliyard-0.9.1-py3-none-any.whl (92.5 kB view details)

Uploaded Python 3

File details

Details for the file cliyard-0.9.1.tar.gz.

File metadata

  • Download URL: cliyard-0.9.1.tar.gz
  • Upload date:
  • Size: 111.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for cliyard-0.9.1.tar.gz
Algorithm Hash digest
SHA256 619142544d4e1a226661082b0e2e6bfd9b9e3fb6e56fc7029ef68d64a1f60345
MD5 f8ca9d4b4ac4e695631b46c2898ac72d
BLAKE2b-256 4638afe4d6e9658deaa25df65378aa2c6e1d1e96027a00e4d59dda551e77d0b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for cliyard-0.9.1.tar.gz:

Publisher: publish.yml on guolong123/cliyard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cliyard-0.9.1-py3-none-any.whl.

File metadata

  • Download URL: cliyard-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 92.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for cliyard-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4198ace800a86aa9416d5c2b8504a68571025bb1fd7423ce2478faf3af7a2421
MD5 c34ca3b4df3a146512045122a0c5e2c0
BLAKE2b-256 0fcdb0d2515d0ff8a2a47862590c6b47b944b1dce932d2a079d14db25375aed9

See more details on using hashes here.

Provenance

The following attestation bundles were made for cliyard-0.9.1-py3-none-any.whl:

Publisher: publish.yml on guolong123/cliyard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.15.0

2 files

0.14.2

2 files

0.14.1

2 files

0.14.0

2 files

0.13.1

2 files

0.13.0

2 files

0.12.2

2 files

0.12.1

2 files

0.12.0

2 files

0.11.1

2 files

0.11.0

2 files

0.10.0

2 files

This release

0.9.1 This release

2 files

0.9.0

2 files

0.8.0

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.0

2 files

0.5.1

2 files

0.5.0

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.2

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page