Skip to main content

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 --help
  • tool group --help
  • tool command --help
  • tool 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

  • AclipApp for tree-shaped CLI authoring
  • direct handler=... registration and decorator authoring
  • canonical ACLIP Markdown help rendering
  • structured JSON result and error envelopes
  • build_cli() and app.build_cli() for building a distributable binary CLI
  • aclip-build-cli as the canonical packaging CLI entrypoint

First Working CLI

from __future__ import annotations

import sys

from aclip import AclipApp


app = AclipApp(
    name="notes",
    version="0.1.2",
    summary="A minimal notes CLI.",
    description="Create and list notes from a small local CLI.",
)
def create_note(title: str, body: str) -> dict:
    """Create a note in a local JSON store.

    Args:
        title: Title for the note.
        body: Body text for the note.
    """
    return {"note": {"title": title, "body": body}}


note = app.group(
    "note",
    summary="Manage notes",
    description="Create and inspect notes.",
).command(
    "create",
    handler=create_note,
    examples=["notes note create --title hello --body world"],
)


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.

If you prefer decorators, @app.command(...) and @group.command(...) remain fully supported.

Binary Packaging

from pathlib import Path

artifact = app.build_cli(
    entry_script=Path("src/notes_cli/__main__.py"),
    project_root=Path(".").resolve(),
)

print(artifact.binary_path)
print(artifact.manifest_path)

This produces:

  • a runnable CLI binary
  • a sidecar .aclip.json manifest

The lower-level build_cli(...) function is also available if you prefer a module-level API.

The packaged CLI wrapper is:

aclip-build-cli --app-factory notes_cli.app:create_app --entry-script ./src/notes_cli/__main__.py

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rendo_aclip-0.1.2.tar.gz (23.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rendo_aclip-0.1.2-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file rendo_aclip-0.1.2.tar.gz.

File metadata

  • Download URL: rendo_aclip-0.1.2.tar.gz
  • Upload date:
  • Size: 23.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for rendo_aclip-0.1.2.tar.gz
Algorithm Hash digest
SHA256 3faf5529fe84c1511feab3b67be0d81bcd21edcf3a3682c1d08417488bd2ec2d
MD5 8a8823ef8bb900b579f3591497887093
BLAKE2b-256 ecc220d319ce0657c85509fdf0e0679730c73acd1bc4b69cc2f62065879abb20

See more details on using hashes here.

File details

Details for the file rendo_aclip-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: rendo_aclip-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 21.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for rendo_aclip-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f780cb7d0604af39b3414248ac045a306db08a028328c7daa41baa2da41455e6
MD5 c6a9167e45159f58aad177c8b30fad0b
BLAKE2b-256 65c67842d44ad0da0f54699536d519f8dddd8a8724752ac80097620256c36417

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page