jetstan-cli
Engineer-facing CLI for Jetstan fleet operations. Installs its own
console script, jetstan, independently of jetstan-agent — this is
a standalone PyPI package, not a submodule of the OTA agent.
jetstan talks to the Control Plane (cloud-logics) over HTTP only.
It never talks to PostgreSQL or MQTT directly (see the repo root
TECHNICAL.md for the full architecture).
Command surface
jetstan --help
jetstan --version
jetstan health
jetstan batch create|list|show|assign
jetstan deploy
jetstan release
jetstan_cli/commands/{deployment,publish}.py remain documented
placeholders for future subcommands — not wired into the CLI yet, since
the Control Plane has no business logic to back them (see each module's
own docstring for what it will eventually do).
jetstan_deploy.py, the working release tool relocated here from the
old top-level scripts/, is what jetstan release wraps (see
commands/release.py) — it also still runs standalone via
python -m jetstan_cli.jetstan_deploy.
Installing
cd jetstan-cli
pip install -e .
Or, once published:
pip install jetstan-cli
Either way, this registers the jetstan console script.
Configuration
Every command except --help/--version needs to know where the
Control Plane is. Set JETSTAN_API — there is no hardcoded default:
cp .env.example .env
# edit .env: JETSTAN_API=http://127.0.0.1:8123
jetstan_cli/config.py reads this from the environment (or from
jetstan-cli/.env for local development, the same convention every
other package in this repo already uses).
Usage
jetstan --help
jetstan --version
jetstan health
# ✓ Control Plane Healthy (exit code 0)
# or
# ✗ Control Plane Unreachable (exit code 1)
jetstan batch create MFG-20260807-L01
jetstan batch list
jetstan batch show MFG-20260807-L01
jetstan batch assign --device <serial> --to MFG-20260807-L01
jetstan deploy --release 2.5.0 --batch MFG-20260807-L01
jetstan release --package agent # or --package cli / --package software
batch/deploy are thin HTTP clients only — every actual rule (does a
batch exist, can a release be deployed, MQTT publish) lives in
cloud-logics; see each command module's own docstring. release
wraps jetstan_deploy.py's real, hard-to-reverse build/test/PyPI-upload
flow — it prompts for confirmation unless --yes is given.
Testing
pip install -e ".[dev]"
pytest
Release files for jetstan-cli 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jetstan_cli-0.1.5.tar.gz | 23.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jetstan_cli-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 42.6 kB
Release files / jetstan_cli-0.1.5.tar.gz
| Download URL | jetstan_cli-0.1.5.tar.gz |
|---|---|
| Size | 23.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f60032544a590d1b296ee04ad0f7d501ad8316ec2ded485b98423db716aba30f
|
|
BLAKE2b-256 checksum How to use checksums |
dde4dc1473ea9528f19a2809d2c5b67feafba86a44c379a8d2ec8a997c51b229
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / jetstan_cli-0.1.5-py3-none-any.whl
| Download URL | jetstan_cli-0.1.5-py3-none-any.whl |
|---|---|
| Size | 19.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ba375e61fde5d1cd3562e58ec218e22a9dedfafd7b6ba11ee0c9a07d00d54701
|
|
BLAKE2b-256 checksum How to use checksums |
b7dd7635b3fefe3f2bed4d875b5d84870710c29cb0f0f4b3d5c454e044072aaf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|