| name | cupi |
| description | CUPI CLI: query and manage Cisco Unity Connection (CUC) voicemail systems via CUPI REST API, PAWS platform admin, AST health monitoring, and DIME log collection. Supports mailbox users, distribution lists, call handlers, class of service, templates, schedules, and OS-level cluster management. |
| argument-hint | [command or resource] |
| allowed-tools | Bash, Read, Grep, Glob |
| user-invocable | true |
Setup
The cupi binary must be built and available in PATH:
bash install-local.sh
go build -o cupi .
Authentication
cupi auth login --host cuc.example.com --username admin --server prod --default
cupi auth set-credentials --type application --username app-user --server prod
cupi auth set-credentials --type platform --username os-admin --server prod
cupi auth status [--server prod]
cupi auth switch prod
cupi auth list
cupi auth logout [--server prod] [--type cupi|application|platform|all]
Passwords are stored in the OS keystore (macOS Keychain, Windows Credential Manager, Linux Secret Service). Server config (hostnames, usernames, default server) is stored in ~/.cupi/config.json — no passwords on disk.
| Type | Used For |
|---|
cupi | CUPI REST provisioning (default) |
application | Application-level APIs |
platform | OS admin / platform-level access (PAWS) |
Command Discovery
Run cupi --help to list all available commands. Run cupi <command> --help for exact flags.
Global Flags
| Flag | Description |
|---|
--server <name> | Override the default server |
--output json|table|csv|raw | Output format (default: table) |
--debug | Print raw API request/response to stderr |
--max <n> | Limit results to N items (0 = no limit) |
--dry-run | Print what would be sent without making changes |
CUPI Resources
cupi users list
cupi users list --max 50
cupi users list --query "(alias startswith j)"
cupi users get jsmith
cupi users get jsmith --output json
cupi users add --alias jsmith --dtmf 1001 --first-name John --last-name Smith
cupi users update jsmith --display-name "John Smith" --department Engineering
cupi users remove jsmith
cupi distlists list
cupi distlists get allvoicemail
cupi distlists add --alias mylist --display-name "My List"
cupi distlists update mylist --display-name "Updated List"
cupi distlists remove mylist
cupi distlists members list mylist
cupi distlists members add mylist <member-objectId>
cupi distlists members remove mylist <member-objectId>
cupi handlers list
cupi handlers get "Opening Greeting"
cupi handlers add --display-name "My Handler" --template-id <objectId>
cupi handlers update "My Handler" --dtmf 9999
cupi handlers remove "My Handler"
cupi cos list
cupi cos get UnityMailboxTemplate
cupi cos update UnityMailboxTemplate --display-name "Updated COS"
cupi templates list
cupi templates get voicemailusertemplate
cupi schedules list
cupi schedules get "Weekdays"
cupi system
cupi system --output json
AST — System Health Monitoring
cupi ast disk
cupi ast heartbeat
cupi ast tftp
cupi ast alerts
cupi ast alerts --triggered
cupi ast perfmon
cupi ast perfmon --output json | jq '.[0]'
PAWS — Platform Administration
Requires platform credentials (cupi auth set-credentials --type platform --username admin).
cupi paws cluster status
cupi paws cluster replication
cupi paws drs status
cupi paws drs backup --sftp-server 10.0.0.5 --sftp-user backup --sftp-password secret --sftp-dir /backups
DIME — Log File Downloads
cupi dime get-file /var/log/active/syslog/CiscoSyslog > syslog.txt
cupi dime get-file /var/log/active/tomcat/catalina.out --output /tmp/catalina.out
cupi dime get-file syslog/CiscoSyslog --node 10.0.0.5
Multi-server
cupi users list --server lab
cupi auth switch prod
Phase 1 Scraper
go run ./tools/scraper/ --json api_reference.json --md api_reference.md