Ansible Automation Platform (awx) CLI Cheat Sheet — Tower CLI, Updated for AAP 2

Updated for 2026: this cheat sheet was written for Ansible Tower and its tower-cli. Tower is now Red Hat Ansible Automation Platform (AAP) 2.x, tower-cli is retired, and the official command-line client is awx — the same CLI that ships with the open-source AWX project. The shape of the tool is familiar, but resource names are now plural (awx users, not awx user) and export/import replaced receive/send. Everything below is the modern equivalent.

Install and connect

$ pip install awxkit        # provides the awx command

# Point it at your controller (or set these in ~/.awx.cfg / environment)
$ export CONTROLLER_HOST=https://controller.example.local
$ export CONTROLLER_USERNAME=admin
$ export CONTROLLER_PASSWORD='********'   # or CONTROLLER_OAUTH_TOKEN for token auth

$ awx me        # sanity check: prints your own user object

Users

# List all users
$ awx users list

# List all non-superusers
$ awx users list --is_superuser=false

# Get one user, by ID or by username
$ awx users get 42
$ awx users get --username guido

# Create a user
$ awx users create --username guido --first_name Guido 
    --last_name "Van Rossum" --email guido@python.org --password '********'

# Modify a user (lookups work by ID or unique field)
$ awx users modify 42 --first_name Guido
$ awx users modify --username guido --first_name Guido

# Delete a user
$ awx users delete 42

Jobs and templates

# List jobs, filtered and paged
$ awx jobs list
$ awx jobs list --status running
$ awx jobs list --page 2

# Launch a job from a template, and watch it run
$ awx job_templates launch 144
$ awx job_templates launch 144 --monitor

# Monitor an existing job
$ awx jobs monitor 95

# Ad-hoc command against an inventory
$ awx ad_hoc_commands launch --inventory 12 --module_name ping

Export / import (replaces receive / send)

# Export everything to JSON
$ awx export > assets.json

# Export one resource type
$ awx export --credentials all
$ awx export --job_templates all

# Import from a JSON file
$ awx import < assets.json

# Copy all assets from one controller to another
$ awx --conf.host https://tower1.example.local export 
  | awx --conf.host https://tower2.example.local import

Authentication

# Create an OAuth2 token and use it for subsequent calls
$ awx login   # prompts for credentials, stores a token

# Or skip stored credentials entirely and pass a token per session
$ export CONTROLLER_OAUTH_TOKEN='<token>'

Help

$ awx --help                 # every resource
$ awx users --help           # one resource
$ awx users create --help    # one action, with all its fields

The resource list mirrors the API — organizations, inventories, credentials, credential_types, projects, job_templates, workflow_job_templates, schedules, instances, and more. If you can see it in the controller UI, awx can script it.

tower-cli → awx, at a glance

  • tower-cli user list → awx users list (singular → plural)
  • tower-cli job launch --job-template=144 → awx job_templates launch 144
  • tower-cli receive --all → awx export
  • tower-cli send assets.json → awx import < assets.json
  • --tower-host → --conf.host or CONTROLLER_HOST

Running your own server? These guides assume you have a Linux box somewhere — see our guide to choosing a VPS in 2026 for the 7 specs that actually matter before you spin one up.

Scroll to Top