Command-line client
Documentation index for AI agents: https://angelwood.io/docs/llms.txt
angelwood-cli is the REST API from a terminal: list your clients, projects, tasks and invoices, and create clients and tasks. It needs Node.js 20 or later and has no dependencies.
Install
npm install -g github:NewOdysseyConsulting/angelwood-cli
This installs it straight from the source repository.
Sign in
Create an API key in Angelwood under Settings, then run:
angelwood login
The key is checked with Angelwood before it is saved to ~/.config/angelwood/config.json, which only you can read. In scripts and CI, set the ANGELWOOD_API_KEY environment variable instead.
Commands
| Command | What it does |
|---|---|
angelwood whoami |
Shows the organization and user the key belongs to |
angelwood clients list |
Lists clients. Option: --search |
angelwood clients get <id> |
Shows one client |
angelwood clients create --name <name> |
Creates a client. Options: --email, --phone, --address |
angelwood projects list |
Lists projects. Options: --client, --status |
angelwood tasks list |
Lists tasks. Options: --project, --status |
angelwood tasks create --project <id> --title <title> |
Creates a task. Options: --description, --priority, --due |
angelwood invoices list |
Lists invoices. Options: --client, --project, --status |
angelwood logout |
Removes the saved key |
Every list command also takes --limit (1 to 100, default 25), --offset and --json.
Examples
# Which invoices are overdue?
angelwood invoices list --status overdue
# Add a task to project 42, due at the end of the year
angelwood tasks create --project 42 --title "Send the Q4 report" --priority high --due 2026-12-31
# Total outstanding balance on sent invoices, with jq
angelwood invoices list --status sent --limit 100 --json | jq '[.data[].balance_due] | add'
Notes
- Creating clients and tasks needs a key with write permission.
- Nothing can be updated or deleted from the command line.
- The limit is 120 API requests per minute per organization.