Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@wavyx/pdcli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
pdcli
Command-line interface for Pipedrive — fast, scriptable, built for terminals, CI pipelines, and AI agents.
Not affiliated with or endorsed by Pipedrive.
Install
npm install -g @wavyx/pdcliAuthenticate
pdcli auth login # personal API token (app.pipedrive.com/settings/api)
pdcli auth login --oauth # OAuth 2.0 via your own Developer Hub app
pdcli auth statusCredentials live only in your OS keychain — never in plaintext on disk. OAuth
access tokens refresh automatically. CI/scripts can use env vars instead:
PDCLI_COMPANY_DOMAIN=acme PDCLI_API_TOKEN=... pdcli deal list
Read
pdcli deal list --status open --limit 20
pdcli deal get 42
pdcli person list --org 7 --jq '.[].id'
pdcli activity list --todo
pdcli lead list
pdcli note list --deal 42
pdcli pipeline list && pdcli stage list --pipeline 1
pdcli search "acme"
pdcli field list deal # custom fields with their hash keysOutput everywhere: --output table|json|yaml|csv, --jq '<expr>', --fields id,name.
Write
pdcli deal create --title "Acme renewal" --value 5000 --currency EUR --stage 3
pdcli deal update 42 --status won
pdcli activity create --subject "Follow up" --type call --due-date 2026-06-10 --deal 42
pdcli product create --name "Consulting" --price 150 --currency EUR
pdcli deal delete 42 # asks first; --yes to skipCustom fields by human name — labels and option IDs resolve automatically:
pdcli deal create --title "Sized" --field "Deal Size=Large" --field "Score=4.5"
pdcli deal update 42 --body '{"probability":75}' # raw JSON escape hatchBulk
pdcli deal bulk-update --filter 9 --stage 5 # saved filter → stage move
pdcli deal bulk-update --ids 1,2,3 --status won --yes
pdcli deal list --status open --jq '.[].id' | pdcli deal bulk-update --owner 42
pdcli person import people.csv --dry-run # CSV headers map to fields,
pdcli person import people.csv # custom fields by nameAnalytics & housekeeping
pdcli metrics velocity --period 90d # the Sales Velocity Equation, in your terminal
pdcli funnel --pipeline 1 # stage-to-stage conversion
pdcli pipeline health # per-stage value, weighted value, stale, no-next-step
pdcli audit # 11 data-hygiene checks (duplicates, stale, gaps)
pdcli audit --strict # exit 1 on must-severity findings — wire into CIFiles, webhooks, backup
pdcli file upload ./contract.pdf --deal 42
pdcli file download 15 --out ./contract.pdf
pdcli webhook create --url https://ci.example.com/hook --event-action create --event-object deal
pdcli backup --dir ./pipedrive-backup # full account → JSON tree, --resume to continueAnything else
pdcli api GET /api/v2/pipelines # raw, host-locked to YOUR domain
pdcli api POST /api/v2/deals --body '{"title":"Raw deal"}'
pdcli doctor # diagnose auth/keychain/connectivity--output table|json|yaml|csveverywhere; table in a TTY, JSON when piped.- Deterministic sysexits exit codes for scripting.
- Full reference: docs/commands.md (generated from the CLI manifest).
License
MIT