Metadata-Version: 2.4
Name: pyplines-cli
Version: 2026.7.1a1
Summary: The official command-line interface for Pyplines
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: dynaconf[yaml]<4,>=3.2.7
Requires-Dist: httpx<1,>=0.28
Requires-Dist: platformdirs<5,>=4
Requires-Dist: pyyaml<7,>=6
Requires-Dist: rich<15,>=14
Requires-Dist: typer<1,>=0.24

# pyplines-cli

`pyplines-cli` is the command-line interface for Pyplines. The initial command
surface supports local Function development through a running Pyplines Function
development container. Server commands will use the same CLI in later releases.

## Install

```console
pip install pyplines-cli
```

## Configuration

Configuration is YAML stored in the platform-native user configuration directory.
Find the exact path with:

```console
pyplines config path
```

Initial shape:

```yaml
function_development:
  url: http://127.0.0.1:7331
  connect_timeout: 5
  operation_timeout: 1800

function:
  template:
    repository: https://github.com/pyplines/function-template.git
    ref: v1
```

Every setting can be overridden with a `PYPLINES_` environment variable. Use
double underscores for nested keys:

```console
export PYPLINES_MODE=automation
export PYPLINES_FUNCTION_DEVELOPMENT__URL=http://127.0.0.1:7331
export PYPLINES_FUNCTION_DEVELOPMENT_TOKEN="<local-container-token>"
```

The token is environment-only and is not written to the configuration file.

## Output

Rich interactive output is the default. It uses purpose-built tables for
collections, compact detail views for resources, and syntax-highlighted valid
JSON when inspecting structured documents.

Set the process-level mode to `automation` for compact JSON and NDJSON output:

```console
PYPLINES_MODE=automation pyplines function status
```

Non-streaming operations emit one JSON document. Streaming operations emit one
NDJSON event per line. Automation mode never emits styling, progress indicators,
or explanatory text.

## Function Development

Initialize from the configured, pinned Git template:

```console
pyplines function init hello-world
```

Check, invoke, and package the Function mounted into the development container:

```console
cd hello-world
pyplines function status
pyplines function check
pyplines function invoke --input name=Ada
pyplines function invoke --input-file inputs.yaml
pyplines function package
```

`function init` uses the system Git client and honors existing credential helpers,
SSH agents, proxies, and enterprise Git configuration. It does not execute template
hooks or retain the template repository's `.git` directory.

## Versioning

The CLI uses calendar versioning with Python-compatible prerelease identifiers:

```text
YYYY.MONTH.REVISION{PRERELEASE}
```

For example, the `2026.7.1` release can progress through:

| Version | Meaning |
| --- | --- |
| `2026.7.1a1` | First alpha |
| `2026.7.1a2` | Second alpha |
| `2026.7.1b1` | First beta |
| `2026.7.1rc1` | First release candidate |
| `2026.7.1` | Stable release |

Published versions are immutable. Corrections require another prerelease number.
The revision advances for the next body of work released in the same month; the
year and month follow the release date. Prerelease identifiers follow PEP 440.
