knolli
Installer for the cmdop CLI — an AI agent you can run without wiring up a stack first.
pip install knolli
knolli
That's it. knolli detects your platform, downloads the cmdop binary,
verifies it against the published checksums, installs it, and hands over.
The usual first day with a self-hosted agent is not spent on the agent. It is spent on a compose file: a gateway, a backend, Postgres, Redis, a queue worker, each with its own upgrade path.
cmdop is one executable that is the agent, the relay, the local server and the web console at once. This package puts it on your machine.
How does CMDOP compare? CMDOP Skills vs OpenClaw: two approaches to AI agent skills →
One binary instead of a compose file
There is no database server to provision, no broker to keep alive, and no service mesh to reason about — so there is also no second machine whose only job is to run the parts.
The thing you upgrade is a file. The thing you back up is a directory.
What is cmdop
One executable that is the agent, the relay, the local server and the web console at once. There is no gateway, backend, database server or broker to stand up — you add one binary to a machine you already own.
- run an AI agent on your own machine, with your own tools
- reach it from anywhere: terminal, files, remote execution
- connect machines into a fleet
- works with Claude Code and other agent engines under the hood
Full documentation: docs.cmdop.com
Usage
knolli # install cmdop (if needed), then run it
knolli --install-only # install, don't hand over
knolli --prefix ~/bin # choose the install directory
knolli --force # reinstall even if already present
knolli --quiet # print only the installed path
knolli -- --help # everything after `--` goes to cmdop
Default install directory is ~/.local/bin (%LOCALAPPDATA%\cmdop\bin on
Windows). No sudo, no system directories.
What it does, precisely
- Detects your OS and architecture.
- Fetches
SHA256SUMSfrominstall.cmdop.com. - Downloads the matching binary to a temporary file.
- Verifies the SHA-256 against the published checksum. On mismatch it aborts and installs nothing.
- Moves the verified binary into the install directory and marks it executable.
- Runs it.
Supported: macOS (Apple Silicon, Intel), Linux (x64, arm64), Windows (x64).
What it does not do
- No side effects at install time.
pip install knollionly unpacks files. Nothing is downloaded or executed until you runknolli. - No network access on import.
import knollitouches nothing. - No telemetry. The package sends no analytics, ever.
- No dependencies. Standard library only, so there is nothing to conflict with what you already have installed.
Python API
The installer is importable if you would rather script it:
import knolli
target = knolli.detect()
print(target.label, target.asset)
result = knolli.install()
print(result.path, result.sha256)
knolli.install() raises knolli.InstallError with a user-facing message
on any failure, and knolli.UnsupportedPlatform when there is no published
binary for the current machine.
Links
- Website — https://cmdop.com
- Documentation — https://docs.cmdop.com
- Downloads — https://cmdop.com/download
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file knolli-2.0.1.tar.gz.
File metadata
- Download URL: knolli-2.0.1.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
275d8141c702d8eac69635f102fd95425e9a02efcda413c5d5128c4c26bb24d3
|
|
| MD5 |
9d2ef5ed06e3abc6c389138030a029a1
|
|
| BLAKE2b-256 |
e0e6f76bacd428160a8247ad8013f54b285e35b142bb8de894370060d4af3944
|
File details
Details for the file knolli-2.0.1-py3-none-any.whl.
File metadata
- Download URL: knolli-2.0.1-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e8871b8fdc5f2f941b58999dc8162528b821f88242185b5ac023e32eabb1440
|
|
| MD5 |
f7a0f50a9fbbbc5e200fa5308a4cd75f
|
|
| BLAKE2b-256 |
6c27c53b990e144af84a24cc9fb0e19d3e9ed24c01e3edf1c8ec04cb409a2c64
|
Release history Release notifications | RSS feed
2026.3.20 yanked
Reason this release was yanked:
Superseded by 2.0.0 — this release fails on import.
2026.3.12 yanked
Reason this release was yanked:
Superseded by 2.0.0 — this release fails on import.
2026.3.11 yanked
Reason this release was yanked:
Superseded by 2.0.0 — this release fails on import.
2026.3.10 yanked
Reason this release was yanked:
Superseded by 2.0.0 — this release fails on import.
2026.2.28 yanked
Reason this release was yanked:
Superseded by 2.0.0 — this release fails on import.