Metadata-Version: 2.5
Name: android-automated-screengrabs
Version: 0.15.0
Summary: Deterministic Android capture-to-publish pipelines
Author: Pedro Veloso
Maintainer-email: Pedro Veloso <pedro.n.veloso@gmail.com>
License-Expression: Apache-2.0
License-File: LICENSE
License-File: THIRD_PARTY_NOTICES.md
Requires-Python: >=3.12
Requires-Dist: httpx<1,>=0.28
Requires-Dist: pillow<13,>=11
Requires-Dist: platformdirs<5,>=4.3
Requires-Dist: pydantic<3,>=2.10
Requires-Dist: pyyaml<7,>=6.0
Requires-Dist: rich<16,>=13.9
Requires-Dist: typer<1,>=0.15
Description-Content-Type: text/markdown

# AASG

AASG is a deterministic, code-first Android capture-to-publish tool. It runs capture
journeys that already live in Android instrumentation tests, collects AndroidX Test
Storage output, and turns it into repeatable screenshots, cut-outs, and framed video.

AASG deliberately does not replace Compose testing, UI Automator, Gradle, ADB, or
FFmpeg. The app owns navigation and state; AASG owns the capture matrix, collection,
metadata, rendering recipes, and stable output.

## Documentation

The full guide covers first capture, the Android test contract, rendering, device-frame
licensing, the complete `aasg.yaml` schema, semantic metadata, and every CLI command:

- [AASG documentation](https://pedronveloso.github.io/AASG/)
- [Agent-readable Markdown index](https://pedronveloso.github.io/AASG/llms.txt)

The site is initially served from GitHub Pages. It will move to
`https://aasg.pedronveloso.com/` once the custom-domain DNS record is configured.

## Requirements

- Python 3.12 or newer
- An Android project using AGP 8+ and AndroidX Test Storage
- ADB from Android SDK Platform Tools
- A project Gradle wrapper
- FFmpeg and FFprobe

## Install and run

```shell
uv tool install android-automated-screengrabs
# or: pipx install android-automated-screengrabs
aasg init
aasg config validate
aasg doctor
aasg capture
```

When `--device` is omitted, capture uses the only online ADB-authorized device or emulator.
If several are online, an interactive run lists them for selection; a non-interactive run
requires `--device` in that case. A previous capture selection never pins the device.

For source development, run `uv sync` and then `uv run aasg --help`.

Configuration schema 9 infers AndroidX Test Storage source paths from capture IDs, locale,
theme, and artifact type. Instrumentation tests can use `aasg-testkit` path builders to
write those files. Publication directories still use `publish_dir`; AASG generates
published filenames from capture IDs and selected variants. See the configuration
reference for migration from schema 8.

Released versions are published to
[PyPI](https://pypi.org/project/android-automated-screengrabs/). AASG still requires the Android
SDK Platform Tools, a Gradle wrapper, FFmpeg, and FFprobe; run `aasg doctor` after installation to
check the local prerequisites and encoders needed by configured renditions.

## Development

```shell
uv run ruff format --check .
uv run ruff check .
uv run mypy
uv run pytest
uv build
npm ci
npm run commitlint -- --from HEAD~1 --to HEAD
```

Build the documentation with `npm ci --prefix docs` and `npm run build --prefix docs`.

## License

AASG source code and documentation are licensed under the Apache License 2.0.
Third-party device-frame media retains its own license and provenance. See
[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
