Skip to main content
Commands that manage the CLI itself rather than workspace data.

login

Sign in to a workspace through the browser. Omit --subdomain and the CLI prompts for it.
The command opens the sign-in page in your browser and prints the URL in case it does not open. It waits up to two minutes for you to approve the session, then fails with a timeout message. Credentials for every signed-in subdomain live together in ~/.config/neetoinvoice/auth.json. See Authentication.

logout

Sign out of one workspace, or all of them.
With no flag, logout removes the only entry when exactly one is signed in, and errors when several are.

whoami

List the signed-in accounts. The entry is marked (default) when exactly one is signed in.
Pass --subdomain <name> to show just one.

doctor

Check authentication, API reachability, and version. Each check runs independently, so one failure does not hide the others.
With several workspaces signed in, pass --subdomain as well; without it the authentication check fails and the API check is skipped. doctor --subdomain <name> also works before you sign in, which is a quick way to confirm a workspace is reachable.

version

Print the version, commit, and build date.
Pass --json for a machine-readable object:

update

Upgrade the CLI in place. The command detects how the binary was installed and runs the matching upgrade: brew update && brew upgrade for Homebrew, the PowerShell installer on Windows, and the shell installer everywhere else. It prints the install method it detected and the exact command it runs.
Re-run neetoinvoice completion <shell> and any setup command you use after upgrading so they pick up the new commands.

commands

Emit the full command and flag catalog as JSON. This is the source of truth for what the installed binary supports, and it is what generates the commands overview.
Each entry has command, description, optional flags (with name, type, default, description, and required), and subcommands. help, completion, and commands itself are left out of the catalog.

setup

Write NeetoInvoice instructions into an AI coding assistant’s config. Every target except claude writes into the current project directory, so run those from the repository you are working in. See AI assistants.
The section-based targets keep the rest of the file and replace only the block between the <!-- neetoinvoice:start --> and <!-- neetoinvoice:end --> markers, so re-running never adds a duplicate.

Shell completion

neetoinvoice completion <shell> writes the completion script to disk and wires your shell to load it on next start. No manual sourcing is needed.
Re-running refreshes both the script and the loader block in place, between the # neetoinvoice completions and # end neetoinvoice completions markers, so it never duplicates the block.
Re-run the completion install after every upgrade. The script on disk is generated from the binary that wrote it, so commands added later will not be suggested until you refresh it.
Pass --print to emit the raw script to standard output instead of installing it: