Skip to main content

APS CLI

Command-line tool for the Agent Packaging Standard (APS)

Tests Python License

The APS CLI enables developers to build, validate, sign, publish, and run portable AI agents following the Agent Packaging Standard.


🚀 Installation

From PyPI (Recommended)

pip install apstool

For optional features (signing, RAG examples):

pip install apstool[dev]

From Source (For Development)

git clone https://github.com/vedahegde60/agent-packaging-standard.git
cd agent-packaging-standard/cli
pip install -e .

📖 Quick Start

Initialize a New Agent

Create a new agent from the APS template:

aps init my-agent
cd my-agent

This scaffolds a complete agent structure with:

  • aps/agent.yaml — Manifest with metadata, runtime, dependencies
  • src/<agent_name>/main.py — Example Python entrypoint
  • src/<agent_name>/__init__.py — Python package initialization
  • AGENT_CARD.md — Agent documentation

Validate Your Agent

Check that your manifest is correctly structured:

aps validate .

Run Your Agent

Execute the agent locally with JSON input/output:

echo '{"text": "hello world"}' | aps run .

Or use the --input flag:

aps run . --input '{"text": "hello world"}'

Build a Package

Create a distributable .aps.tar.gz package:

aps build .

This produces dist/dev.my-agent.aps.tar.gz containing the manifest, code, and metadata.

Sign Your Package

Generate a keypair (first time only):

aps keygen

Sign the package for verification and provenance:

aps sign dist/dev.my-agent.aps.tar.gz --key default

Verify a Package

Verify the signature and integrity:

aps verify dist/dev.my-agent.aps.tar.gz --pubkey ~/.aps/keys.pub/default.pub

Publish to a Registry

Push your built package to a registry:

aps publish dist/dev.my-agent.aps.tar.gz --registry http://localhost:8080

Pull from a Registry

Download an agent from a registry:

aps pull dev.echo --registry http://localhost:8080

🧰 Command Reference

Command Description
aps init <path> Scaffold a new agent from template
aps validate <path> Validate agent manifest structure
aps run <path> Execute agent locally (stdin/stdout JSON)
aps build <path> Package agent into .aps.tar.gz
aps keygen Generate Ed25519 keypair for signing
aps sign <package> Sign package with private key
aps verify <package> Verify package signature
aps publish <package> Push built package to registry
aps pull <name> Pull agent from registry
aps inspect <package> Show package metadata
aps logs <agent> Show saved logs for an agent
aps registry serve Start a local APS registry

For full details, see the CLI Reference.


🧪 Running Tests

cd cli
pytest -q

All tests run in isolated environments to avoid contaminating user data.


📚 Learn More


🛠️ Development

Setup

cd cli
pip install -e .

Run Tests

pytest -q

Build Distribution

python -m build

📄 License

Apache License 2.0 — See LICENSE for details.


🤝 Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.


Note: The aps run command is a minimal reference implementation for local testing.
For production workloads, use a full-featured runtime that supports APS agents.

Metadata

Release files for apstool 0.1.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for apstool 0.1.11
File Size Uploaded
apstool-0.1.11.tar.gz 23.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for apstool 0.1.11
File Interpreter ABI Platform
apstool-0.1.11-py3-none-any.whl Python 3 none any Details

Total release size: 41.6 kB

Release files / apstool-0.1.11.tar.gz

Download URL apstool-0.1.11.tar.gz
Size 23.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ee25cca9b51216258cf7bbb70d911f5af203d748aadb9cc71137deced568ba64
BLAKE2b-256 checksum
How to use checksums
0242d170a88175a5e22d57063f29efa8836de39941148729f71db660231d5daf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / apstool-0.1.11-py3-none-any.whl

Download URL apstool-0.1.11-py3-none-any.whl
Size 18.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7c6b3205b44c81aec9209d33f401ac4269ea8f86d2007e273cc53f11726196c5
BLAKE2b-256 checksum
How to use checksums
ef0080b271e8f69c7cfa78c15c40172c8bc34eed048fd05a32d5acc50036f46e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release history Release notifications | RSS feed

This release

0.1.11 This release

2 release files

0.1.9

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page