npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

cisco-axl

v2.1.2

Published

A library and CLI for Cisco CUCM AXL operations

Downloads

742

Readme

Cisco AXL Library & CLI

npm version CI License: MIT Node.js Version Skills Buy Me a Coffee

A JavaScript library and CLI to interact with Cisco CUCM via AXL SOAP API. Dynamically discovers all AXL operations from the WSDL schema — any operation for your specified version is available without static definitions.

Administrative XML (AXL) information can be found at: Administrative XML (AXL) Reference.

Installation

npm install cisco-axl

Global CLI install

npm install -g cisco-axl

Or run without installing:

npx cisco-axl --help

AI Agent Skills

npx skills add sieteunoseis/cisco-axl

Requirements

If you are using self-signed certificates on Cisco VOS products you may need to disable TLS verification, or use the --insecure CLI flag.

Supported CUCM versions: 11.0, 11.5, 12.0, 12.5, 14.0, 15.0

Quick Start

# Configure a cluster
cisco-axl config add lab --host 10.0.0.1 --username admin --password secret --cucm-version 14.0 --insecure

# Test the connection
cisco-axl config test

# List phones
cisco-axl list Phone --search "name=SEP%"

# Get a specific phone
cisco-axl get Phone SEP001122334455

# SQL query
cisco-axl sql query "SELECT name, description FROM device WHERE name LIKE 'SEP%'"

Configuration

cisco-axl config add <name> --host <host> --username <user> --password <pass> --cucm-version <ver> --insecure
cisco-axl config use <name>       # switch active cluster
cisco-axl config list             # list all clusters
cisco-axl config show             # show active cluster (masks passwords)
cisco-axl config remove <name>    # remove a cluster
cisco-axl config test             # test connectivity

Auth precedence: CLI flags > env vars (CUCM_HOST, CUCM_USERNAME, CUCM_PASSWORD, CUCM_VERSION) > config file.

Config stored at ~/.cisco-axl/config.json. Supports ss-cli <ss:ID:field> placeholders.

CLI Commands

| Command | Description | |---------|-------------| | get <type> <identifier> | Get a single item | | list <type> | List items with search, pagination, returned tags | | add <type> | Add an item (inline JSON, template, or bulk CSV) | | update <type> <identifier> | Update an item | | remove <type> <identifier> | Remove an item | | sql query/update | Execute SQL against CUCM | | execute <operation> | Run any raw AXL operation | | operations | List available operations | | describe <operation> | Show tag schema for an operation | | doctor | Check AXL connectivity and health |

See full CLI reference for bulk CSV, command chaining, piping with --stdin, and operation discovery.

Global Flags

| Flag | Description | |------|-------------| | --format table\|json\|toon\|csv | Output format (default: table) | | --insecure | Skip TLS certificate verification | | --clean | Remove empty/null values from results | | --no-attributes | Remove XML attributes from results | | --read-only | Restrict to read-only operations | | --no-audit | Disable audit logging for this command | | --debug | Enable debug logging |

Library API

const axlService = require("cisco-axl");
const service = new axlService("10.10.20.1", "administrator", "ciscopsdt", "14.0");

// Get, list, add, update, remove
await service.getItem("Phone", "SEP001122334455");
await service.listItems("Phone", { name: "SEP%" });
await service.addItem("RoutePartition", { name: "NEW-PT", description: "New" });

// SQL
await service.executeSqlQuery("SELECT name FROM routepartition");

// Any AXL operation
const tags = await service.getOperationTags("addRoutePartition");
tags.routePartition.name = "INTERNAL-PT";
await service.executeOperation("addRoutePartition", tags);

See full API documentation for all methods, error handling, batch operations, TypeScript, retry config, and logging.

Giving Back

If you found this helpful, consider:

"Buy Me A Coffee"

License

MIT