ClawSkills logoClawSkills

Frappecli

用于 Frappe Framework / ERPNext 实例的 CLI。当用户询问关于“Frappe”、“ERPNext”、“文档类型”、“Frappe API”或需要管理文档、文件、报

介绍

# frappecli

用于通过 REST API 管理 Frappe Framework 实例的 CLI。

## 安装

```bash brew tap pasogott/tap brew install frappecli ```

或者从源码安装: ```bash git clone https://github.com/pasogott/frappecli.git cd frappecli && uv sync && uv pip install -e . ```

## 配置

创建 `~/.config/frappecli/config.yaml`:

```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 ```

## 命令

### 站点管理 ```bash frappecli site doctypes # List all doctypes frappecli site doctypes --module "Core" # Filter by module frappecli site info "User" # Get doctype details ```

### 文档 CRUD ```bash # 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 ```

### 文件管理 ```bash # 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" ```

### 报表 ```bash # 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 ```

### RPC 方法 ```bash # Call custom method frappecli rpc frappe.ping

# With arguments frappecli rpc myapp.api.process_data --args '{"doc_id":"DOC-001"}' ```

### 多站点 ```bash # Use specific site frappecli --site staging doc list Customer

# Switch default site frappecli config set default_site staging ```

## 输出格式

```bash frappecli doc list Customer --format table # Pretty table (default) frappecli doc list Customer --format json # JSON frappecli doc list Customer --format csv # CSV ```

## 示例

### 批量操作 ```bash # 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 '*' ```

### 与 jq 集成 ```bash # 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})' ```

## 链接

- **仓库:** https://github.com/pasogott/frappecli - **Homebrew:** `brew install pasogott/tap/frappecli`

更多产品