CLI for Halo ITSM

Your service desk,
from the command line.

halo-cli is an open-source Python CLI that gives ITSM managers full control over Halo ITSM. 22 command groups, direct SQL access to 818 database tables, and a Claude Code skill that turns natural language into ITSM operations.

halo-cli
$ halo ticket list --search "VPN" --limit 3 -o table
 id   summary                   status    agent
─────┼──────────────────────────┼──────────┼─────────────
  42  VPN not connecting        Open      J. Martinez
  38  VPN license expired       Pending   S. Kim
  15  VPN setup for new hire    Resolved  V. Semeria
22 Command Groups
818 Database Tables
100% Python
MIT Licensed

Everything you need to run your service desk

From ticket triage to database analytics. One tool, zero browser tabs.

Full Ticket Lifecycle

Create, list, search, update, and resolve tickets. Filter by status, agent, client, team, or ticket type. Rich table output with field selection.

halo ticket list --agent-id 1 --status-id 1

Direct SQL Access

Query 818 database tables directly. Explore schemas, describe columns, run complex analytics. Read from @file.sql for saved queries.

halo sql query "SELECT TOP 10 * FROM FAULTS"

AI-Native with Claude Code

Ships with a Claude Code skill. Describe what you need in plain English — Claude runs the right commands, chains operations, and reports back.

"Reassign all Acme tickets to the account team"

Knowledge Base

Create, update, search, and manage KB articles programmatically. Build entire documentation libraries from the terminal or through AI automation.

halo kb create --title "VPN Guide" --details "..."

Asset Management

Full CMDB operations from the terminal. List, search, create, and update assets. Filter by client, site, or asset type. Track your entire estate.

halo asset list --search "MacBook" -o table

Secure & Reliable

OAuth2 client credentials authentication. Automatic token refresh, exponential backoff, paginated responses. Secrets managed via Doppler.

halo whoami

See it in action

Real commands, real output. Every operation your team runs through the browser — now in the terminal.

SQL Queries
$ halo sql query "SELECT TOP 5 symptom, dateoccured FROM FAULTS ORDER BY faultid DESC"
 symptom                     dateoccured
───────────────────────────┼─────────────
 Email sync failing          2026-03-21
 Printer offline - Floor 3   2026-03-21
 Laptop keyboard broken      2026-03-20
 WiFi drops in Building C    2026-03-20
 Monitor flickering          2026-03-19
$ halo sql tables --search "ASSET"
 TABLE_NAME
──────────────────────
 ASSET
 ASSETGROUP
 ASSETTYPE
 ASSET_CUSTOMFIELDS
 ASSETLINKS
Assets & Knowledge Base
$ halo asset list --search "MacBook" --fields id,inventory_number,client_name
 id   inventory_number  client_name
─────┼──────────────────┼────────────────
 201  MB-2024-0142      Design Team
 198  MB-2024-0138      Marketing
 195  MB-2024-0135      Engineering
$ halo kb create --title "MacBook Setup Guide" --details "Standard setup procedure for new MacBook deployments..."
✓ Created KB article #156
$ halo action create --ticket-id 42 --note "Deployed MacBook MB-2024-0142" --time-taken 30
✓ Added action to ticket #42 (30 min logged)

Talk to your service desk

halo-cli ships with a Claude Code skill that teaches AI your entire ITSM. Describe what you want in plain English. Claude figures out the commands, chains them together, and gets it done.

Claude Code + halo-cli
You

"What are the top ticket categories this month? And assign all unresolved networking tickets to the infrastructure team."

Claude Code

Let me check the ticket categories and handle the reassignment.

$ halo sql query "SELECT TOP 5 category_1, COUNT(*) as total FROM FAULTS WHERE dateoccured >= '2026-03-01' GROUP BY category_1 ORDER BY total DESC"
 category_1           total
─────────────────────┼───────
 Network Issues        47
 Hardware Failure      31
 Software Install      28
 Access Request        22
 Email Issues          18
$ halo team list --search "Infrastructure" --fields id,name
$ halo ticket list --search "network" --status-id 1 --fields id,summary
$ halo ticket update --id 1042 --team-id 5
$ halo ticket update --id 1038 --team-id 5
$ halo ticket update --id 1029 --team-id 5
 Top category this month: Network Issues (47 tickets)
 Reassigned 3 unresolved networking tickets to Infrastructure team
Natural language queries
Chained operations
Bulk updates in seconds
Zero ITSM training required

22 command groups. Full coverage.

Every entity in Halo ITSM, accessible with halo <noun> <verb>.

ticket action sql user agent client site asset asset-type kb status category team contract ticket-type custom-field attachment report item invoice supplier api

What's coming

halo-cli is just the beginning. We're building a complete ecosystem for AI-powered ITSM.

Launching Soon

Open Source Release

MIT-licensed on GitHub and PyPI. Install with pip install halo-cli and get started in minutes. Full documentation, contribution guide, and issue tracker.

In Development

Claude Code Courses

Step-by-step video courses on using halo-cli with Claude Code. From basic ticket management to advanced SQL analytics, bulk automation, and report generation.

In Development

Best Practice Guides

Battle-tested patterns for ITSM automation. Ticket triage workflows, SLA monitoring, asset lifecycle management, onboarding automation, and compliance reporting.