Metadata-Version: 2.4
Name: autorun-ai
Version: 1.0.0rc1
Summary: Task lifecycle and safety hooks for AI coding harnesses
Author-email: Andrew Hundt <ATHundt@gmail.com>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/ahundt/autorun
Project-URL: Repository, https://github.com/ahundt/autorun.git
Project-URL: Issues, https://github.com/ahundt/autorun/issues
Keywords: claude,autorun,task-lifecycle,cli,safety-hooks
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: bashlex>=0.18
Requires-Dist: psutil
Requires-Dist: filelock<3.29.5,>=3.12.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: packaging>=23.0
Provides-Extra: pdf
Requires-Dist: markitdown>=0.1.0; python_version < "3.14" and extra == "pdf"
Requires-Dist: pdfplumber>=0.10.0; extra == "pdf"
Requires-Dist: pillow>=12.3.0; extra == "pdf"
Requires-Dist: pdfminer.six>=20221105; extra == "pdf"
Requires-Dist: pypdf>=6.0.0; extra == "pdf"
Provides-Extra: pdf-gpu
Requires-Dist: docling>=2.94.0; sys_platform != "darwin" and extra == "pdf-gpu"
Provides-Extra: pdf-llm
Requires-Dist: pymupdf4llm>=0.0.1; extra == "pdf-llm"
Provides-Extra: pdf-progress
Requires-Dist: tqdm>=4.60.0; extra == "pdf-progress"
Provides-Extra: pdf-all
Requires-Dist: autorun-ai[pdf,pdf-gpu,pdf-llm,pdf-progress]; extra == "pdf-all"
Dynamic: license-file

# autorun

`autorun` supplies task-lifecycle checks, command safety guards, skills, and
native integration assets for AI coding harnesses. It is the only Python
distribution here, and it contains the complete `ar` plugin plus the `autorun`
and `autorun-install` entry points. `pdf-extractor` remains a separate harness
plugin, but not a separate package: its extraction code ships inside this
distribution, so install it with `uv tool install 'autorun-ai[pdf]'`.

## Install

Install the published Python tool, then publish native assets for the harnesses
detected on the machine:

```bash
uv tool install autorun-ai
autorun --install
autorun --status
```

Source checkout installation:

```bash
uv tool install 'git+https://github.com/ahundt/autorun.git#subdirectory=plugins/autorun'
```

Claude Code can instead install the plugin through its marketplace flow:

```bash
claude plugin marketplace add https://github.com/ahundt/autorun.git
claude plugin install ar@autorun
```

Use `autorun --install --install-dry-run` to preview filesystem and
registration work. Use `autorun --uninstall` to remove only autorun-owned
assets; session state, task history, and logs are retained intentionally.

## Harness capabilities

| Harness | Safety hook | Task stop hooks | Commands and skills |
|---|---|---|---|
| Claude Code | Native hooks | Yes | Native |
| Codex | Native hooks | Yes | Codex-native plugin and skills |
| Qwen Code | Native hooks | Yes | Native extension |
| Antigravity | Native hooks | Installed native event subset | Native extension |
| OpenCode | In-process tool veto | No stop event; native `todo.updated` state is mirrored into task status | Command files and skills |
| Pi | In-process tool veto | `agent_settled` continuation plus daemon-backed task tools | Native extension and shared skills |
| Prime Agent | In-process tool veto (same Pi extension, `cliType: "prime"`) | `agent_settled` continuation plus daemon-backed task tools | Native extension and shared skills |
| ForgeCode | Advisory guidance only | No | Command files and skills |
| Legacy Gemini CLI | Native hooks | Yes | Native extension |

The CLI accepts the shared command grammar internally and renders the spelling
native to each harness: `ar:` for Codex, `/ar-` for ForgeCode and OpenCode,
`/ar ` for Pi, and `/ar:` for Claude and the Gemini-family harnesses.

## Development

From the repository root:

```bash
uv sync --project plugins/autorun
uv run --project plugins/autorun pytest plugins/autorun/tests
```

Tests must redirect `HOME`, `AUTORUN_HOME`, `AUTORUN_TEST_STATE_DIR`, and
`AUTORUN_TEST_RUNTIME_DIR` before importing `autorun`. Pi integration tests
must also set `PI_CODING_AGENT_DIR` beneath the redirected `HOME`.

The project is licensed under the Apache License 2.0. See `LICENSE` in this
distribution. Full project documentation is available at
<https://github.com/ahundt/autorun>.
