creed-space-cli
creed is a command-line validator for Creed Space
artifacts: creeds, constitutions, and VCP tokens. It runs locally and
in CI, needs no authentication, and speaks JSON for machine consumption. Think
terraform validate or gh, but for values declarations.
Install
pip install creed-space-cli
# With the optional guardian passthrough (pulls in the creed-guardian runtime):
pip install creed-space-cli[guardian]
Requires Python 3.10+. Inside the Creed Space monorepo it is available as
python -m creed_cli (or poetry run creed) without a separate install; from
a source checkout, pip install ./vcp-sdk-python ./creed_cli.
Command surface
creed --version
creed --help
creed validate <path|dir|string>... [--type auto|creed|constitution|vcp-lite|vcp-token|csm1]
[--format text|json] [--strict] [--quiet]
creed score <creed-file>... [--min-score N] [--format text|json]
creed vcp validate <token-or-file> # VCP token / CSM1 code / VCP-Lite JSON (auto-detected)
creed vcp parse <token-or-csm1> # pretty-print the parsed structure
creed constitution lint <path|dir>... [--format text|json]
creed guardian <argv...> # passthrough to the creed-guardian runtime
validate is the umbrella command. It auto-detects artifact type:
*.creed.md/*.creed→ creed.json/.yamlmatching the constitution shape, or files under aconstitutions/directory → constitutionvcp:-prefixed or CSM1-patterned strings, and.vcpfiles → VCP
Directories recurse over known extensions. An input you name explicitly on
the command line that can't be classified is an error (exit 1) — you meant
to validate it. An unrecognised file merely discovered while recursing a
directory is skipped, so unrelated files (READMEs, configs) don't break a
run. --strict promotes every unknown, discovered or not, to a failure — use it
in CI when you want nothing to slip through unvalidated. Pass --type to
override detection.
Exit codes
Every command uses the same convention (also printed in creed --help):
| Code | Meaning |
|---|---|
0 |
all inputs valid |
1 |
validation findings (at least one artifact failed) |
2 |
usage error / missing input |
3 |
internal error |
creed guardian preserves the exit code of the underlying creed-guardian
process, so guardian's own status codes propagate unchanged.
JSON output contract
--format json emits a stable, versioned document (schema version "1"):
{
"schema_version": "1",
"results": [
{
"path": "data/constitutions/_source/example.yaml",
"artifact_type": "constitution",
"status": "failed",
"findings": [
{"severity": "error", "code": "SCHEMA",
"message": "...", "location": "$.rules[3]"}
]
}
],
"summary": {"checked": 12, "passed": 11, "failed": 1, "skipped": 0}
}
statusis one ofpassed,failed,skipped.severityiserrororwarning;codeis a stable machine token.- Parse the top-level
summaryfor a quick pass/fail count; drive gating logic off the process exit code.
Guardian passthrough
creed guardian <argv...> forwards every argument verbatim to the
creed-guardian runtime:
creed guardian --help # prints creed-guardian's help
creed guardian proxy --port 9090
creed guardian serve
creed guardian mcp
If creed-guardian is not installed, creed guardian prints an install hint
(pip install creed-space-cli[guardian]) and exits 2 rather than crashing.
CI recipes
GitHub Actions
# .github/workflows/creed-validate.yml
name: creed validate
on: [push, pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pip install creed-space-cli
- name: Validate constitutions
run: creed constitution lint data/constitutions/_source --format json
- name: Gate creed quality
run: creed score creeds/*.creed.md --min-score 70
The step fails the job automatically when creed exits non-zero.
pre-commit
# .pre-commit-config.yaml
repos:
- repo: local
hooks:
- id: creed-validate
name: creed validate
entry: creed validate
language: python
additional_dependencies: ["creed-space-cli"]
files: '\.(creed\.md|creed)$|constitutions/.*\.(json|ya?ml)$'
pass_filenames: true
pass_filenames: true hands the staged, matching files to creed validate;
the commit is blocked when validation reports findings.
Related
docs/CREED_CLI.md— architecture and design overview.- Creed Guardian Quick Start — the
local safety runtime behind
creed guardian.
Metadata
Release files for creed-space-cli 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| creed_space_cli-0.1.2.tar.gz | 57.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| creed_space_cli-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 119.0 kB
Release files / creed_space_cli-0.1.2.tar.gz
| Download URL | creed_space_cli-0.1.2.tar.gz |
|---|---|
| Size | 57.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fbd68611c5d1d26fb49d6a4b6db00b15e4660c721479bd8a8565e25b8f84b294
|
|
BLAKE2b-256 checksum How to use checksums |
8226a9a18aca814d628ee1a8a6d7580b7913b7498916f3e07651c1e3c86fbfc0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.14
|
Release files / creed_space_cli-0.1.2-py3-none-any.whl
| Download URL | creed_space_cli-0.1.2-py3-none-any.whl |
|---|---|
| Size | 61.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
00626edc41938d7cba12a7121d655dbdbb09563b7ad2166899038c2477081408
|
|
BLAKE2b-256 checksum How to use checksums |
9dc5a2c701a148274c97b00dbe03d07340eb98ec9889a7b2760df4bd4f6854d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.14
|
Security for creed-space-cli 0.1.2
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.