InvoiceyDocs
Connect & automate

CLI

Manage invoices, clients, and payments from an interactive terminal.

Invoicey CLI is an operator cockpit for the same workspace the web app, MCP, and Slack already share. It is not a second Invoicey — looks, members, bank connect, and bulk import stay on the website.

Same validation as every other surface

Drafts still go through InvoiceSchema. The CLI cannot invent an issuer — create injects the workspace default, the same way MCP does.

Install

The public installer detects the current architecture, downloads the matching standalone binary, verifies it against the published SHA-256 checksum, and puts it in ~/.invoicey/bin:

curl -fsSL https://invoicey.app/install | bash

Open a new terminal, or add the install directory to the current shell:

export PATH="$HOME/.invoicey/bin:$PATH"
invoicey --version
invoicey login

Set INVOICEY_INSTALL_DIR to choose another destination. Set INVOICEY_VERSION to install a specific release instead of the latest one.

Login

Create a personal key

Under Settings → API keys, create a key and copy it once. See API keys.

Save it on this machine

invoicey login

Paste the key, keep the default API URL (https://invoicey.app) unless you are hitting a local bun dev. The key is stored in ~/.invoicey/cli.json (mode 0600). You can also set INVOICEY_API_KEY and optional INVOICEY_API_URL.

Confirm the workspace

invoicey whoami
invoicey status

login calls POST /api/companion with { "op": "me" }. A bad key is 401. If something in front of the API returns HTML (a redirect to sign-in, a challenge page), the CLI prints the content-type and a body snippet — it does not swallow that as a generic “unexpected response (200)”.

Daily use

invoicey                  # interactive home
invoicey status
invoicey invoices --unpaid
invoicey invoices show 20260012
invoicey invoices issue 20260012
invoicey invoices send 20260012
invoicey invoices new --ico 27082440 --desc "October consulting" --qty 32 --price 1800 --vat 21
invoicey clients add 27082440
invoicey payments
invoicey ares NFCtron

Invoice refs are an issued number or a UUID. Irreversible actions confirm in a TTY unless you pass --yes. --json prints the companion payload.

Commands

CommandWhat it does
invoiceyInteractive home when stdin is a TTY
invoicey login / logout / whoamiSave, drop, or inspect the stored key
invoicey statusDisplay-status counts and outstanding totals
invoicey invoices [ls]List (--unpaid, --limit, --q)
invoicey invoices show <ref>One invoice by number or UUID
invoicey invoices newDraft (--ico, --client, line flags)
invoicey invoices issue <ref>Issue a draft
invoicey invoices send <ref>Email PDF + ISDOC (--to)
invoicey invoices paid / unpaid / cancelPayment state and cancel
invoicey invoices pdf / isdocDownload artifacts (-o)
invoicey clients / clients add <ico>List, or add from ARES
invoicey issuersList issuers (default flagged)
invoicey paymentsPending bank-match proposals
invoicey payments confirm / rejectConfirm or reject a proposal
invoicey ares <ico-or-name>ARES lookup or name search

Global flags: --api, --token, --json, -y / --yes.

Files on disk

invoicey
cli.json
PathWhat
~/.invoicey/bin/invoiceyCompiled command
~/.invoicey/cli.jsonAPI URL + PAT (0600)

Logout removes cli.json. It does not uninstall the binary. Delete ~/.invoicey/bin/invoicey and the PATH line in your shell rc if you want it gone.

Troubleshooting