Skip to main content

A lightweight CLI for explicit, reproducible AI coding workflows.

Project description

Aethr

A tiny CLI for running explicit AI coding workflows from YAML.

Core Idea

Coding with LLMs is not one-shot generation.

Real development is:

plan -> implement -> review -> iterate

Aethr makes those workflows programmable. A run is just:

task + workflow + explicit context + model routing

Aethr is stateless. The only project file it creates is .aethr.yaml.

Install

pip install aethr

For local development:

pip install -e ".[dev]"

Quickstart

aethr init review-existing-diff
aethr run "review my current changes before I commit"

Aethr copies a YAML preset into .aethr.yaml. Edit it like any other project file.

How Aethr Works

  • Task: the instruction passed on the command line.
  • Workflow: the YAML file that defines ordered steps.
  • Steps: sequential units of work. Aethr runs them in order.
  • Roles: named responsibilities such as planner, reviewer, or writer.
  • Context: explicit repo input declared per step.
  • Model routing: each role can point at a different LiteLLM model.

Each step receives the task, prior step outputs, and its declared context. The step result stays in memory and is printed to the terminal.

Example Workflow Config

workflow: review-existing-diff

roles:
  reviewer: Review the provided task context as if it were an existing diff.

models:
  reviewer: openai:gpt-5.5

steps:
  - id: review
    role: reviewer
    context:
      - git_diff

Built-In Workflows

  • plan-implement-review: plan a task, propose an implementation, review it.
  • review-existing-diff: review the current working tree diff.
  • debug-failing-test: diagnose a failing test, propose a fix, review it.
  • add-tests: plan, draft, and review focused test coverage.
  • docs-sync: update docs from the current diff and README context.
  • custom: a minimal one-step workflow to edit freely.

List presets:

aethr init --list

Initialize another preset:

aethr init docs-sync --force

Examples

The examples/ directory contains small workflow files you can copy from:

  • examples/review-existing-diff.yaml
  • examples/add-tests.yaml
  • examples/docs-sync.yaml

Explicit Context

Aethr uses explicit context instead of automatic retrieval. That keeps runs easy to understand: the YAML shows exactly what each step can see.

Supported context sources:

  • git_diff: runs git diff --no-ext-diff.
  • file:<path>: reads one UTF-8 file relative to the project root.
  • glob:<pattern>: reads matching UTF-8 files relative to the project root, with a small content cap.

Example:

steps:
  - id: review-docs
    role: reviewer
    context:
      - git_diff
      - file:README.md
      - glob:docs/**/*.md

Missing files, empty diffs, non-git directories, and unreadable files appear as clear placeholder notes in the prompt.

Prompt Previewing

Use --show-prompt to see exactly what Aethr would send to each model:

aethr run "review my current changes before I commit" --show-prompt

Aethr does not call models in prompt preview mode. For later steps, it uses a clear placeholder where real previous step output would appear.

Mock Mode

Aethr works without API keys by returning deterministic mock responses.

Use the models configured in .aethr.yaml:

AETHR_LIVE=1 aethr run "review my current changes"

Override every configured model with one LiteLLM model:

AETHR_MODEL=openai:gpt-5.5 aethr run "review my current changes"

Philosophy

Aethr should feel like:

  • git
  • pytest
  • rg
  • cargo

It should not feel like:

  • an agent framework
  • an autonomous coding platform
  • an AI operating system

Aethr intentionally avoids persistence, replay systems, caches, plugins, DAGs, async runtimes, vector search, automatic retrieval, memory systems, and agent abstractions.

Architecture

aethr/
  cli.py
  config.py
  context.py
  executor.py
  llm.py
  prompts.py
  workflow.py

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

aethr-0.1.0.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

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

aethr-0.1.0-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aethr-0.1.0.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for aethr-0.1.0.tar.gz
Algorithm Hash digest
SHA256 40293a84c461c62ceb969d74f4eb797a0a526b3d5cb2f9b9f022fa169d961d17
MD5 f1d0539bdd9466e613f73529a04540d8
BLAKE2b-256 934c512f2ac20b64d9c3d83f4918f9f838f571d51e954db35297bb020fc10cbe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aethr-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for aethr-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d87388ff896614e49f6dc4e8776f7eaf0ef05d3238dba87b14459c72900a4a70
MD5 05e041d2934a90a81bf2506132b2dd93
BLAKE2b-256 6709162266c1c744910518fac020b38b2e7d780c2643c14174829e80063c107c

See more details on using hashes here.

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