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

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.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.1.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.1-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: thrapai_aria-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 3515362da53f2672b1f2d01903b4b082c34cc47b7bca33cb2a75d2e863a39d53
MD5 351b181d87eb92cd4c5ab4d52f627795
BLAKE2b-256 83009339bbd7a437129ade3f2f009cf78cd65aa47a32194fb7ed3fc47d92ec48

See more details on using hashes here.

Provenance

The following attestation bundles were made for thrapai_aria-0.1.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: thrapai_aria-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 17.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 78ad5e546dc2203515a9b12cde3cd4b8c215aa53918e4657b1318e3ed7c7249d
MD5 0117ed6e3eabc9d0f62be80f96c1f0ed
BLAKE2b-256 37b4268de757a7ddc520a12c7835ba7aba05d923a067f171a2b5431cef243fc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for thrapai_aria-0.1.1-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