Loading...
Loading...
Use when managing Cisco CUCM via the cisco-axl CLI — phones, lines, route patterns, partitions, calling search spaces, SIP profiles, and any AXL operation. Covers CRUD operations, SQL queries, operation discovery, bulk provisioning from CSV, and raw AXL execute commands.
npx skill4agent add cmds-cc/skills cisco-axl-cli# Option 1: Use npx (no install needed, works immediately)
npx cisco-axl --help
# Option 2: Install globally for faster repeated use
npm install -g cisco-axlnpxnpx cisco-axl list Phone ...cisco-axl list Phone ...cisco-axl config add <name> --host <hostname> --username <user> --cucm-version <ver> --insecure
# You will be prompted securely for the password--insecure.env# These should be set securely, e.g. via dotenv, vault, or shell profile
# CUCM_HOST, CUCM_USERNAME, CUCM_PASSWORD, CUCM_VERSIONcisco-axl config testcisco-axl get Phone SEP001122334455
cisco-axl get Line 1001
cisco-axl get RoutePartition PT_INTERNAL
cisco-axl get Phone SEP001122334455 --returned-tags "name,model,description"cisco-axl list Phone --search "name=SEP%"
cisco-axl list Line --search "pattern=1%"
cisco-axl list Css --search "name=CSS_%"
cisco-axl list Phone --search "name=SEP%" --returned-tags "name,description" --format toon
cisco-axl list Phone --search "name=SEP%" --auto-page --max-results 5000cisco-axl add RoutePartition --data '{"name":"PT_INTERNAL","description":"Internal partition"}'cisco-axl update Phone SEP001122334455 --data '{"description":"Updated description"}'cisco-axl remove RoutePartition PT_INTERNALcisco-axl sql query "SELECT name, description FROM device WHERE name LIKE 'SEP%'"
cisco-axl sql update "UPDATE device SET description='test' WHERE name='SEP001122334455'"cisco-axl operations --filter phone
cisco-axl operations --filter ldap
cisco-axl operations --type action --filter phone # apply, reset, restart, etc.
cisco-axl operations --type crud # add, get, list, update, removecisco-axl describe getPhone
cisco-axl describe addLine --detailed # shows required/optional/typescisco-axl execute doLdapSync --tags '{"name":"LDAP_Main"}'
cisco-axl execute applyPhone --tags '{"name":"SEP001122334455"}'npm install json-variables csv-parse{
"name": "SEP%%mac%%",
"devicePoolName": "%%devicePool%%",
"description": "%%description%%",
"class": "Phone",
"protocol": "SIP"
}mac,devicePool,description
001122334455,DP_HQ,Lobby Phone
001122334466,DP_BRANCH,Conf Room Acisco-axl add Phone --template phone-template.json --csv phones.csv
cisco-axl add Phone --template phone-template.json --csv phones.csv --dry-run # preview first
cisco-axl add Phone --template phone-template.json --csv phones.csv --concurrency 10cisco-axl add Phone --template phone-template.json --vars '{"mac":"001122334455","devicePool":"DP_HQ","description":"Lobby"}'cisco-axl update Phone --template update-template.json --csv updates.csv
cisco-axl execute addLine --template line-template.json --csv lines.csv--format--format table--format json--format toon--format csv--format toon--format jsoncisco-axl config add lab --host 10.0.0.1 --username admin --cucm-version 14.0 --insecure
cisco-axl config add prod --host 10.0.0.2 --username axladmin --cucm-version 15.0 --insecure
# You will be prompted securely for each password
cisco-axl config use prod
cisco-axl list Phone --search "name=SEP%" --cluster lab # override per-command&&# Create a partition, CSS, and line in order
cisco-axl add RoutePartition --data '{"name":"PT_INTERNAL","description":"Internal"}' && \
cisco-axl add Css --data '{"name":"CSS_INTERNAL","members":{"member":{"routePartitionName":"PT_INTERNAL","index":"1"}}}' && \
cisco-axl add Line --data '{"pattern":"1000","routePartitionName":"PT_INTERNAL"}'--stdin# Get a phone's config, modify it with jq, update it
cisco-axl get Phone SEP001122334455 --format json | jq '.description = "Updated via pipe"' | cisco-axl update Phone SEP001122334455 --stdin
# Pipe JSON from a file
cat phone-config.json | cisco-axl add Phone --stdin
# Chain get → transform → execute
cisco-axl describe applyPhone --format json | jq '.name = "SEP001122334455"' | cisco-axl execute applyPhone --stdin--stdinaddupdateexecute--data--tags--templatePhoneLineRoutePartitionCssDevicePoolSipTrunkTransPatternRouteGroupRouteListcisco-axl operationscisco-axl describe <operation> --detailed --format json--clean--no-attributes--insecure~/.cisco-axl/audit.jsonl--no-audit--dry-run