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
  • group() 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 CLI
  • aclip-package for 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.json manifest

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.1.tar.gz (22.0 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.1-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

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

Hashes for rendo_aclip-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9c492a30e3c0e7dd0c04c0cd66ea537559a036405fe1988ea9a4a703fd992591
MD5 afcc2ab5aad0ca3e00e812ae08c7fb73
BLAKE2b-256 93023e97d075f90009056dab97af91c777c6007d320d596d98853f35a4851275

See more details on using hashes here.

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

Hashes for rendo_aclip-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6c1cb8c4de0d422ff77afa28b57e155233cd509bd17991456a8cfe6ffb85f95b
MD5 391f85c0741aa9cb1cc044bd483dea0a
BLAKE2b-256 faf783d8cf789d99bd04f9ad8aa835107d7f135bcce7ecc2ee1cfac7570940ec

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