Python reference SDK for the Agent Command Line Interface Protocol
Project description
rendo-aclip
rendo-aclip is the canonical Python SDK for ACLIP, the Agent Command Line Interface Protocol.
ACLIP keeps normal CLI invocation natural:
tool --helptool group --helptool command --helptool command --flag value
At the same time, it standardizes the parts agents actually depend on:
- progressive Markdown help
- structured result and error envelopes
- sidecar manifests for registry and distribution flows
- packaging helpers for shipping runnable CLI artifacts
Which package name should I install?
Canonical package:
pip install rendo-aclip
Short-name official alias:
pip install aclip
Both install paths are first-party and synchronized. The import path is the same either way:
from aclip import AclipApp
If you want the official dependency name for long-term project manifests, prefer rendo-aclip.
If you want the shortest install command, aclip is the official alias.
What you get
AclipAppfor tree-shaped CLI authoringgroup()and@group.command()for a natural Python authoring flow- canonical ACLIP Markdown help rendering
- structured JSON result and error envelopes
package_binary()for building a distributable binary CLIaclip-packagefor packaging from the command line
First Working CLI
from __future__ import annotations
import sys
from aclip import AclipApp
app = AclipApp(
name="notes",
version="0.1.1",
summary="A minimal notes CLI.",
description="Create and list notes from a small local CLI.",
)
note = app.group(
"note",
summary="Manage notes",
description="Create and inspect notes.",
)
@note.command(
"create",
summary="Create a note",
examples=["notes note create --title hello --body world"],
)
def create(title: str, body: str) -> dict:
"""Create a note.
Args:
title: Title for the note.
body: Body text for the note.
"""
return {"note": {"title": title, "body": body}}
if __name__ == "__main__":
raise SystemExit(app.run(sys.argv[1:]))
Run it like a normal CLI:
notes --help
notes note --help
notes note create --help
notes note create --title hello --body world
The final command returns a structured result envelope instead of ad hoc text.
Binary Packaging
from pathlib import Path
from aclip import package_binary
artifact = package_binary(
app=app,
binary_name="notes",
entry_script=Path("src/notes_cli/__main__.py"),
project_root=Path(".").resolve(),
source_root=Path("src").resolve(),
)
print(artifact.binary_path)
print(artifact.manifest_path)
This produces:
- a runnable CLI binary
- a sidecar
.aclip.jsonmanifest
When to use ACLIP
Use rendo-aclip when you want to build a CLI that should feel natural to normal command-line users while also giving agents:
- predictable help disclosure
- predictable machine-readable command results
- a stable packaging and distribution path
If your goal is only a human-first CLI with free-form text output, ACLIP is probably more structure than you need.
Repository
Source repository:
Project details
Release history Release notifications | RSS feed
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 rendo_aclip-0.1.1.tar.gz.
File metadata
- Download URL: rendo_aclip-0.1.1.tar.gz
- Upload date:
- Size: 22.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c492a30e3c0e7dd0c04c0cd66ea537559a036405fe1988ea9a4a703fd992591
|
|
| MD5 |
afcc2ab5aad0ca3e00e812ae08c7fb73
|
|
| BLAKE2b-256 |
93023e97d075f90009056dab97af91c777c6007d320d596d98853f35a4851275
|
File details
Details for the file rendo_aclip-0.1.1-py3-none-any.whl.
File metadata
- Download URL: rendo_aclip-0.1.1-py3-none-any.whl
- Upload date:
- Size: 19.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c1cb8c4de0d422ff77afa28b57e155233cd509bd17991456a8cfe6ffb85f95b
|
|
| MD5 |
391f85c0741aa9cb1cc044bd483dea0a
|
|
| BLAKE2b-256 |
faf783d8cf789d99bd04f9ad8aa835107d7f135bcce7ecc2ee1cfac7570940ec
|