Frappecli
CLI for Frappe Framework / ERPNext instances. Use when user asks about "Frappe", "ERPNext", "doctypes", "Frappe API", or needs to manage documents, files, reports, or call RPC methods on a Frappe site
CLI for Frappe Framework / ERPNext instances. Use when user asks about "Frappe", "ERPNext", "doctypes", "Frappe API", or needs to manage documents, files, reports, or call RPC methods on a Frappe site
Real data. Real impact.
Growing
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
CLI for managing Frappe Framework instances via REST API.
brew tap pasogott/tap brew install frappecli
Or from source:
git clone https://github.com/pasogott/frappecli.git cd frappecli && uv sync && uv pip install -e .
Create
~/.config/frappecli/config.yaml:
sites: production: url: https://erp.company.com api_key: your_api_key api_secret: your_api_secret staging: url: https://staging.company.com api_key: your_staging_key api_secret: your_staging_secretdefault_site: production
frappecli site doctypes # List all doctypes frappecli site doctypes --module "Core" # Filter by module frappecli site info "User" # Get doctype details
# List documents frappecli doc list Customer frappecli doc list Customer --filters '{"status":"Active"}' --limit 10Get single document
frappecli doc get Customer CUST-001 frappecli doc get Customer CUST-001 --fields name,customer_name,status
Create document
frappecli doc create Customer --data '{"customer_name":"Acme","customer_type":"Company"}'
Update document
frappecli doc update Customer CUST-001 --data '{"status":"Inactive"}'
Delete document
frappecli doc delete Customer CUST-001
# Upload file (private by default) frappecli file upload invoice.pdf --doctype "Sales Invoice" --docname "INV-001"Upload public file
frappecli file upload logo.png --public
Download file
frappecli file download /private/files/invoice.pdf -o ./downloads/
List files for document
frappecli file list --doctype "Sales Invoice" --docname "INV-001"
# Run report (JSON output) frappecli report run "General Ledger" --filters '{"company":"My Company"}'Export to CSV
frappecli report run "Accounts Receivable" --format csv -o report.csv
# Call custom method frappecli rpc frappe.pingWith arguments
frappecli rpc myapp.api.process_data --args '{"doc_id":"DOC-001"}'
# Use specific site frappecli --site staging doc list CustomerSwitch default site
frappecli config set default_site staging
frappecli doc list Customer --format table # Pretty table (default) frappecli doc list Customer --format json # JSON frappecli doc list Customer --format csv # CSV
# Export all active customers frappecli doc list Customer --filters '{"status":"Active"}' --format csv > customers.csvGet document with child tables
frappecli doc get "Sales Invoice" INV-001 --fields '*'
# Get customer names only frappecli doc list Customer --format json | jq -r '.[].customer_name'Count by status
frappecli doc list Customer --format json | jq 'group_by(.status) | map({status: .[0].status, count: length})'
brew install pasogott/tap/frappecliNo automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.