Skip to main content

Automation Runtime for Intelligent Actions

Project description

ARIA

Automation Runtime for Intelligent Actions.

ARIA logo

Tests Coverage PyPI License: MIT

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>/.

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.generate
  • file.read
  • file.write
  • utils.json.parse
  • utils.text.chunk
  • docling.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

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

thrapai_aria-0.1.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

thrapai_aria-0.1.0-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file thrapai_aria-0.1.0.tar.gz.

File metadata

  • Download URL: thrapai_aria-0.1.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for thrapai_aria-0.1.0.tar.gz
Algorithm Hash digest
SHA256 115efdfbe43ccd28599f49a8577099bbefdf2ab203347003af321bb27627654f
MD5 59109546dcd0a95bc49a9f1bf40961bf
BLAKE2b-256 bf179cf6562f4034d64938999146b70183af8fb7d005827eb958c6b4c76f2832

See more details on using hashes here.

Provenance

The following attestation bundles were made for thrapai_aria-0.1.0.tar.gz:

Publisher: publish.yml on thrapai/aria

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thrapai_aria-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: thrapai_aria-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for thrapai_aria-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fd9710db82194b46eaf595267a058cb266bf7842de2574f9057c6184b8aeceeb
MD5 283550d26d39b98945306a11f4b0ac99
BLAKE2b-256 e9c450f36f7e22c8af13cd717e1d84eb7692b6013d329ec73643f42bbbd71742

See more details on using hashes here.

Provenance

The following attestation bundles were made for thrapai_aria-0.1.0-py3-none-any.whl:

Publisher: publish.yml on thrapai/aria

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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