Command-line interface for the Enkindler AI operations dashboard.
Project description
enkindler CLI
Command-line interface for the Enkindler AI operations dashboard. Manages AKS deployments, Helm platforms, integrations, and cluster resources from your terminal.
Patterned after az and databricks — designed to be ergonomic for both humans and AI agents.
Install
pip install enkindler
Works on macOS, Linux, and Windows (Python 3.10+).
Quick start
# Sign in: generate a CLI token on the dashboard's /cli-token page, then paste it
enkindler login --token
# Or the browser convenience flow (requires the cluster's Entra loopback redirect URI)
enkindler login
# Verify the session
enkindler whoami
# List your deployments
enkindler deployment list
Namespaces
One workload (app, platform, or CronJob) is allowed per namespace. Workload
create commands (deployment create, helm install, cronjob create) require
--namespace <full-aks-namespace> — the full name, already workspace-prefixed
as <workspace-slug>-<name> (e.g. workspace finance → finance-invoices).
The backend rejects names outside the active workspace.
Pre-flight a namespace before creating (checks both workload occupancy and the admin-managed restricted-namespaces denylist; exits 1 if taken):
enkindler namespace occupancy # occupied namespaces in the workspace
enkindler namespace occupancy --namespace finance-invoices # single-candidate check
Platform admins manage the denylist with
enkindler settings update --set 'RESTRICTED_NAMESPACES=legacy-ns,shared-infra'
(system namespaces like default and kube-system are always restricted).
A workload's namespace is immutable after creation.
Configuration
Config and the cached JWT live at:
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/enkindler/config.toml |
| Linux | ~/.config/enkindler/config.toml |
| Windows | %APPDATA%\enkindler\config.toml |
Override the backend URL with --api-url https://... on any command, or set ENKINDLER_API_URL in the environment.
Architecture
- Backend exposes an OpenAPI spec at
/api/openapi.json(the contract). - This CLI consumes that spec to drive command behaviour.
- Auth uses backend-issued tokens: sign in to the web dashboard, generate a CLI token at
/cli-token, and paste it at theenkindler login --tokenprompt. A browser OAuth (PKCE) flow is available via plainenkindler loginon clusters whose Azure app registration allows loopback redirects.
Development
python -m venv .venv && source .venv/bin/activate # or `.venv\Scripts\activate` on Windows
pip install -e '.[dev]'
pytest
ruff check .
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file enkindler-0.10.0.tar.gz.
File metadata
- Download URL: enkindler-0.10.0.tar.gz
- Upload date:
- Size: 62.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e6e1f9f62fd6c63191a625d336471115ff9aaf50f00a565bde0d861a058dc61
|
|
| MD5 |
3914350e748cf03ce3fa2d056406cfcd
|
|
| BLAKE2b-256 |
8eea5a4830490e0882fd78e13a9132aafbdc2951a79e84515ecd28ce5d3e51fa
|
File details
Details for the file enkindler-0.10.0-py3-none-any.whl.
File metadata
- Download URL: enkindler-0.10.0-py3-none-any.whl
- Upload date:
- Size: 74.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb7dc632555af2e580f5ea7e63b5f119c31f0a2256053ab11a5e484389e3746e
|
|
| MD5 |
873b03815e5445368c99f277fc1b57c8
|
|
| BLAKE2b-256 |
1b446e1dcbaae9a0955788fb1eb2d2ef66d0b70570242e4370d1a669db003987
|