ARIA
Automation Runtime for Intelligent Actions.
Build AI-powered workflows with ARIA.
Your workflows are source-controlled, CI-friendly, and live in YAML files. Define them, run them locally, and inspect every result from saved run artifacts.
Why ARIA?
- Source-controlled workflows: prompts, steps, inputs, and providers live in YAML.
- Full step transparency: see every intermediate result, not just the final answer.
- Extensible runtime: add your own extension when a built-in step is not enough.
- Provider flexibility: OpenAI and local Ollama today, with more providers to come.
- Small runtime: no hosted service, web UI, marketplace, or agent framework.
Install
With the install script:
curl -fsSL https://raw.githubusercontent.com/thrapai/aria/master/install.sh | bash
With optional docling support:
curl -fsSL https://raw.githubusercontent.com/thrapai/aria/master/install.sh | ARIA_PACKAGE='thrapai-aria[docling]' bash
With pipx:
pipx install thrapai-aria
For docling support:
pipx install "thrapai-aria[docling]"
Quickstart
Create a workflow:
aria init
Run it:
ollama pull gemma3:4b
aria run workflow.yml --input path=notes.txt
ARIA prints final outputs as JSON and writes run artifacts under .aria/runs/<timestamp>/.
Check the installed version:
aria version
See upgrade commands:
aria update --method pipx
Workflow
version: "1"
name: summarize_file
providers:
ollama:
type: ollama
base_url: http://localhost:11434
inputs:
path:
type: file
required: true
steps:
- id: read
uses: file.read
with:
path: "{{ inputs.path }}"
- id: summarize
uses: ai.generate
with:
model: ollama:gemma3:4b
prompt: |
Summarize this file in five concise bullet points:
{{ steps.read.output.content }}
- id: save
uses: file.write
with:
path: summary.txt
content: "{{ steps.summarize.output.text }}"
outputs:
summary: "{{ steps.summarize.output.text }}"
summary_file: "{{ steps.save.output.path }}"
Templates can read workflow inputs and previous step outputs:
{{ inputs.path }}
{{ steps.read.output.content }}
Built-In Extensions
ai.generatefile.readfile.writeutils.json.parseutils.text.chunkdocling.convert- optional
Extension examples live in docs/extensions/.
Providers
ARIA currently supports openai and ollama provider types. A provider entry is an
alias that can be used in ai.generate model strings as provider:model.
OpenAI
export OPENAI_API_KEY="..."
providers:
openai:
type: openai
api_key_env: OPENAI_API_KEY
# Optional:
# api_key_file: .openai-key
# base_url: https://api.openai.com/v1
If no providers.openai entry is configured, openai:<model> still works and
reads OPENAI_API_KEY from the environment.
Ollama
ollama pull gemma3:4b
providers:
ollama:
type: ollama
base_url: http://localhost:11434
If no providers.ollama entry is configured, ollama:<model> still works and
uses http://localhost:11434.
Provider names may be custom aliases when the entry declares a supported type:
providers:
local:
type: ollama
base_url: http://localhost:11434
steps:
- id: summarize
uses: ai.generate
with:
model: local:gemma3:4b
prompt: "Summarize: {{ inputs.text }}"
Use providers as provider:model, for example openai:gpt-4.1-mini,
ollama:gemma3:4b, or local:gemma3:4b.
Development
uv sync --extra dev
uv run --extra dev python -m pytest
uv run --extra dev ruff check
uv run --extra dev ruff format --check
See CONTRIBUTING.md for contribution and release notes.
License
MIT
Metadata
Release files for thrapai-aria 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| thrapai_aria-0.1.1.tar.gz | 1.1 MB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| thrapai_aria-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / thrapai_aria-0.1.1.tar.gz
| Download URL | thrapai_aria-0.1.1.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3515362da53f2672b1f2d01903b4b082c34cc47b7bca33cb2a75d2e863a39d53
|
|
BLAKE2b-256 checksum How to use checksums |
83009339bbd7a437129ade3f2f009cf78cd65aa47a32194fb7ed3fc47d92ec48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 12, 2026.
Transparency logRelease files / thrapai_aria-0.1.1-py3-none-any.whl
| Download URL | thrapai_aria-0.1.1-py3-none-any.whl |
|---|---|
| Size | 17.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
78ad5e546dc2203515a9b12cde3cd4b8c215aa53918e4657b1318e3ed7c7249d
|
|
BLAKE2b-256 checksum How to use checksums |
37b4268de757a7ddc520a12c7835ba7aba05d923a067f171a2b5431cef243fc3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 12, 2026.
Transparency logSecurity for thrapai-aria 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for thrapai_aria-0.1.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 12, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.