1- # flowsh
1+ # flowsh-cli
22
3- ` flowsh ` is a small ` uv ` Python CLI deliberately reduced to one tool:
4-
5- ``` bash
6- uv run flowsh .made/workflows.yml
7- ```
8-
9- It reads MADE workflow YAML and writes executable Bash harness scripts for OpenCode.
3+ ` flowsh-cli ` is a small ` uv ` Python CLI that reads workflow YAML and writes executable Bash harness scripts for OpenCode.
104
115## Supported YAML
126
@@ -42,29 +36,31 @@ Harness paths are derived from workflow ids. `wf_example` writes `.harness/examp
4236
4337` ` ` bash
4438# Generate every workflow harness
45- uv run flowsh .made/workflows.yml
39+ uvx flowsh-cli .made/workflows.yml
4640
4741# Generate one workflow by id
48- uv run flowsh .made/workflows.yml --workflow wf_example
42+ uvx flowsh-cli .made/workflows.yml --workflow wf_example
4943
5044# Show planned outputs without writing files
51- uv run flowsh .made/workflows.yml --dry-run
45+ uvx flowsh-cli .made/workflows.yml --dry-run
5246
5347# Overwrite existing harness files
54- uv run flowsh .made/workflows.yml --force
48+ uvx flowsh-cli .made/workflows.yml --force
5549
5650# Show version
57- uv run flowsh --version
51+ uvx flowsh-cli --version
5852` ` `
5953
54+ You can also run it via `uv run flowsh-cli` if installed locally.
55+
6056# # CLI Contract
6157
62- ` flowsh` is non-interactive. It never prompts for missing information.
58+ ` flowsh-cli ` is non-interactive. It never prompts for missing information.
6359
6460Current help output is plain text and deterministic across repeated runs :
6561
6662` ` ` text
67- Usage: flowsh [OPTIONS] WORKFLOW_YAML
63+ Usage: flowsh-cli [OPTIONS] WORKFLOW_YAML
6864
6965 Generate reproducible OpenCode Bash harness scripts from MADE workflow YAML.
7066
@@ -75,7 +71,7 @@ Options:
7571 --workflow TEXT Optional workflow id to generate. Defaults to all workflows.
7672 --dry-run Print planned output paths without writing scripts.
7773 --force Overwrite existing files. Without this, existing files cause a failure.
78- --version Show the flowsh version and exit.
74+ --version Show the flowsh-cli version and exit.
7975 --help Show this message and exit.
8076` ` `
8177
@@ -87,7 +83,7 @@ Exit codes:
8783| Case | Exit | stdout | stderr |
8884|---|---:|---|---|
8985| `--help` | `0` | Help text | Empty |
90- | `--version` | `0` | `flowsh <version>` | Empty |
86+ | `--version` | `0` | `flowsh-cli <version>` | Empty |
9187| Valid generation | `0` | One `Wrote <path>` line per harness | Empty |
9288| Valid `--dry-run` | `0` | One `DRY-RUN would write <path>` line per selected workflow | Empty |
9389| Missing required CLI argument | `2` | Empty | Typer usage error |
@@ -113,11 +109,11 @@ make hygiene
113109make clean
114110` ` `
115111
116- ` make install` installs `flowsh` into the user PATH with `uv tool install --force .`.
112+ ` make install` installs `flowsh-cli ` into the user PATH with `uv tool install --force .`.
117113` make build` creates reproducible source and wheel distributions under ignored `dist/`.
118114
119115` make qa` runs Ruff, Python compile checks, and pytest with locked dependencies, then builds packages locally and in CI.
120- The pytest suite also verifies `python -m flowsh `, `uv run flowsh`, and the direct
116+ The pytest suite also verifies `python -m flowsh_cli `, `uvx flowsh-cli `, and the direct
121117` scripts/workflow_to_harness.py` entrypoint against the same help contract.
122118` make hygiene` prints tracked, untracked, and ignored files with
123119` git status --short --ignored` ; review it before release to confirm only intended
0 commit comments