Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问许可证需确认审计异常

frappe-ops-bench冰沙行动长凳

Agent Skill

frappe-ops-bench 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

599

周安装

24

GitHub Stars

87

下载量

194
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:frappe-ops-bench(冰沙行动长凳)
来源仓库:https://github.com/openaec-foundation/erpnext_anthropic_claude_development_skill_package
仓库路径:skills/frappe-ops-bench
安装命令:
npx skills add https://github.com/openaec-foundation/erpnext_anthropic_claude_development_skill_package --skill frappe-ops-bench
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/openaec-foundation/erpnext_anthropic_claude_development_skill_package --skill frappe-ops-bench

简介

frappe-ops-bench 用于查找、检索和筛选相关信息,适合快速定位候选结果。

  • 适用于根据关键词或任务场景从来源线索中获取信息的场景。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装并使用。
  • 安装前需确认权限范围和维护状态,注意可能触发联网或文件读写操作。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Bench CLI Complete Reference

Complete bench CLI reference for site management, app lifecycle, configuration, and multi-tenancy.

Version: v14/v15/v16


Quick Reference: Essential Commands

TaskCommand
Create benchbench init myproject --frappe-branch version-15
Create sitebench new-site mysite.localhost --admin-password admin
Set default sitebench use mysite.localhost
Get appbench get-app erpnext --branch version-15
Install appbench --site mysite install-app erpnext
Start dev serverbench start
Run migrationsbench --site mysite migrate
Build assetsbench build --app myapp
Backup sitebench --site mysite backup
Restore backupbench --site mysite restore /path/to/backup.sql.gz
Open consolebench --site mysite console
Open DB shellbench --site mysite mariadb
Check schedulerbench doctor
View pending jobsbench show-pending-jobs
Update everythingbench update
Drop sitebench drop-site mysite --force

Workflow 1: Creating a New Bench

# Initialize bench with specific Frappe version
bench init myproject --frappe-branch version-15

# With Python version
bench init myproject --frappe-branch version-15 --python python3.11

# Enter bench directory (REQUIRED for all subsequent commands)
cd myproject

What bench init creates:

myproject/
├── apps/           # Installed Frappe apps (frappe is default)
├── sites/          # All sites and shared config
│   └── common_site_config.json
├── config/         # Redis, Procfile, supervisor configs
├── env/            # Python virtual environment
├── logs/           # Log files
└── Procfile        # Process definitions for bench start

Critical Rules

  • ALWAYS specify --frappe-branch to pin Frappe version
  • ALWAYS run commands from inside the bench directory
  • NEVER run bench commands as root — use a dedicated frappe user

Workflow 2: Site Management

Creating Sites

# Basic site creation
bench new-site mysite.localhost --admin-password admin

# With specific database
bench new-site mysite.localhost --db-name mysite_db --admin-password admin

# With MariaDB root password
bench new-site mysite.localhost --mariadb-root-password rootpass --admin-password admin

# Install apps during creation
bench new-site mysite.localhost --admin-password admin --install-app erpnext

Setting Default Site

bench use mysite.localhost
# OR set environment variable for current session:
export FRAPPE_SITE=mysite.localhost

Dropping a Site

bench drop-site mysite.localhost --force
# Deletes database and archives site directory

Site Directory Structure

sites/mysite.localhost/
├── site_config.json     # Site-specific config (db credentials)
├── private/             # Auth-required files, backups
├── public/              # Publicly accessible files
├── locks/               # Scheduler lock files
└── task-logs/           # Scheduler task logs

Workflow 3: App Management

# Download app from GitHub
bench get-app erpnext --branch version-15
bench get-app https://github.com/org/custom-app.git --branch main

# Install app on a site
bench --site mysite install-app erpnext

# List installed apps
bench --site mysite list-apps

# Remove app from site (creates backup first)
bench --site mysite uninstall-app custom_app

# Remove app from bench entirely
bench remove-app custom_app

# Switch app branch
bench switch-to-branch version-15 erpnext frappe

# Exclude app from updates
bench exclude-app custom_app

# Re-include app in updates
bench include-app custom_app

Critical Rules

  • ALWAYS get-app before install-app — get downloads, install activates
  • ALWAYS backup before uninstall-app — it deletes app-related data
  • NEVER manually delete app folders — use bench remove-app

Workflow 4: bench update: What It Does

# Full update (pull + migrate + build + restart)
bench update

# Update specific app only
bench update --pull --app erpnext

# Skip build step
bench update --no-build

# Skip backup
bench update --no-backup

# Reset to upstream (DESTROYS local changes)
bench update --reset

bench update executes these steps in order:

  1. Backup all sites
  2. Pull latest code for all apps (git pull)
  3. Install Python/Node requirements
  4. Build static assets (bench build)
  5. Run migrations on all sites (bench migrate)
  6. Restart bench processes

Critical Rules

  • ALWAYS run bench update in a screen/tmux session — it takes time
  • NEVER use --reset in production without understanding it does git reset --hard
  • ALWAYS test updates on staging first

Workflow 5: bench migrate

# Migrate specific site
bench --site mysite migrate

# Migrate all sites
bench --site all migrate

# Check if safe to migrate (no pending jobs)
bench --site mysite ready-for-migration

What bench migrate does:

  1. Runs schema sync (DocType changes → database)
  2. Runs patches (data migrations)
  3. Rebuilds search index
  4. Syncs translations
  5. Rebuilds Dashboard cache

When to Migrate

  • After bench update (done automatically)
  • After changing hooks.py
  • After adding/modifying DocTypes
  • After pulling code changes
  • NEVER skip migrate after code changes — leads to schema mismatches

Workflow 6: bench build

# Build all apps
bench build

# Build specific app
bench build --app myapp

# Build with bundle analyzer
bench build --app myapp --production

# Watch mode (auto-rebuild on file changes)
bench watch

When to Build

  • After changing JS/CSS files
  • After bench get-app (done automatically)
  • After modifying package.json
  • ALWAYS build after modifying client-side assets

Workflow 7: Console and Database Access

# IPython console (with Frappe loaded)
bench --site mysite console
# In console:
# >>> frappe.get_doc("Sales Invoice", "INV-001")
# >>> frappe.db.sql("SELECT name FROM `tabUser` LIMIT 5")

# Auto-reload on code changes
bench --site mysite console --autoreload

# MariaDB shell
bench --site mysite mariadb
# >>> SELECT name, email FROM tabUser LIMIT 5;

# PostgreSQL shell
bench --site mysite postgres

# Execute a method directly
bench --site mysite execute myapp.tasks.daily_cleanup
bench --site mysite execute myapp.api.process --kwargs '{"name": "INV-001"}'

# Make authenticated request as Administrator
bench --site mysite request GET /api/resource/User

Workflow 8: Backup and Restore

# Backup (database + files)
bench --site mysite backup
# Creates: sites/mysite/private/backups/
#   YYYY-MM-DD_HHMMSS-mysite-database.sql.gz
#   YYYY-MM-DD_HHMMSS-mysite-files.tar
#   YYYY-MM-DD_HHMMSS-mysite-private-files.tar

# Backup all sites
bench backup-all-sites

# Backup with encryption
bench --site mysite backup --backup-encryption-key mykey

# Restore from backup
bench --site mysite restore /path/to/database.sql.gz

# Restore with files
bench --site mysite restore /path/to/database.sql.gz \
  --with-public-files /path/to/files.tar \
  --with-private-files /path/to/private-files.tar

# Partial restore
bench --site mysite partial-restore /path/to/database.sql.gz

Critical Rules

  • ALWAYS backup before bench update, uninstall-app, or drop-site
  • Backups older than 24 hours auto-deleted by default — configure keep_backups_for_hours
  • ALWAYS test restore on a staging site before relying on a backup

Workflow 9: Scheduler and Background Jobs

# Enable/disable scheduler
bench --site mysite scheduler enable
bench --site mysite scheduler disable
bench --site mysite scheduler pause
bench --site mysite scheduler resume

# Check scheduler health
bench doctor

# View queued jobs
bench show-pending-jobs

# Purge pending jobs
bench --site mysite purge-jobs

# Manually trigger scheduler event
bench --site mysite trigger-scheduler-event hourly

# Start worker manually (for debugging)
bench worker --queue short

Workflow 10: Multi-Tenancy

DNS-Based Routing (Recommended)

# Enable DNS multi-tenancy
bench config dns_multitenant on

# Create sites with proper hostnames
bench new-site site1.example.com --admin-password admin
bench new-site site2.example.com --admin-password admin

# Regenerate nginx config
bench setup nginx

# Reload nginx
sudo service nginx reload

Requests are routed by matching the Host header to site names.

Port-Based Routing (Alternative)

bench config dns_multitenant off
bench new-site site2.localhost --admin-password admin
bench set-nginx-port site2.localhost 8082
bench setup nginx
sudo service nginx reload

Custom Domain Mapping

# Add domain to site
bench setup add-domain site1.example.com --site mysite
bench setup nginx
sudo service nginx reload

Configuration: common_site_config.json

Located at sites/common_site_config.json — applies to ALL sites.

Essential Keys

KeyDefaultPurpose
background_workers1Number of background job workers
developer_modefalseAuto-sync DocType changes to files
dns_multitenantfalseEnable DNS-based multi-tenancy
gunicorn_workers2Web server worker count (min: 2)
maintenance_mode0Take all sites offline
pause_scheduler0Pause job scheduler
serve_default_siteDefault site when host not matched
server_script_enabledfalseEnable Server Scripts
scheduler_tick_interval60Seconds between scheduler checks
webserver_port8000Development server port
socketio_port9000Socket.IO port
live_reloadfalseAuto-reload on asset rebuild

Redis Configuration

KeyDefault
redis_cacheredis://localhost:13000
redis_queueredis://localhost:11000
redis_socketioredis://localhost:13000

Setting Config Values

# Set common config (all sites)
bench config set-common-config -c background_workers 4
bench config set-common-config -c developer_mode 1

# Set site-specific config
bench --site mysite set-config developer_mode 1
bench --site mysite set-config maintenance_mode 1

# View current config
bench --site mysite show-config

Configuration: site_config.json

Per-site config at sites/<sitename>/site_config.json.

Mandatory Keys

KeyPurpose
db_typemariadb or postgres
db_nameDatabase name
db_passwordDatabase password

Important Optional Keys

KeyPurpose
admin_passwordAdministrator initial password
host_nameFull site URL (with protocol)
install_appsApps to install on restore/reinstall
allow_corsCORS origins ("*", URL, or array)
max_file_sizeUpload limit (default: 10MB)
mute_emailsDisable all outgoing email
loggingDebug level (0-2, level 2 shows SQL queries)

Environment Variable Overrides

Environment variables override config files. Key mappings: FRAPPE_REDIS_QUEUE, FRAPPE_REDIS_CACHE, FRAPPE_DB_HOST, FRAPPE_DB_PORT, FRAPPE_DB_NAME, FRAPPE_DB_PASSWORD.

Priority: Environment Variable > site_config.json > common_site_config.json > Default


Production Setup

sudo bench setup production frappe-user   # nginx + supervisor + fail2ban
bench setup lets-encrypt mysite.example.com  # SSL
sudo bench restart                          # Restart services
bench disable-production                    # Back to development

Version Differences

FeatureV14V15V16
bench initYesYesYes
Scheduler tick interval~240s~240s60s
db_user config (separate)NoNoYes
console --autoreloadNoYesYes
trim-tables commandNoYesYes
trim-database commandNoYesYes
request commandNoYesYes
Gettext translationsNoNoYes

Reference Files

FileContents
commands.mdFull command reference with all options
examples.mdCommon workflow examples
custom-commands.mdCreating custom bench CLI commands with Click
anti-patterns.mdCommon bench mistakes and fixes

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.12%
按下载量换算70

Claude

31.91%
按下载量换算62

Cursor

20.1%
按下载量换算39

Gemini CLI

9.37%
按下载量换算18

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

未通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills