{"id":13501354,"url":"https://github.com/ansible/ansible-navigator","last_synced_at":"2026-01-29T00:13:18.553Z","repository":{"id":37082522,"uuid":"320052445","full_name":"ansible/ansible-navigator","owner":"ansible","description":"A text-based user interface (TUI) for Ansible.","archived":false,"fork":false,"pushed_at":"2026-01-19T21:45:02.000Z","size":5401,"stargazers_count":495,"open_issues_count":98,"forks_count":116,"subscribers_count":19,"default_branch":"main","last_synced_at":"2026-01-24T01:58:21.392Z","etag":null,"topics":["ansible","ansible-commands","ansible-dev-tools","ansible-devtools","curses","hacktoberfest","inventory","network","network-automation","pep-621","playbook","python","tui"],"latest_commit_sha":null,"homepage":"https://ansible.readthedocs.io/projects/navigator/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ansible.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-12-09T19:01:27.000Z","updated_at":"2026-01-19T21:45:07.000Z","dependencies_parsed_at":"2023-11-21T07:54:51.016Z","dependency_job_id":"760690d6-2f15-4b0d-8cb9-ec71a9a88d3a","html_url":"https://github.com/ansible/ansible-navigator","commit_stats":{"total_commits":1196,"total_committers":51,"mean_commits":23.45098039215686,"dds":"0.49916387959866215","last_synced_commit":"f9fdff57a5afdb6e9cea64d0ba53825499af2527"},"previous_names":[],"tags_count":55,"template":false,"template_full_name":null,"purl":"pkg:github/ansible/ansible-navigator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible%2Fansible-navigator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible%2Fansible-navigator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible%2Fansible-navigator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible%2Fansible-navigator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ansible","download_url":"https://codeload.github.com/ansible/ansible-navigator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible%2Fansible-navigator/sbom","scorecard":{"id":198194,"data":{"date":"2025-08-11","repo":{"name":"github.com/ansible/ansible-navigator","commit":"702597399f58633217e1f683b8c84b2b041f1376"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6.9,"checks":[{"name":"Code-Review","score":5,"reason":"Found 3/6 approved changesets -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: .github/SECURITY.md:1","Info: Found linked content: .github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: .github/SECURITY.md:1","Info: Found text in security policy: .github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":10,"reason":"22 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/tox.yml:44","Info: jobLevel 'checks' permission set to 'read': .github/workflows/tox.yml:46","Info: jobLevel 'contents' permission set to 'read': .github/workflows/tox.yml:137","Info: jobLevel 'checks' permission set to 'read': .github/workflows/tox.yml:139","Warn: no topLevel permission defined: .github/workflows/ack.yml:1","Warn: no topLevel permission defined: .github/workflows/push.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/tox.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/ack.yml:9: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/ack.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/push.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/push.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tox.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/tox.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tox.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/tox.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tox.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/tox.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tox.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/tox.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tox.yml:103: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/tox.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tox.yml:112: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/tox.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tox.yml:145: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/tox.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tox.yml:148: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/tox.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tox.yml:155: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/tox.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tox.yml:163: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/tox.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tox.yml:169: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/tox.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tox.yml:176: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/tox.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tox.yml:189: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/tox.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tox.yml:194: update your workflow using https://app.stepsecurity.io/secureworkflow/ansible/ansible-navigator/tox.yml/main?enable=pin","Warn: containerImage not pinned by hash: src/ansible_navigator/data/images_dockerfile:4","Warn: containerImage not pinned by hash: src/ansible_navigator/data/images_dockerfile:7","Warn: containerImage not pinned by hash: src/ansible_navigator/data/images_dockerfile:9","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:29","Warn: pipCommand not pinned by hash: .github/workflows/tox.yml:75","Warn: pipCommand not pinned by hash: .github/workflows/tox.yml:153","Info:   0 out of  10 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   9 third-party GitHubAction dependencies pinned","Info:   0 out of   3 containerImage dependencies pinned","Info:   0 out of   3 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:9"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: all commits (30) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T22:14:15.957Z","repository_id":37082522,"created_at":"2025-08-16T22:14:15.957Z","updated_at":"2025-08-16T22:14:15.957Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28857216,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T22:56:21.783Z","status":"ssl_error","status_checked_at":"2026-01-28T22:56:00.861Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","ansible-commands","ansible-dev-tools","ansible-devtools","curses","hacktoberfest","inventory","network","network-automation","pep-621","playbook","python","tui"],"created_at":"2024-07-31T22:01:34.337Z","updated_at":"2026-01-29T00:13:18.534Z","avatar_url":"https://github.com/ansible.png","language":"Python","funding_links":[],"categories":["Python","Tools"],"sub_categories":[],"readme":"# ansible-navigator\n\n[//]: # (DO-NOT-REMOVE-docs-intro-START)\n\nA text-based user interface (TUI) for Ansible.\n\nA demo of the interface can be found [on YouTube][YT demo].\n\n[YT demo]: https://www.youtube.com/watch?v=J9PBKi8ydi4\n\n[//]: # (DO-NOT-REMOVE-docs-intro-END)\n\n## Communication\n\nRefer to the\n[Talk to us](https://ansible.readthedocs.io/projects/navigator/contributing/community/#talk-to-us)\nsection of the Contributing guide to find out how to get in touch with us.\n\nYou can also find more information in the\n[Ansible communication guide](https://docs.ansible.com/ansible/devel/community/communication.html).\n\n## Contributing\n\nAny kind of contribution to this project is very welcome and appreciated,\nwhether it is a documentation improvement, [bug report][issue],\n[pull request][pull request] review, or a patch.\n\nSee the [Contributing guidelines][contributing guidelines] for details.\n\n[issue]:https://github.com/ansible/ansible-navigator/issues\n[pull request]:https://github.com/ansible/ansible-navigator/pulls\n[contributing guidelines]:\nhttps://ansible.readthedocs.io/projects/navigator/contributing/guidelines/\n\n## Code of Conduct\n\nPlease see the official\n[Ansible Community Code of Conduct](https://docs.ansible.com/ansible/latest/community/code_of_conduct.html).\n\n## Quick start\n\n### Installing\n\nGetting started with ansible-navigator is as simple as:\n\n```\npip3 install 'ansible-navigator[ansible-core]'\nansible-navigator --help\n```\n\n(Users wishing to install within a virtual environment might find the relevant\n[Python documentation][Python venv doc] useful.)\n\nBy default, ansible-navigator uses a container runtime (`podman` or `docker`,\nwhichever it finds first) and runs Ansible within an execution environment\n(a pre-built container image which includes [ansible-core] along with a set\nof Ansible collections.)\n\nThis default behavior can be disabled by starting ansible-navigator with\n`--execution-environment false`. In this case, Ansible and any collections\nneeded must be installed manually on the system.\n\n[ansible-core]: https://docs.ansible.com/ansible-core/devel\n[Python venv doc]: https://docs.python.org/3/library/venv.html\n\nAdditional `Linux`, `macOS` and `Windows with WSL2` installation\ninstructions are available in the [Installation guide].\n\n[Installation guide]:\nhttps://ansible-navigator.readthedocs.io/installation/\n\n## Welcome\n\nWhen running `ansible-navigator` with no arguments, you will be presented with\nthe *welcome page*. From this page, you can run playbooks, browse collections,\nexplore inventories, read Ansible documentation, and more.\n\nA full list of key bindings can be viewed by typing `:help`.\n\n## Output modes\n\nThere are two modes in which ansible-navigator can be run:\n\n* The **interactive** mode, which provides a curses-based user interface and\n  allows you to \"zoom in\" on data in real time, filter it, and navigate between\n  various Ansible components; and\n* The **stdout** mode, which does *not* use curses, and simply returns the\n  output to the terminal's standard output stream, as Ansible's commands\n  would.\n\nThe **interactive** mode is the default and this default can be overwritten by\npassing `--mode stdout` (`-m stdout`) or setting `mode` in\n[configuration][settings documentation].\n\n[settings documentation]: https://ansible-navigator.readthedocs.io/settings/\n\n## Example commands\n\nAll of ansible-navigator's features can be accessed from the *welcome page*\ndescribed above, but as a shortcut, commands can also be provided directly as\ncommand-line arguments.\n\nSome examples:\n\n* Review and explore available collections: `ansible-navigator collections`\n* Review and explore current Ansible configuration: `ansible-navigator config`\n* Review and explore Ansible documentation:\n  `ansible-navigator doc ansible.netcommon.cli_command`\n* Review execution environment images available locally:\n  `ansible-navigator images`\n* Review and explore an inventory:\n  `ansible-navigator inventory -i inventory.yaml`\n* Run and explore a playbook:\n  `ansible-navigator run site.yaml -i inventory.yaml`\n\nOr using the **stdout** mode described above:\n\n* Show the current Ansible configuration:\n  `ansible-navigator config dump -m stdout`\n* Show documentation: `ansible-navigator doc sudo -t become  -m stdout`\n\n... and so on. A full list of subcommands and their relation to Ansible\ncommands can be found in the [subcommand documentation].\n\n[subcommand documentation]:\nhttps://ansible-navigator.readthedocs.io/subcommands/\n\n## Configuring ansible-navigator\n\nThere are several ways to configure ansible-navigator and users and projects\nare free to choose the most convenient method for them. The full hierarchy of\nhow various configuration sources are applied can be found in the FAQ mentioned\nbelow.\n\nOf note, projects making use of ansible-navigator can include a project-wide\nconfiguration file with the project. If one is not found, ansible-navigator\nwill look for a user-specific configuration file in the user's home directory.\nDetails about this can be found in the [settings documentation].\n\n## Frequently Asked Questions (FAQ)\n\nWe maintain a [list of common questions][FAQ] which provides a good\nresource to check if something is tripping you up. We also encourage additions\nto this document for the greater community!\n\n[FAQ]: https://ansible-navigator.readthedocs.io/faq/\n\n## License\n\nansible-navigator is released under the Apache License version 2. See the\n[LICENSE] file for more details.\n\n[LICENSE]: https://github.com/ansible/ansible-navigator/blob/main/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fansible%2Fansible-navigator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fansible%2Fansible-navigator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fansible%2Fansible-navigator/lists"}