46+ commands across 24 command groups
Jobs, customers, invoices, estimates, memberships, technicians, dispatch, calls, tags, reporting, and more are available from a single install.
Open Source Developer Tool
An open-source CLI that gives ServiceTitan users instant terminal access to jobs, revenue, technicians, estimates, memberships, and 20+ more domains - because the official tools stop at the browser.
The Challenge
ServiceTitan is a browser-only platform. Power users, developers, and data teams had no way to script against it, automate reporting, or pull quick answers without clicking through the web UI.
No official CLI existed, and the REST API documentation was incomplete. Some endpoints silently ignored parameters, which meant even experienced developers could think a request worked when it had actually returned the wrong slice of data.
The result was a platform with valuable business data but no serious terminal workflow for operators who needed fast lookups, automation, or integration into broader reporting systems.
What the operation was fighting
What We Built
The CLI was designed for quick answers, automation, and consistent output rather than raw endpoint mirroring.
Jobs, customers, invoices, estimates, memberships, technicians, dispatch, calls, tags, reporting, and more are available from a single install.
Revenue commands use ServiceTitan's Reporting API instead of weaker approximations from the standard REST surface.
Credentials are stored in the OS keychain through keytar, with environment variable fallback for automation and CI environments.
Table, JSON, and CSV modes make the CLI useful both for direct terminal use and for piping into scripts and dashboards.
Flags like --json, --limit, --from, and --to give users predictable filtering across command groups.
The project ships through npm and Homebrew so users can install it without custom setup or manual binary handling.
How We Built It
The CLI was built against the real ServiceTitan API, not the happy path implied by the docs.
The project uses oclif v3 with strict TypeScript and zero `as any`. Every command was stress-tested against live ServiceTitan behavior and cross-verified against BigQuery and Metabase ground truth, which surfaced five critical bugs in the first version.
The hardest part was learning the API's undocumented behavior: jobs use `jobStatus` rather than `status`, memberships `active: true` is a billing flag rather than an active-status filter, and the Reporting API requires POST instead of GET. Each issue was discovered through live testing and then locked down with regression coverage.
By the end, auth errors, network failures, rate limiting, and command edge cases were all covered across 201 tests in 33 files, which made the CLI reliable enough for real operators and repeatable automation.
Implementation notes
The Result
The CLI gives ServiceTitan users fast terminal access to business data and automation hooks that the product itself never provided.
The CLI gives ServiceTitan power users what the platform never offered: instant terminal access to every corner of their business data. Revenue reports, job lookups, technician stats, and estimate counts are all one command away.
It was published on npm as @rowvyn/servicetitan-cli, installable via Homebrew, and open-sourced on GitHub. No official ServiceTitan CLI exists - this is the first.
Next Step
If your operators need faster access than the browser can give them, let's build it.
hello@rowvyn.com