Skip to main content

ATX - Aiello ToolX

Build standalone, LLM-ready tools from Python functions. Package your tools as portable executables that can be distributed and deployed anywhere.

What is ATX?

ATX (Aiello ToolX) is a framework for creating function tools that Large Language Models can discover and execute. It transforms Python functions into:

  • Standalone executables - Single binary files with no external dependencies
  • LLM-compatible - Self-describing tools with JSON schema definitions
  • Distributable - Share tools across teams and environments
  • Version-controlled - Manage multiple versions of the same tool

Quick Start

Installation

pip install atx-py

Create Your First Tool

Create a file my_tool.py:

from atx import AielloToolx
from typing import Any, Optional

class GreetTool(AielloToolx):
    def name(self) -> str:
        return "greet_user"

    def description(self, context: Optional[str] = None) -> str:
        return "Greets a user by name"

    def parameters(self, context: Optional[str] = None) -> dict[str, Any]:
        return {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "Name of the person to greet"
                }
            },
            "required": ["name"]
        }

    def run(
        self, arguments: Optional[str] = None, context: Optional[str] = None
    ) -> str:
        import json
        args = json.loads(arguments) if arguments else {}
        name = args.get("name", "stranger")
        return f"Hello, {name}!"

Build the Tool

atx build my_tool.py \
  --tool-name greet_user \
  --tool-version 1 \
  --output-dir ./dist

Run the Tool

./dist/greet_user/1/tool --arguments '{"name": "Alice"}'

Output:

Hello, Alice!

Features

Type-Safe Parameters

Define parameters using JSON Schema with full type safety:

def parameters(self, context: Optional[str] = None) -> dict[str, Any]:
    return {
        "type": "object",
        "properties": {
            "location": {"type": "string"},
            "days": {"type": "integer", "enum": [1, 5, 10]}
        },
        "required": ["location"]
    }

Environment Variable Support

Securely handle API keys and sensitive data:

import os

def run(self, arguments: Optional[str] = None, context: Optional[str] = None) -> str:
    api_key = os.getenv("MY_API_KEY")
    if not api_key:
        raise ValueError("MY_API_KEY environment variable is required")
    # Use api_key...

Versioned Deployment

Deploy multiple versions side-by-side:

dist/
├── my_tool/
│   ├── 1/
│   │   └── tool
│   └── 2/
│       └── tool

Documentation

For comprehensive documentation, see:

Examples

The project includes several prebuilt examples:

Build and run examples:

# Build hello world
atx build atx/prebuilds/hello_world.py --tool-name hello_world --tool-version 1

# Run it
./dist/hello_world/1/tool

Development

Prerequisites

  • Python 3.11+
  • Poetry (for dependency management)

Setup

# Clone the repository
git clone <repository-url>
cd atx

# Install dependencies
poetry install

# Set up environment variables
cp .env.example .env

Running Tests

poetry run pytest

License

Private - Aiello Inc.

Contributing

This is a private project. For questions or contributions, please contact the Aiello development team.

Metadata

Release files for atx-py 0.0.2

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

Source distribution (sdist)

Source distribution for atx-py 0.0.2
File Size Uploaded
atx_py-0.0.2.tar.gz 11.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for atx-py 0.0.2
File Interpreter ABI Platform
atx_py-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 23.5 kB

Release files / atx_py-0.0.2.tar.gz

Download URL atx_py-0.0.2.tar.gz
Size 11.0 kB
Tags Source
SHA-256 checksum
How to use checksums
1da75d80285006b847f23f574966e24584287a1b2eacefc4bf28d2bc25413ea9
BLAKE2b-256 checksum
How to use checksums
8df49ed758ea905f59c9235a27f7d25274d93df55d56d6a85b2d67521ea94e40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.11.14 Darwin/25.1.0

Release files / atx_py-0.0.2-py3-none-any.whl

Download URL atx_py-0.0.2-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a92651631c3e6298c3ad0c7ebb259b63f878abe540f439f1d82d6448f02c8684
BLAKE2b-256 checksum
How to use checksums
0f778352f4cbccd704da1eb475dac0eb515a56e5533c93e941c1cc930d96ba56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.11.14 Darwin/25.1.0

Release history Release notifications | RSS feed

This release

0.0.2 This release

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