city-cli
Command-line tool for Milano Agentic City teams.
Install once, then scaffold an agent, run it locally, and publish it through the City Deploy API — without GCP credentials (ADR-010).
Requirements
- Python 3.12+
- For live deploy: Deploy API URL (see below)
Install
pipx install city-cli
# or
uv tool install city-cli
# or
pip install city-cli
This provides the city command. It depends on city-sdk for the Market facade and harness types.
Live city (remote Deploy API)
export CITY_DEPLOY_URL=https://deploy.projectnandaitaly.ai
city login --team t07
city init agent demo
# edit card.yaml role if needed (cup|facility|mmg|b2b)
city card validate
city deploy --promote
city status agent:t07/demo
Per-command override:
city --api-url https://deploy.projectnandaitaly.ai status agent:t07/demo
JSON for scripting:
city --json --api-url "$CITY_DEPLOY_URL" status agent:t07/demo
Local kit (no API URL)
If CITY_DEPLOY_URL / --api-url is unset, city uses an in-process Deploy service (useful for init, dev, and offline checks).
city init agent demo
city dev
city conform --profile fast
Commands (overview)
| Command | Purpose |
|---|---|
city login |
Device-flow team session; stores token and ensures Team Controller Key under .city/ |
city keys init |
Escape hatch: regenerate controller key + register public key |
city init agent <name> |
Scaffold project (--template cup|facility|mmg|b2b); agent type is card.yaml role |
city card validate |
Validate card.yaml against the MHM card schema (base roles only) |
city dev |
One local need through the harness |
city conform |
Conformance suite (--profile full|fast, or --url) |
city deploy |
Upload + pipeline; rejects non-base role before build (--promote, --runtime) |
city promote / rollback / status / retire |
Lifecycle |
city secrets set / city scale / city llm key rotate |
Ops |
city compliance / city verify |
Receipts and offline verify |
Links
- Source: projectnandaitaly/agentic-city
- SDK: city-sdk on PyPI
- Spec: City Deploy CLI §10.2 in the repo docs
License
Proprietary — Project NANDA Italy / Milano Agentic City event kit.
Metadata
Release files for city-cli 0.9.6
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 | |
|---|---|---|---|---|
| city_cli-0.9.6.tar.gz | 52.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| city_cli-0.9.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 125.6 kB
Release files / city_cli-0.9.6.tar.gz
| Download URL | city_cli-0.9.6.tar.gz |
|---|---|
| Size | 52.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3f9c7012026fca1d365286565243f7e72233091c5fcac19eb3c1c80ca6e82958
|
|
BLAKE2b-256 checksum How to use checksums |
e48623ce509224c8eda36a37fa8bbbb70445e661bb9df5453cacc2c82f62d4e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / city_cli-0.9.6-py3-none-any.whl
| Download URL | city_cli-0.9.6-py3-none-any.whl |
|---|---|
| Size | 73.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c2077d2c564249dfa82eedc9b91608189121966eac37533f40256dc6fc1e08f8
|
|
BLAKE2b-256 checksum How to use checksums |
c7f52c120e6b93703acdbbe21295fc9ef7daa41935a2f9ecff29f8f8910e0c4e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for city-cli 0.9.6
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.