untaped-ansible
Install it as part of untaped: uv tool install 'untaped[ansible]' or pip install 'untaped[ansible]'.
To add it to an existing install, see Getting started.
untaped ansible answers questions about how Ansible roles and projects
depend on each other through their requirements files: what a role depends
on, what depends on it, which projects reach a repository, and the whole
graph. It is for anyone about to change a shared role.
Downstream works from live GitHub reads. Upstream needs a source: a saved
set of orgs, teams or repos whose dependency files untaped scans and caches.
Set up
untaped ansible reads GitHub through the github settings, so set a GitHub
token first. Then save a source, refresh it once, and make it the default so
you can leave out --source:
untaped auth login github
untaped ansible source set platform --org acme --team acme/platform
untaped ansible source refresh platform
untaped config set ansible.default_source platform
Private repos also need Git access over HTTPS with that token, or over SSH
with github.git_protocol: ssh. The repos live in the git plugin's repo store
(git.store_dir). Scanned files, the index location and refresh tuning are in the
configuration reference.
Show what a role depends on
untaped ansible deps acme/base-role
untaped ansible deps acme/base-role --ref v2.1.0 --depth 2
untaped ansible deps ./roles/web --target-repo acme/web --format json
One row per repo the role reaches, with the file that declares it and the
shortest path. With a source selected, deps reads its cache; --live reads
GitHub instead.
Find what depends on a role
untaped ansible impact acme/base-role
untaped ansible impact acme/base-role --org acme
untaped ansible impact acme/base-role --cached
impact lists the repos in the source that depend on the role, at any ref,
from cached data, and marks where the walk stopped. A source older than
ansible.caches.index.max_age_seconds (one day) is refreshed first;
--cached reads only what is cached. Inline selectors such as
--org answer a one-off question without saving a source.
Find which dependents use a variable
untaped ansible impact acme/base-role --uses base_port
One row per place a dependent defines, sets or reads base_port, with the
file, line and YAML key path, read at the commit the source indexed. A
refresh analyses each repo's YAML files and templates once per file
version, beside its dependency files.
Find which roots contain a repository
untaped ansible find acme/base-role --root acme/site@main --root acme/app
untaped awx job-templates list --organization Default --with-scm --format pipe \
| untaped ansible find acme/base-role --stdin --format pipe
One row per ref of the repository that each root reaches, with the shortest path. Rows carry the input record's id and name, so the results join back to AWX job templates or any other piped records.
Draw the graph
untaped ansible graph acme/base-role
untaped ansible graph acme/base-role --direction down --format mermaid --out deps.mmd
untaped ansible graph acme/base-role --direction up --depth 2 --format json
A tree of what depends on the target and what it depends on, a Mermaid diagram, or a JSON graph. Without a source it shows only the downstream half.
Manage sources
untaped ansible source patch platform --add-repo acme/legacy-app
untaped ansible source-alias set acme.base acme/ansible-role-base
untaped ansible source refresh platform
untaped ansible source remove platform --dry-run
Patch a source rather than replacing it, and map Galaxy role names to their
repos with source aliases. A patch drops the source's cached data, and an
alias applies only at the next scan, so run source refresh after either.
source remove and source-alias remove preview and ask first. Removing a
source also frees the repos only it used from the repo store; a repo another
saved source or plugin still uses stays.
Reference
untaped agents ansible lists every command with its options, the settings, and the guides on where an answer's data comes from and how a walk resolves refs; the untaped you run generates it.
untaped skills install ansible --target claude (or another agent) points your agent at it.
Metadata
Release files for untaped-ansible 11.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| untaped_ansible-11.1.0.tar.gz | 98.4 kB | With provenance | Details for untaped_ansible-11.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| untaped_ansible-11.1.0-py3-none-any.whl | Python 3 | none | any | Details for untaped_ansible-11.1.0-py3-none-any.whl |
Total release size: 220.2 kB
Release files / untaped_ansible-11.1.0.tar.gz
| Download URL | untaped_ansible-11.1.0.tar.gz |
|---|---|
| Size | 98.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
45015140954fc3a73e117df833ffdfe38cc2fffb6478e544be6b79766dff05ae
|
|
BLAKE2b-256 checksum How to use checksums |
4925388f54768d4c36302135cd1f0a34216ca6292145e3b6fbd61afe4193137a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / untaped_ansible-11.1.0-py3-none-any.whl
| Download URL | untaped_ansible-11.1.0-py3-none-any.whl |
|---|---|
| Size | 121.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d0a8d000adbeeaf9c40cc9efc98942ae938e367bb713f6da159fc384d5fc1030
|
|
BLAKE2b-256 checksum How to use checksums |
8ebe778c4fbfc9f266e7443ea33c9fd43575eed7f848b579aaa013160f57b04e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logSecurity for untaped-ansible 11.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for untaped_ansible-11.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.