Skip to main content

polis-cli

Thin command-line client for driving Pol.is-family instancesPol.is (Computational Democracy Project) and Voxit (Sitra / COSS Finland fork) — over their HTTP API.

Lets an operator or an AI agent run the full conversation lifecycle machine-to-machine, no browser required:

polis login                      # authenticate against an instance (profile-based)
polis convo create               # create a conversation (topic, description, settings)
polis seed statements.csv        # bulk-seed statements
polis convo open | close         # lifecycle
polis moderate                   # accept/reject queued statements
polis convo status               # live participation + opinion-cluster snapshot
polis export                     # raw votes, comments, cluster CSVs
polis simulate                   # synthetic participants (testing only)

Design rules

  1. Arm's length, always. This CLI is an independent HTTP client. It contains no Pol.is code — it never vendors, links, or modifies the (AGPL-3.0) Pol.is/Voxit codebase; it only talks to unmodified instances over their API. Keep it that way.
  2. Pin per instance. Pol.is has no stable public API contract. Each profile records the instance's version/tag; the client's endpoint map is written against pinned versions (currently: stable branch, mid-2026).
  3. Two auth flavors. Newer instances: OIDC bearer tokens (any issuer; token must carry an email claim). Older instances (and likely Voxit): legacy email/password session login. polis login autodetects.
  4. --json everywhere. Every command supports machine-readable output so an agent can drive the CLI.

Dev sandbox

The upstream Pol.is repo (cloned separately, e.g. ../polisnot part of this repo) ships a docker-compose dev stack. See scripts/prove_loop.py for the end-to-end smoke test this CLI is built against.

Status

  • Phase 0 — runtime-prove the create → seed → vote → close → export loop against the local sandbox
  • Phase 1 — CLI commands (login, convo, seed, moderate, status, export, simulate)
  • Phase 2 — export → deliberAIde synthesis ingestion
  • Phase 3 — Azure Container Apps disposable-instance template (public demo)
  • Phase 4 — MCP twin (same commands as MCP tools)

Install

pip install polis-cli          # command: polis

Part of the civic tech agent-bridges toolkit

polis-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: consul-cli (CONSUL DEMOCRACY), decidim-cli (Decidim), deliberaide-cli (deliberAIde).

Relationship to upstream

This is an independent client. It contains no Pol.is or Voxit source code and speaks only to the documented HTTP API of a running instance. deliberAIde offers it to the Pol.is and Voxit community for adoption; the Apache-2.0 licence is chosen so the code can be vendored into AGPL-3.0 (Pol.is) or EUPL-1.2 (Voxit) repositories without friction, since permissive code can be combined into copyleft ones but not the other way round.

Licence

Apache-2.0 — see LICENSE and NOTICE. Copyright 2026 deliberAIde.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

polis_cli-0.1.0.tar.gz (99.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

polis_cli-0.1.0-py3-none-any.whl (74.6 kB view details)

Uploaded Python 3

File details

Details for the file polis_cli-0.1.0.tar.gz.

File metadata

  • Download URL: polis_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 99.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.9

File hashes

Hashes for polis_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5e58224ad030fe735eef5170dd088d6973ece0063f0f3546338594f8e7621c95
MD5 87d24bef9a039cff4472e05b409471a3
BLAKE2b-256 b6e730ab352370bbac50576857a1b94e5c778ba37c65fc015e3c9187d3caf2c1

See more details on using hashes here.

File details

Details for the file polis_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: polis_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 74.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.9

File hashes

Hashes for polis_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f7919cf23c18242444c42ac49269e92780cc6b33ecae1a194ee4517b215e5b3
MD5 db47d4a664dd973f3941659172fbc614
BLAKE2b-256 d02a3bc2ab37adfc1c45dd34e903a6a13980cd2aa42928d2914973c9774fd582

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page