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:
- Documentation Home - Complete documentation index
- Getting Started Guide - Detailed tutorial
- Core Concepts - Understanding the framework
- API Reference - Complete API documentation
Examples
The project includes several prebuilt examples:
- hello_world - Minimal example
- get_maps_geocode - Google Maps geocoding
- get_weather_forecast_daily - Weather forecasts
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)
| File | Size | Uploaded | |
|---|---|---|---|
| atx_py-0.0.2.tar.gz | 11.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|