Metadata-Version: 2.4
Name: klavex
Version: 0.1.4
Summary: Klavex CLI — pull environment variables into a process without writing secrets to disk.
Author: Klavex
License: Proprietary
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Requires-Dist: httpx<1.0,>=0.27
Requires-Dist: keyring<26,>=24
Requires-Dist: platformdirs<5,>=4
Requires-Dist: tomli-w<2.0,>=1.0
Requires-Dist: tomli>=2.0; python_version < '3.11'
Requires-Dist: typer<1.0,>=0.12
Provides-Extra: dev
Requires-Dist: mypy>=1.11; extra == 'dev'
Requires-Dist: pytest-cov>=5; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: respx>=0.21; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Description-Content-Type: text/markdown

# klavex

CLI for [Klavex](https://klavex.dev). Pulls environment variables from your team's vault and injects them into a child process — secrets never touch disk.

```bash
pip install klavex
klavex login
klavex run -- npm start
```

See [IMPLEMENTATION.md](./IMPLEMENTATION.md) for the design.

## Commands

| Command | Status |
| --- | --- |
| `klavex login` | v0.1 |
| `klavex logout` | v0.1 |
| `klavex whoami` | v0.1 |
| `klavex status` | v0.1 |
| `klavex projects` | v0.2 |
| `klavex envs <project>` | v0.2 |
| `klavex vars -e <env>` | v0.2 |
| `klavex run -e <env> -- <cmd>` | v0.3 (blocked on backend reveal endpoint) |
| `klavex export -e <env>` | v0.4 |
| `klavex use -p <project> -e <env>` | v0.4 |

## Development

```bash
pip install -e ".[dev]"
klavex --version
pytest
ruff check .
mypy
```

Override the API URL for staging or local:

```bash
export KLAVEX_API_URL=http://localhost:8000
```

## Agents & CI (non-interactive auth)

For an agent seat (minted in the dashboard) or a CI runner, there's no browser
for `klavex login`. Pass the token via the environment instead — it takes
precedence over the keychain and needs no OS keychain at all:

```bash
export KLAVEX_TOKEN=kx_agent_...        # the token shown once when you mint the seat
klavex run -e env_xxx -- npm test       # scoped to exactly the envs you granted
```

Use environment **IDs** (`env_xxx`) or a committed `.klavex` pin for agents —
name lookups hit team-level endpoints that scoped agent tokens can't read.
