XGIC Payload CMS CLI
Payload CMS product commands for the modular XGIC CLI.
Namespace: xgic.cli.payload · Console group: xgic payload … · Brand: XGIC CLI only (ADR-0005)
Standards hub: xgic/ai
Vision
Payload application teams—and the AI agents that help them—need a small, stable command surface for project ensure, environment status, smart dev start, and safe reset. This module owns that product surface. Generic Compose lifecycle stays in dev-cli; the Dev Container image is built in payload-cms-dev; applications start from payload-cms.
One brand (xgic), clear ownership, and dry-run-friendly destructive paths.
Why this module exists
| Benefit | Detail |
|---|---|
| Domain clarity | Nested under xgic payload—no clash with generic xgic up / down |
| AI + human parity | Same commands in READMEs and AGENTS.md |
| Safe operations | Reset and regenerate paths support explicit confirmation / dry-run patterns |
| Composable stack | Depends on xgic-cli + xgic-dev-cli; ships on PyPI for image and host installs |
| Open-source rigor | Apache-2.0, Python 3.14+, RC → TestPyPI → PyPI |
Ecosystem
| Package / repo | Role |
|---|---|
| xgic/cli | Thin core framework (xgic) |
| xgic/dev-cli | Dev Container / Docker Compose lifecycle |
| This repo | Payload CMS product module (xgic.cli.payload) |
| xgic/payload-cms-dev | Dev Container image producer (ghcr.io/xgic/payload-cms-dev) |
| xgic/payload-cms | End-user template (recommended app start) |
Quick start
Install (PyPI)
uv pip install \
"xgic-cli>=0.2.0,<0.3" \
"xgic-dev-cli>=0.2.0,<0.3" \
"xgic-payload-cms-cli>=0.2.5,<0.3"
xgic payload --help
Development (editable)
uv pip install -e ../cli
uv pip install -e ../dev-cli
uv pip install -e ".[dev]"
xgic payload --help
Typical Payload session (inside a Dev Container)
First session (one setup command — creates .devcontainer/.env if missing, starts the DB profile, scaffolds the app):
xgic payload setup
xgic payload dev
Daily (after the app exists):
xgic payload dev
Optional: xgic payload env (status), xgic payload env --regenerate --yes (rewrite credentials in .devcontainer/.env and sync the app .env — not required for first setup). Regenerate does not delete Compose DB volume data; it also does not change the password already stored in that volume—recreate the volume (xgic payload reset --yes, destructive) or update the DB role to match. Non-destructive live rotation is tracked separately.
Prefer the end-user template for application work: payload-cms.
Console commands
All product commands nest under xgic payload:
| Command | Purpose |
|---|---|
xgic payload dev |
Primary daily command — smart start (up if needed, DB check, pnpm dev) |
xgic payload setup [--quiet] |
First-run one-shot: env (if missing) + DB profile + scaffold (idempotent). pnpx is invoked with --allow-build=@swc/core (and other native packages) so pnpm 10+ can run generator install scripts. |
xgic payload env [--json] |
Product env status (project name, .env, services) |
xgic payload env --regenerate --yes |
Rewrite .devcontainer/.env (DATABASE_URL) and sync the app .env (optional; setup creates env when absent). Does not delete DB volume data; does not update the password inside an existing volume |
xgic payload schema |
Run template schema generator when present |
xgic payload reset |
Fast targeted reset (project folder + active DB volume) |
Generic lifecycle (xgic up / down / check / env) lives in dev-cli. Use xgic payload env for Payload credentials and product status.
Setup: automatic vs manual
| Mode | Guidance |
|---|---|
| Automatic | Producer/image postStart may call xgic payload setup via a thin shell wrapper (idempotent). |
| Manual / testing | After xgic payload reset --yes, or when validating scaffold config—not a “daily” app ritual. |
Always prefer xgic payload reset --dry-run before destructive reset.
Historical command map (xde → XGIC CLI)
Living brand is XGIC CLI only. Historical map for agents migrating old notes:
Historical (xde) |
XGIC CLI |
|---|---|
xde dev |
xgic payload dev |
xde setup payloadcms |
xgic payload setup |
xde schema |
xgic payload schema |
xde env --regenerate |
xgic payload env --regenerate --yes |
xde reset |
xgic payload reset |
xde up / down / … |
xgic up / down / … (dev-cli) |
Library API
from xgic.cli.payload import (
ensure_payload_project,
generate_fresh_env_content,
make_payload_docker_controller,
get_payload_project_name,
)
Requirements
- Python 3.14+
xgic-cli≥ 0.2.0xgic-dev-cli≥ 0.2.0
Publishing
Follow python-package-release.md.
Publish after xgic-cli and xgic-dev-cli for stack releases. Tags: vX.Y.ZrcN → TestPyPI; vX.Y.Z → PyPI.
Working with AI assistants
High-signal prompts:
- “Run
xgic payload env(no secrets) and recommend whether to start Postgres.” - “Start with
xgic payload devand report the listen URL.” - “Show
xgic payload reset --dry-runbefore any reset.”
Ownership:
| Change | Repository |
|---|---|
xgic payload … behavior |
This repo |
xgic up / down / check |
dev-cli |
| Image / Dockerfile | payload-cms-dev |
| App template pin / docs | payload-cms |
Public-safe gate: BASE-STANDARDS.
Contributing
PRs with human UI review only. Conventional Commits; labels required. See CONTRIBUTING.md and AGENTS.md.
License
Apache License 2.0. See LICENSE and NOTICE.
Copyright form: Copyright 2026 XGIC.
XGIC — Modular CLI for open-source platforms: thin core, domain modules, and AI-operable Payload workflows.
Release files for xgic-payload-cms-cli 0.2.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 | |
|---|---|---|---|
| xgic_payload_cms_cli-0.2.5.tar.gz | 23.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xgic_payload_cms_cli-0.2.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 54.5 kB
Release files / xgic_payload_cms_cli-0.2.5.tar.gz
| Download URL | xgic_payload_cms_cli-0.2.5.tar.gz |
|---|---|
| Size | 23.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3a3d7f62d4144647c6c3e4723249b4d379d3c684bbd3eae003951bf6c4eec967
|
|
BLAKE2b-256 checksum How to use checksums |
ab5ce901e58d04506905dfcab187efbd564cddb5e66d951e3890a0c5f6772dab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.
Transparency logRelease files / xgic_payload_cms_cli-0.2.5-py3-none-any.whl
| Download URL | xgic_payload_cms_cli-0.2.5-py3-none-any.whl |
|---|---|
| Size | 30.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a363b56121c9db1f4c04dc5a3d61f4e2e9accba00c15602069e5dd9643dd2160
|
|
BLAKE2b-256 checksum How to use checksums |
e8161bd0552cef16b724c1bec72aff52847b8c35656707e4e469e825d4c2c2fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 1, 2026.
Transparency log