Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
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.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
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_secret default_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 10 # Get 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.ping # With arguments frappecli rpc myapp.api.process_data --args '{"doc_id":"DOC-001"}'
# Use specific site frappecli --site staging doc list Customer # Switch 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.csv # Get 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})'
Repository: https://github.com/pasogott/frappecli Homebrew: brew install pasogott/tap/frappecli
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.