Open Source CLI

QuickBooks Online
from your terminal

Query invoices, manage customers, run financial reports. Structured output for AI agents, colored tables for humans, TSV for pipelines.

Install the qbo CLI skill for QuickBooks Online access.
Run: npx skills add -g voska/qbo-cli

Copy and paste into OpenClaw, Claude Code, or any AI agent

zsh
$ qbo list invoices --where "Balance > '0'" --select DocNumber,CustomerRef.name,Balance,DueDate
DOC #
CUSTOMER
BALANCE
DUE DATE
1042
Amy's Bird Sanctuary
239.00
2025-02-15
1043
Bill's Windsurf Shop
85.00
2025-02-20
1044
Cool Cars
4,620.00
2025-03-01
1045
Diego's Road Warrior
1,250.50
2025-03-05
4 invoices · page 1/1
$ qbo get customer 58 --json | jq '.DisplayName, .Balance'
"Amy's Bird Sanctuary"
239.00
$ qbo query "SELECT COUNT(*) FROM Invoice WHERE TxnDate >= '2025-01-01'" --json
{ "totalCount": 47 }

Built for the way you work

Three output modes, structured exit codes, and full API coverage. Whether you're in a terminal or building an agent.

JSON / Table / TSV

--json for machines, colored tables for humans, --plain for pipelines. Auto-detects when stdout is piped.

Agent-Ready

Structured exit codes, --no-input mode, and qbo schema for JSON introspection. Built for Claude Code and LLM automation.

Reports & Queries

Profit & Loss, Balance Sheet, raw SQL-like queries, batch operations, and change data capture. Full QuickBooks Online API coverage.

Secure OAuth 2.0

Browser-based OAuth flow with tokens stored in your system keyring. No credentials in config files.

Multi-Company

Switch between multiple QuickBooks companies with named profiles. --company-id flag or qbo company switch.

Cross-Platform

Pure Go binary. Install via Homebrew, Scoop, go install, or download from GitHub Releases. No dependencies.

Install

One command. No dependencies.

$ brew install voska/tap/qbo

macOS and Linux

Quick Start

From install to your first query in under a minute.

1 Authenticate with QuickBooks Online
$ qbo auth login
Opening browser for OAuth...
Authenticated as Acme Corp (company 1234567890)
2 List entities
$ qbo list customers --select DisplayName,Balance
DISPLAY NAME              BALANCE
Amy's Bird Sanctuary      239.00
Bill's Windsurf Shop       85.00
Cool Cars               4,620.00
3 customers found
3 Query with filters and pipe to JSON
$ qbo list invoices --where "Balance > '0'" --json | jq length
12
4 Run financial reports
$ qbo report profit-and-loss --start-date 2025-01-01 --end-date 2025-12-31 --json

FAQ

What is qbo CLI?
qbo is a free, open-source command-line interface for QuickBooks Online. It lets you query invoices, customers, vendors, and financial reports directly from your terminal. It supports three output modes: structured JSON for automation and AI agents, colored tables for interactive use, and tab-separated values for shell pipelines. Written in Go with zero runtime dependencies.
How do I install qbo?
On macOS or Linux: brew install voska/tap/qbo. On Windows: scoop bucket add voska https://github.com/voska/scoop-bucket && scoop install qbo. With Go: go install github.com/voska/qbo-cli/cmd/qbo@latest. Or download binaries directly from GitHub Releases.
Can I use qbo with AI agents?
Yes. qbo is designed for both humans and AI agents. It provides structured JSON output via --json, machine-readable exit codes (0-10), a --no-input flag for non-interactive use, and a qbo schema command that outputs the full CLI structure as JSON for agent introspection. Install as a Claude Code skill with: npx skills add -g voska/qbo-cli.
What QuickBooks data can I access?
Full coverage of the QuickBooks Online API. List, get, create, update, and delete entities including invoices, customers, vendors, items, payments, bills, and more. Run financial reports (Profit & Loss, Balance Sheet), execute raw SQL-like queries, perform batch operations, and use change data capture for incremental syncing.