A command-line interface for the Ponto banking API.
- Account information (list, get, balances)
- Transaction history with CSV/JSON export
- Synchronization management
- Pending transactions
- Financial institutions listing
- Multiple profile support (sandbox/live)
- Command allowlist for restricted environments
- Cross-platform (macOS, Linux, Windows)
- OS keyring credential storage
go install github.com/dedene/ponto-cli/cmd/ponto@latestDownload the binary for your platform from GitHub Releases.
# Login with Ponto credentials (from dashboard)
ponto auth login
# Check authentication status
ponto auth status
# List accounts
ponto accounts list
# Set default account (optional, skips --account-id on future commands)
ponto config set account-id <ACCOUNT_ID>
# List transactions (last 30 days)
ponto transactions list --since=-30d
# Filter by type (income/expense)
ponto transactions list --type=income
ponto transactions list --type=expense
# Export transactions as CSV
ponto transactions export --format=csv > transactions.csv
# Trigger account sync
ponto sync create --subtype=accountTransactionsponto auth login Store credentials in keyring
ponto auth logout Remove credentials from keyring
ponto auth status Show authentication status
ponto accounts list List all accounts
ponto accounts get <ID> Get account details
ponto accounts sync <ID> Trigger synchronization
ponto transactions list List transactions (--type=income|expense|all)
ponto transactions get Get transaction details
ponto transactions export Export transactions (--type=income|expense|all)
ponto sync create Create synchronization
ponto sync get Get sync status
ponto sync list List synchronizations
ponto pending-transactions list List pending transactions
ponto financial-institutions list List financial institutions
ponto organization show Show organization info
ponto config set <key> <value> Set configuration value
ponto config get <key> Get configuration value
# Table (default) - human readable
ponto accounts list
# JSON - for scripting
ponto accounts list --json
# CSV - for spreadsheets
ponto accounts list --csv
# Plain TSV - for cut/awk
ponto accounts list --plainUse profiles to manage multiple environments:
# Login to sandbox
ponto auth login --profile=sandbox
# Use sandbox profile
ponto --profile=sandbox accounts list
# Or use shorthand
ponto --sandbox accounts listRestrict available commands in sensitive environments:
# Only allow read commands
export PONTO_ENABLE_COMMANDS="auth.status,accounts.list,transactions.list"
# Or via flag
ponto --enable-commands=accounts.list accounts list| Variable | Description |
|---|---|
PONTO_PROFILE |
Default profile name |
PONTO_ENABLE_COMMANDS |
Comma-separated allowed commands |
PONTO_KEYRING_BACKEND |
Keyring backend (auto/keychain/file) |
PONTO_KEYRING_PASSWORD |
Password for file backend |
Config file: ~/.config/ponto/config.yaml
default_profile: live
keyring_backend: auto
profiles:
default:
account_id: abc-123-def # Default account for commands
sandbox:
account_id: sandbox-456Set a default account to avoid specifying --account-id on every command:
# Set default account for current profile
ponto config set account-id <ACCOUNT_ID>
# View current setting
ponto config get account-id
# Now these work without --account-id:
ponto transactions list --since=-30d
ponto pending-transactions listResolution order: flag → config → auto-detect (if single account)
This CLI is available as an open agent skill for AI assistants including Claude Code, OpenClaw, Cursor, and GitHub Copilot:
npx skills add dedene/ponto-cliMIT