Metadata-Version: 2.4
Name: open-aura
Version: 0.1.2
Summary: Agentic Updates, Reviews, and Accountability — CI-native weekly project briefs powered by Pydantic AI.
Project-URL: Homepage, https://github.com/pradelgorithm/openaura
Project-URL: Documentation, https://github.com/pradelgorithm/openaura#readme
Project-URL: Issues, https://github.com/pradelgorithm/openaura/issues
Project-URL: Source, https://github.com/pradelgorithm/openaura
Author: OpenAURA contributors
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: agents,ai,anthropic,ci,devops,openai,pydantic-ai,reporting
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.11
Requires-Dist: httpx<1,>=0.27
Requires-Dist: jinja2<4,>=3.1
Requires-Dist: pydantic-ai-slim[anthropic,openai]==1.85.0
Requires-Dist: pydantic<3,>=2.0
Requires-Dist: pyyaml<7,>=6.0
Requires-Dist: typer<1,>=0.12
Provides-Extra: dev
Requires-Dist: bandit>=1.7; extra == 'dev'
Requires-Dist: build>=1.2; extra == 'dev'
Requires-Dist: hatchling>=1.24; extra == 'dev'
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pip-audit>=2.7; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: respx>=0.21; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Requires-Dist: types-pyyaml; extra == 'dev'
Description-Content-Type: text/markdown

<p align="center">
  <img src="https://raw.githubusercontent.com/pradelgorithm/openaura/main/brandbook/openaura-logo.svg" alt="OpenAURA logo" width="420">
</p>

[![PyPI](https://img.shields.io/pypi/v/open-aura?logo=pypi&logoColor=white)](https://pypi.org/project/open-aura/)
[![Python](https://img.shields.io/pypi/pyversions/open-aura?logo=python&logoColor=white)](https://pypi.org/project/open-aura/)
[![CI](https://github.com/pradelgorithm/openaura/actions/workflows/ci.yml/badge.svg)](https://github.com/pradelgorithm/openaura/actions/workflows/ci.yml)
[![CodeQL](https://github.com/pradelgorithm/openaura/actions/workflows/codeql.yml/badge.svg)](https://github.com/pradelgorithm/openaura/actions/workflows/codeql.yml)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/pradelgorithm/openaura/badge)](https://securityscorecards.dev/viewer/?uri=github.com/pradelgorithm/openaura)
[![Coverage](https://codecov.io/gh/pradelgorithm/openaura/graph/badge.svg)](https://codecov.io/gh/pradelgorithm/openaura)
[![License](https://img.shields.io/badge/License-Apache_2.0-3b82f6.svg)](https://github.com/pradelgorithm/openaura/blob/main/LICENSE)

OpenAURA is a CI-native Python CLI that generates recurring project briefs from
delivery signals and writes markdown reports into `aura-docs/`.

This page is the technical package reference. The human/product README lives in the
[GitHub repository](https://github.com/pradelgorithm/openaura#readme).

## Requirements

- Python 3.11 or newer
- A model provider key for Anthropic or OpenAI
- At least one signal connector, currently GitHub or Azure DevOps

The project CI verifies Python 3.11, 3.12, 3.13, and 3.14.

## Installation

```bash
python -m pip install open-aura
```

The package installs the `aura` console command.

## Configuration

Create `aura.config.yml` at the root of the repository where briefs should be written:

```yaml
project: "my-project"
trigger: weekly
schedule: "friday-5pm"
model: "anthropic:claude-sonnet-4-6"

signals:
  github:
    repo: "owner/repository"
    token_env: GITHUB_TOKEN
    default_branch: main

kpis:
  - throughput
  - cycle_time
  - blockers
  - bug_count

custom_kpis: []

output:
  folder: "aura-docs"
```

Supported `trigger` values are:

- `weekly`
- `on-merge`
- `both`

The `schedule` field is documentation for humans. The actual cron schedule belongs
in your CI workflow.

## Environment Variables

OpenAURA reads secret values from environment variables. The config file stores only
the variable names.

| Purpose | Default variable |
|---|---|
| Anthropic models | `ANTHROPIC_API_KEY` |
| OpenAI models | `OPENAI_API_KEY` |
| GitHub connector | `GITHUB_TOKEN` |
| Azure DevOps org | `AZURE_DEVOPS_ORG` |
| Azure DevOps project | `AZURE_DEVOPS_PROJECT` |
| Azure DevOps token | `AZURE_DEVOPS_TOKEN` |

Model strings beginning with `anthropic:` require `ANTHROPIC_API_KEY`. Model strings
beginning with `openai:` require `OPENAI_API_KEY`.

## CLI

```bash
aura validate
aura run
aura run --dry-run
aura run --trigger on-merge
aura manifesto
```

`aura validate` checks the config and required environment variables without making
API or LLM calls.

`aura run` gathers signals, scores the project state, summarizes the brief, and writes
markdown to the configured output folder.

`aura run --dry-run` prints the structured brief JSON instead of writing a file.

## GitHub Actions

Install OpenAURA in a workflow with pip:

```yaml
- uses: actions/setup-python@v6
  with:
    python-version: "3.13"

- run: python -m pip install open-aura
- run: aura validate
- run: aura run
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
    OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
```

The repository includes starter workflow templates for weekly, on-merge, and combined
trigger modes.

## Output

By default, briefs are written to:

```text
aura-docs/
```

Each brief is markdown, intended to be committed back to the same repository by CI.

## Links

- Source: https://github.com/pradelgorithm/openaura
- Issues: https://github.com/pradelgorithm/openaura/issues
- Security policy: https://github.com/pradelgorithm/openaura/blob/main/SECURITY.md
