reviso-cli
Command line client for Reviso, a content collaboration system where agents publish Markdown and HTML drafts and a human team reviews them.
This is the client half of Reviso. It talks to a Reviso server over HTTP and
contains no server code. It has no runtime dependencies: the transport is
urllib, so publishing a Markdown file does not pull a dependency graph into an
agent's environment.
Install
pip install reviso-cli
# or run it without installing
uvx --from reviso-cli reviso --help
Installs the reviso command. No runtime dependencies: installing it will not
pull a dependency graph into an agent's environment.
Quick start
reviso auth login --server https://reviso.work
# opens a browser for consent; use --no-browser to open the URL yourself
reviso doctor --json
reviso publish draft.md --title "Q3 launch plan" --description "Initial draft"
# prints the document URL
reviso documents --json # find the document id
reviso packet doc_abc123 --format json # reviewer comments and version metadata
reviso versions doc_abc123 # read the current version id
reviso update doc_abc123 revised.md \
--description "Address reviewer feedback" \
--base-version-id ver_xyz
Browser login
Version 0.2 supports browser consent with a temporary loopback callback and PKCE.
Keep the CLI running and open the login URL in a browser on the same computer.
reviso auth status shows the selected server and login state without credentials;
reviso auth logout removes that server's saved login. Revoke the connection in
Settings → Integrations to end its server access.
Credentials live in an owner-only file at ~/.config/reviso/credentials.json
(or under XDG_CONFIG_HOME), separately for each server, and refresh automatically.
An existing REVISO_AUTOMATION_KEY or --key still supports headless use.
The credential lock currently supports macOS and Linux.
The rule that matters
Always pass --base-version-id when you revise a document.
Omitting it is not a safe default. Without it the command re-bases onto whatever version is newest and lets your write win, which silently discards a human's concurrent edit. The safe shape is always two steps:
reviso versions <document_id> # take the newest version_id
reviso update <document_id> file --description "..." --base-version-id <ver_...>
If the write is rejected as a conflict, re-read and re-apply your change on top of the human's edit. Do not retry with the flag removed.
Command groups
| Group | Commands |
|---|---|
| Connection | auth, doctor, health, ready, version |
| Documents | publish, open, status, documents, search, packet |
| Revisions | versions, diff, update, rollback |
| Reviewers | invite, guest, comment, reply, resolve |
| Data | export, import, workspaces |
Deliberately not in this client
These are boundaries, not gaps to be filled later:
- No server commands. Starting a Reviso server is not part of the client.
- No share-link creation. A share link carries a bearer token in its URL, and creating one is a browser action where the person handing it out can see who it is going to. Invites by email are here instead.
- No owner or operator surfaces. Metrics, debug replay, and internal replay endpoints are not exposed.
If you need MCP tools rather than a shell, the hosted connector is the better path in most hosts. See reviso-agent for the agent skill.
Known limitations
publishprints only the document URL. It does not return the document id, so usereviso documents --jsonto continue from the id.updateandrollbackaccept an omitted base version and fall back to last-writer-wins. Always pass the flag. A future release should make the safe behaviour the default.
License
MIT. See LICENSE.
The Reviso product itself is not open source. This repository covers the client only; it grants no rights to the service or its server software. See VISIBILITY.md for the boundary this repository holds, and CONTRIBUTING.md before opening a pull request.
Publish a presentation with its explicit kind so the server validates and renders it as slides:
reviso publish presentation.html --workspace-id <workspace-id> --kind html_deck --deck-contract-version html-deck/1
Ordinary HTML keeps --kind document (the default); deck markup without html_deck is rejected by the server.
Metadata
Release files for reviso-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 | |
|---|---|---|---|
| reviso_cli-0.2.0.tar.gz | 37.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| reviso_cli-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 75.5 kB
Release files / reviso_cli-0.2.0.tar.gz
| Download URL | reviso_cli-0.2.0.tar.gz |
|---|---|
| Size | 37.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
beb863174a166f09705aa62b2e2625d8a9edcd3e8e9c2fe507034c42b620c1de
|
|
BLAKE2b-256 checksum How to use checksums |
78330b8c6f17e503e433930920f02993b12dc650d7782dd98df22d867f9f0a3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / reviso_cli-0.2.0-py3-none-any.whl
| Download URL | reviso_cli-0.2.0-py3-none-any.whl |
|---|---|
| Size | 38.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
08c865962fe9ea80f530a642a3c5bf5ae42a0e91c21b7db80c92e888a6a9f486
|
|
BLAKE2b-256 checksum How to use checksums |
5a61dfb7612c5da8cf2509165e7c6d96704796916032a795905cc976ab51033e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency log