Metadata-Version: 2.4
Name: reviso-cli
Version: 0.1.0
Summary: Command line client for Reviso: publish drafts for human review, read reviewer comments back, and publish revisions safely.
License: MIT License
        
        Copyright (c) 2026 Reviso
        
        This license applies to the contents of this repository: the Reviso command line
        client. It does not apply to the Reviso product, its service, or its server
        software, none of which are open source and none of which are licensed here.
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Keywords: reviso,review,collaboration,documents,cli,agent
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Text Processing :: Markup
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: test
Requires-Dist: pytest>=8.0; extra == "test"
Dynamic: license-file

# reviso-cli

Command line client for [Reviso](https://reviso.work), 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

Not on PyPI yet, so install from source:

```bash
pip install git+https://github.com/reviso-si/reviso-cli
# or run it without installing
uvx --from git+https://github.com/reviso-si/reviso-cli reviso --help
```

Installs the `reviso` command. Once the package is published this becomes
`pip install reviso-cli`.

## Quick start

```bash
reviso auth login --server https://reviso.work
# set REVISO_AUTOMATION_KEY in the environment first, or pass --key
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
```

## 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:

```bash
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](https://github.com/reviso-si/reviso-agent)
for the agent skill.

## Known limitations

- `publish` prints only the document URL. It does not return the document id, so
  use `reviso documents --json` to continue from the id.
- `update` and `rollback` accept 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](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](VISIBILITY.md) for the boundary this repository holds, and
[CONTRIBUTING.md](CONTRIBUTING.md) before opening a pull request.
