consul-cli
Full admin/operator CLI for
CONSUL DEMOCRACY and
compatible municipal forks, including Munich's consul-lhm-dev.
The CLI controls the target installation through four real application surfaces:
- authenticated Rails controller routes, including forms, CSRF, redirects, and files;
- ActiveRecord models, callbacks, translations, attachments, and lifecycle methods;
- every native Rake task exposed by the installed application;
- Rails runner for operator jobs and fork-specific code without a dedicated route or task.
This is comprehensive operator control-surface coverage, not a second implementation of CONSUL's business logic. Authorization, validation, required parameters, and workflow preconditions remain enforced by the installed application.
Verified coverage
The same live E2E suite passes against both local targets:
| Target | Rails / Ruby | Operator routes | Controllers | Native tasks |
|---|---|---|---|---|
| Munich fork | 5.2.7.1 / 2.7.6 | 766 / 766 | 150 | 174 / 174 |
| Current upstream | 8.0.5 / 3.4.9 | 572 / 572 | 119 | 150 / 150 |
Machine-readable snapshots are in coverage/. Both report no unmapped route or Rake
task. Live tests authenticate through Devise, mutate a setting through the real admin
controller, verify persistence, establish CONSUL's separate management session, and
authorize all five non-admin operator roles. Temporary settings and roles are restored.
Layout
agent-harness/: installable CLI-Anything Python package and testsconsul-admin-api/: token-authenticated Rails bridge for data and route discoverycoverage/: per-installation operator coverage snapshots
See
agent-harness/cli_anything/consul/README.md
for installation, profiles, and command examples.
Install
pip install consul-democracy-cli # commands: consul-democracy, consul
The package installs both consul-democracy and the shorter consul. If you also use
HashiCorp Consul, whose binary is called consul too, prefer consul-democracy or install
this CLI in its own virtual environment.
Part of the civic tech agent-bridges toolkit
consul-cli is one bridge in the civic tech agent-bridges toolkit: open-source
command-line clients that let any AI agent drive a civic-tech platform through its own API, so
platforms interoperate without waiting for a standards process. Sibling bridges: polis-cli (Pol.is, Voxit), decidim-cli (Decidim), deliberaide-cli (deliberAIde).
Relationship to upstream
This is an independent client. It contains no CONSUL DEMOCRACY source code and speaks only to the documented HTTP surfaces of a running instance. deliberAIde offers it to the CONSUL DEMOCRACY community for adoption; the Apache-2.0 licence is chosen so the code can be vendored into the AGPL-3.0 CONSUL repositories without friction, since permissive code can be combined into copyleft ones but not the other way round.
Licence
Two licences, because this repository holds two kinds of code:
| Part | Licence | Why |
|---|---|---|
agent-harness/ (the CLI) |
Apache-2.0 | Independent client; speaks HTTP to a running installation and contains no CONSUL source code |
consul-admin-api/ (the Rails engine) |
AGPL-3.0-or-later | Loaded into and executed as part of the CONSUL application, which is AGPL-3.0 |
See LICENSE, NOTICE and consul-admin-api/LICENSE.
Copyright 2026 deliberAIde.
Metadata
Release files for consul-democracy-cli 0.2.0
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 | Actions |
|---|---|---|---|---|
| consul_democracy_cli-0.2.0.tar.gz | 28.7 kB | Without provenance | Details for consul_democracy_cli-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| consul_democracy_cli-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for consul_democracy_cli-0.2.0-py3-none-any.whl |
Total release size: 59.2 kB
Release files / consul_democracy_cli-0.2.0.tar.gz
| Download URL | consul_democracy_cli-0.2.0.tar.gz |
|---|---|
| Size | 28.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
201e62270fd2de79545ba371872897c660866b3641b36ce6a92f932d88ef19ce
|
|
BLAKE2b-256 checksum How to use checksums |
d193a89259b87deb76e1703b62a1c78c313f3086fafce6e94a1e0d327ddf462b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Release files / consul_democracy_cli-0.2.0-py3-none-any.whl
| Download URL | consul_democracy_cli-0.2.0-py3-none-any.whl |
|---|---|
| Size | 30.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d539a40c66b6fe7005d4d2420cd298e8cfd6789bcf4c50e6a5b52b2f7d875f86
|
|
BLAKE2b-256 checksum How to use checksums |
cda44260ea7ecfb1a3f87860c04ba2d96577b41bf3149081028e1e99f81e4b03
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Security for consul-democracy-cli 0.2.0
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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.