| name | ponto-cli |
| description | Access Ponto banking data via the ponto CLI. Use when the user wants to list bank accounts, view transactions, export transaction history to CSV/JSON, check account balances, trigger bank syncs, view pending transactions, or automate banking data workflows. Triggered by mentions of Ponto, bank accounts, transactions, banking API, or financial data export.
|
| license | MIT |
| homepage | https://github.com/dedene/ponto-cli |
| metadata | {"author":"dedene","version":"1.1.0","openclaw":{"primaryEnv":"PONTO_PROFILE","requires":{"env":["PONTO_PROFILE","PONTO_ENABLE_COMMANDS","PONTO_KEYRING_BACKEND"],"bins":["ponto"]},"install":[{"kind":"brew","tap":"dedene/tap","formula":"ponto-cli","bins":["ponto"]},{"kind":"go","package":"github.com/dedene/ponto-cli/cmd/ponto","bins":["ponto"]}]}} |
ponto-cli
Command-line interface for the Ponto banking API. Access account data, transactions, and sync status.
Quick Start
ponto auth status
ponto accounts list --json
ponto transactions list --since=-30d --json
Authentication
Ponto uses OAuth2 with client credentials from the Ponto dashboard. The user must run ponto auth login interactively to store credentials in the system keyring. Do not attempt auth setup on behalf of the user.
ponto auth status
Core Rules
- Always use
--json when parsing output. Table format is for display only.
- Read before write -- fetch current state before triggering syncs.
- Set default account -- use
ponto config set account-id <ID> to avoid --account-id on every command.
- Pipe with jq -- extract IDs/fields:
ponto accounts list --json | jq -r '.[].id'
- Multi-profile -- use
--profile=sandbox or --sandbox for sandbox environment.
Output Formats
| Flag | Format | Use case |
|---|
| (default) | Table | User-facing display |
--json | JSON | Agent parsing, scripting |
--csv | CSV | Spreadsheet export |
--plain | TSV | Pipe to awk/cut |
Workflows
List Accounts and Set Default
ponto accounts list --json
ponto config set account-id <ACCOUNT_ID>
ponto config get account-id
View Transactions
ponto transactions list --since=-30d --json
ponto transactions list --type=income --json
ponto transactions list --type=expense --json
ponto transactions get <TRANSACTION_ID> --json
Export Transactions
ponto transactions export --format=csv > transactions.csv
ponto transactions export --since=-90d --format=csv > q1.csv
ponto transactions export --format=json > transactions.json
Trigger Bank Sync
ponto sync create --subtype=accountTransactions
ponto sync get <SYNC_ID> --json
ponto sync list --json
Pending Transactions
ponto pending-transactions list --json
Financial Institutions
ponto financial-institutions list --json
Organization Info
ponto organization show --json
Scripting Examples
ACCOUNT=$(ponto accounts list --json | jq -r '.[0].id')
ponto transactions list --type=income --json | jq -r '.[] | [.date, .amount, .counterpartName] | @tsv'
ponto transactions list --type=expense --since=-30d --json | jq '[.[].amount] | add'
Profiles
ponto auth login --profile=sandbox
ponto --profile=sandbox accounts list
ponto --sandbox accounts list
export PONTO_PROFILE=sandbox
Environment Variables
| Variable | Description |
|---|
PONTO_PROFILE | Default profile name |
PONTO_ENABLE_COMMANDS | Comma-separated allowed commands |
PONTO_KEYRING_BACKEND | Keyring backend (auto/keychain/file) |
Command Reference
| Command | Description |
|---|
auth login | Store credentials in keyring |
auth logout | Remove credentials |
auth status | Show auth status |
accounts list | List all accounts |
accounts get <ID> | Get account details |
accounts sync <ID> | Trigger account sync |
transactions list | List transactions |
transactions get <ID> | Get transaction details |
transactions export | Export transactions |
sync create | Create synchronization |
sync get <ID> | Get sync status |
sync list | List synchronizations |
pending-transactions list | List pending transactions |
financial-institutions list | List banks |
organization show | Show organization info |
config set <key> <value> | Set config value |
config get <key> | Get config value |
Guidelines
- Never expose or log OAuth credentials or keyring contents.
- Banking data is sensitive -- avoid logging transaction details unnecessarily.
- Syncs may take time to complete -- poll status if needed.
- Rate limits apply -- the CLI handles retries automatically.
Installation
brew install dedene/tap/ponto-cli