Metadata-Version: 2.4
Name: langlauf-cli
Version: 0.6.8
Summary: A comprehensive multi-platform tool providing a consistent and easy-to-use interface to Langlauf's online services.
License-File: LICENSE
Author: Langlauf
Requires-Python: >=3.12,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: api4jenkins (>=2.1.0,<3.0.0)
Requires-Dist: inquirerpy (>=0.3.4,<0.4.0)
Requires-Dist: platformdirs (>=4.9.6,<5.0.0)
Requires-Dist: pydantic (>=2.13.4,<3.0.0)
Requires-Dist: pydantic-settings (>=2.14.1,<3.0.0)
Requires-Dist: rich (>=15.0.0,<16.0.0)
Requires-Dist: typer (>=0.20.0,<0.26.0)
Description-Content-Type: text/markdown

# Langlauf Command Line Interface (LL CLI)

The Langlauf Command Line Interface is a comprehensive multi-platform tool
providing a consistent and easy-to-use interface to Langlauf's online services.
It is primarily intended for non-interactive automation, but may just as
well be used interactively.

## Install

Use [pipx](https://pipx.pypa.io/) (recommended) or [uv](https://docs.astral.sh/uv/)
to install the CLI into an isolated environment and expose `ll-cli` on `$PATH`:

```bash
# pipx
pipx install langlauf-cli

# uv
uv tool install langlauf-cli
```

Upgrade with `pipx upgrade langlauf-cli` / `uv tool upgrade langlauf-cli`.

### Shell completion

`ll-cli configure` offers to install shell completion as part of setup
(this also fires on first interactive use when no credentials are
configured yet). Re-run `ll-cli configure` any time to (re-)install it.

Bash only for now. Completion is generated statically from the live
command tree, so Tab is instant — re-run `ll-cli configure` after CLI
changes to keep the script in sync.

## Configure

Easiest path — run the interactive setup:

```bash
ll-cli configure
```

This prompts for the SBOMaaS URL, user, and API token and writes them to
`~/.config/ll-cli/config.env` (macOS: `~/Library/Application Support/ll-cli/config.env`;
Windows: `%LOCALAPPDATA%\ll-cli\ll-cli\config.env`) with mode `0600`. The same
prompt fires automatically the first time you run `ll-cli upload` / `download`
/ `status` without credentials in an interactive terminal.

If you'd rather edit the file by hand, it's plain `KEY=value` (same syntax as
shell env vars):

```bash
SBOMAAS_URL=https://sbomaas.example
SBOMAAS_USER=your-user
SBOMAAS_TOKEN=11...
```

For CI / containers / one-off runs, the same settings are accepted as shell env
vars (`SBOMAAS_URL`, `SBOMAAS_USER`, `SBOMAAS_TOKEN`, `SBOMAAS_TIMEOUT_*`). Shell
env vars override the config file. `ll-cli configure --url ... --user ... --token ...`
also works for non-interactive provisioning.

See [`.env.example`](.env.example) for the full list of supported variables.

