deliberaide-cli
deliberaide-cli is a stateful command-line harness for the DeliberAIde v2 API.
It wraps the running FastAPI server over HTTP and WebSockets, keeps a saved profile,
and exposes every discovered route through generated command groups.
What it supports
- One-shot commands for the current HTTP route surface
- One-shot commands for the current WebSocket route surface
- Interactive shell mode when you run
deliberaide-cliwith no subcommand - Browser-based CLI sign-in through the DeliberAIde web app
- Saved base URLs, cookies, and default IDs per profile
- Machine-readable output with
--json - Binary downloads with
--download
Install
From the repository root:
python -m pip install -e .\agent-harness
If you prefer a project virtual environment, run the same command with that Python executable instead.
Basic usage
deliberaide-cli --help
deliberaide-cli routes list
deliberaide-cli auth login
deliberaide-cli users get-current-user-info
deliberaide-cli context set org_id 11111111-1111-1111-1111-111111111111
deliberaide-cli projects create-project --name "Pilot workspace"
Sign in from the browser
By default, auth login starts a CLI approval session, opens your browser, and waits for approval:
deliberaide-cli --base-url http://127.0.0.1:8000 auth login
If the browser does not open automatically, copy the URL printed in the terminal into any browser on the same machine. After you sign in and approve the request, the CLI saves the returned cookies in your active profile.
You can still fall back to direct credentials when needed:
deliberaide-cli --base-url http://127.0.0.1:8000 auth login --email you@example.com --password secret
JSON request bodies
Use direct field flags for simple object bodies:
deliberaide-cli projects create-project --name "Pilot workspace" --description "CLI-created"
Use raw JSON for richer payloads:
deliberaide-cli projects create-project --body '{"name":"Pilot workspace","target_language":"en"}'
Or load JSON from a file:
deliberaide-cli projects create-project --body-file .\payload.json
Co-Pilot turns
The web app talks to the Co-Pilot over the WebSocket /api/v1/ws/copilot, not over the
blocking POST /copilot/conversations/{id}/messages. copilot chat does the same: it
sends one copilot_message frame carrying the web client's runtime_context (selected
workflow, discussion scope), streams the server's progress frames, keeps the connection
alive with pings, and returns the final message when the turn ends. Turns can take
several minutes.
# new conversation on a discussion; streams frames, prints the final answer
deliberaide-cli copilot chat --discussion-id <uuid> --x-organisation-id <uuid> --text "..."
# continue an existing conversation; scope and workflow are restored from it
deliberaide-cli --json copilot chat --conversation-id <uuid> --text "..." --no-stream
# show the frame that would be sent, without sending it
deliberaide-cli copilot chat --conversation-id <uuid> --text "..." --dry-run
# a turn started with the blocking POST timed out client-side: poll for the answer
deliberaide-cli copilot wait --conversation-id <uuid>
Object-typed body fields such as --runtime-context accept JSON text or @file.
Multipart uploads
deliberaide-cli upload upload-audio --file .\meeting.mp3 --discussion-id 22222222-2222-2222-2222-222222222222 --config '{"language":"en"}'
deliberaide-cli upload upload-bulk --files .\a.wav --files .\b.wav --session-id 33333333-3333-3333-3333-333333333333
Binary responses
deliberaide-cli qr get-session-qr-codes-zip --session-id 44444444-4444-4444-4444-444444444444 --download .\session-qr.zip
Profiles and saved defaults
deliberaide-cli profile show
deliberaide-cli profile set-base-url http://127.0.0.1:8000
deliberaide-cli context set discussion_id 55555555-5555-5555-5555-555555555555
deliberaide-cli context show
deliberaide-cli context undo
Interactive shell
Run with no subcommand to enter the shell:
deliberaide-cli
Inside the shell, enter the same commands you would run normally, for example:
routes list
auth login
users get-current-user-info
exit
Tests
python -m pytest .\agent-harness\deliberaide_cli\tests -v
Metadata
Release files for deliberaide-cli 0.1.7
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 |
|---|---|---|---|---|
| deliberaide_cli-0.1.7.tar.gz | 97.7 kB | Without provenance | Details for deliberaide_cli-0.1.7.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| deliberaide_cli-0.1.7-py3-none-any.whl | Python 3 | none | any | Details for deliberaide_cli-0.1.7-py3-none-any.whl |
Total release size: 202.5 kB
Release files / deliberaide_cli-0.1.7.tar.gz
| Download URL | deliberaide_cli-0.1.7.tar.gz |
|---|---|
| Size | 97.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6dbddd0cdc3b66cc254939d37d627b52af2a19fa33fa7a4522e59b7564d8e00f
|
|
BLAKE2b-256 checksum How to use checksums |
a9627b6172d19c5a27b4eac00f5a3a7f6d91bc0ab5b7d8f0ce20ea1789d0a068
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Release files / deliberaide_cli-0.1.7-py3-none-any.whl
| Download URL | deliberaide_cli-0.1.7-py3-none-any.whl |
|---|---|
| Size | 104.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3211dc9e4391b764df8ecaf4da7b4b5d2bf5d50b8652884d677d8a713b278b69
|
|
BLAKE2b-256 checksum How to use checksums |
3c1309b9f47ba3fd4c90f0375e206eb41da187b4e9915a59e4f0ce8db3a65305
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Security for deliberaide-cli 0.1.7
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.