PR Review Provider
yansongda/pay
A skill your agent uses when reviewing PRs that add or modify a payment Provider in yansongda/pay - covers plugin pipeline, multi-tenant safety, signature verification, docs, and naming conventions.
A skill your agent uses when running bench commands, managing sites, configuring multi-tenancy, or setting up domains.
$ npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-ops-bench -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Impertio-Studio/Frappe_Claude_Skill_Package frappe-ops-bench --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/source/ops/frappe-ops-bench .claude/skills/frappe-ops-bench && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "frappe-ops-bench" agent skill from https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/ops/frappe-ops-bench into .claude/skills/frappe-ops-bench/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frappe-ops-bench", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/ops/frappe-ops-benchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-ops-bench -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Impertio-Studio/Frappe_Claude_Skill_Package frappe-ops-bench --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/source/ops/frappe-ops-bench .agents/skills/frappe-ops-bench && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "frappe-ops-bench" agent skill from https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/ops/frappe-ops-bench into .agents/skills/frappe-ops-bench/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frappe-ops-bench", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-ops-bench -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Impertio-Studio/Frappe_Claude_Skill_Package frappe-ops-bench --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/source/ops/frappe-ops-bench .cursor/skills/frappe-ops-bench && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "frappe-ops-bench" agent skill from https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/ops/frappe-ops-bench into .cursor/skills/frappe-ops-bench/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frappe-ops-bench", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package.git --path skills/source/ops/frappe-ops-bench--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-ops-bench -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Impertio-Studio/Frappe_Claude_Skill_Package frappe-ops-bench --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/source/ops/frappe-ops-bench .gemini/skills/frappe-ops-bench && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "frappe-ops-bench" agent skill from https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/ops/frappe-ops-bench into .gemini/skills/frappe-ops-bench/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frappe-ops-bench", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Impertio-Studio/Frappe_Claude_Skill_Package frappe-ops-benchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-ops-bench -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/source/ops/frappe-ops-bench .github/skills/frappe-ops-bench && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "frappe-ops-bench" agent skill from https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/ops/frappe-ops-bench into .github/skills/frappe-ops-bench/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frappe-ops-bench", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-ops-bench -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Impertio-Studio/Frappe_Claude_Skill_Package frappe-ops-bench --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/source/ops/frappe-ops-bench .opencode/skills/frappe-ops-bench && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "frappe-ops-bench" agent skill from https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/ops/frappe-ops-bench into .opencode/skills/frappe-ops-bench/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frappe-ops-bench", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
frappe-ops-benchA skill your agent uses when running bench commands, managing sites, configuring multi-tenancy, or setting up domains.
Frappe Ops Bench is an agent skill from Impertio-Studio/Frappe_Claude_Skill_Package. Use when running bench commands, managing sites, configuring multi-tenancy, or setting up domains. Prevents misconfigured bench environments, broken site routing, and DNS mismatches. Covers bench CLI commands, site creation, bench init, multi-tenancy setup, DNS-based routing, common-site-config. Keywords: bench, site, multi-tenancy, domains, bench init, bench new-site, bench setup, commonsiteconfig, bench command not working, site setup, multi-tenant, domain routing, new site..
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `references/anti-patterns.md`, `references/commands.md` and `references/custom-commands.md`). Compatibility notes: Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.
It sits in Backend & APIs, covering Multi-tenancy. The repository describes itself as: 60 deterministic Claude AI skills for Frappe Framework & ERPNext v14-v16 development and operations. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 36cfa80. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
FRAPPE_DB_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.
From compatibility in the SKILL.md frontmatter.
Frappe Ops Bench loads about 3.3k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 125 tokens; SKILL.md has 704 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
sudo service nginx reloadsudo service nginx reloadsudo service nginx reloadsudo bench setup production frappe-user # nginx + supervisor + fail2bansudo bench restart # Restart servicesAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Impertio-Studio/Frappe_Claude_Skill_Package at commit 36cfa80, republished under its MIT licence (© Impertio-Studio). 704 words, ~3,313 tokens.
.claude/skills/frappe-ops-bench/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Complete bench CLI reference for site management, app lifecycle, configuration, and multi-tenancy.
Version: v14/v15/v16
| Task | Command |
|---|---|
| Create bench | bench init myproject --frappe-branch version-15 |
| Create site | bench new-site mysite.localhost --admin-password admin |
| Set default site | bench use mysite.localhost |
| Get app | bench get-app erpnext --branch version-15 |
| Install app | bench --site mysite install-app erpnext |
| Start dev server | bench start |
| Run migrations | bench --site mysite migrate |
| Build assets | bench build --app myapp |
| Backup site | bench --site mysite backup |
| Restore backup | bench --site mysite restore /path/to/backup.sql.gz |
| Open console | bench --site mysite console |
| Open DB shell | bench --site mysite mariadb |
| Check scheduler | bench doctor |
| View pending jobs | bench show-pending-jobs |
| Update everything | bench update |
| Drop site | bench drop-site mysite --force |
# 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 myprojectWhat 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--frappe-branch to pin Frappe version# 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 erpnextbench use mysite.localhost
# OR set environment variable for current session:
export FRAPPE_SITE=mysite.localhostbench drop-site mysite.localhost --force
# Deletes database and archives site directorysites/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# 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_appget-app before install-app — get downloads, install activatesuninstall-app — it deletes app-related databench remove-app# 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 --resetbench update executes these steps in order:
git pull)bench build)bench migrate)bench update in a screen/tmux session — it takes time--reset in production without understanding it does git reset --hard# 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-migrationWhat bench migrate does:
bench update (done automatically)# 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 watchbench get-app (done automatically)package.json# 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# 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.gzbench update, uninstall-app, or drop-sitekeep_backups_for_hours# 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# 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 reloadRequests are routed by matching the Host header to site names.
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# Add domain to site
bench setup add-domain site1.example.com --site mysite
bench setup nginx
sudo service nginx reloadLocated at sites/common_site_config.json — applies to ALL sites.
| Key | Default | Purpose |
|---|---|---|
background_workers | 1 | Number of background job workers |
developer_mode | false | Auto-sync DocType changes to files |
dns_multitenant | false | Enable DNS-based multi-tenancy |
gunicorn_workers | 2 | Web server worker count (min: 2) |
maintenance_mode | 0 | Take all sites offline |
pause_scheduler | 0 | Pause job scheduler |
serve_default_site | — | Default site when host not matched |
server_script_enabled | false | Enable Server Scripts |
scheduler_tick_interval | 60 | Seconds between scheduler checks |
webserver_port | 8000 | Development server port |
socketio_port | 9000 | Socket.IO port |
live_reload | false | Auto-reload on asset rebuild |
| Key | Default |
|---|---|
redis_cache | redis://localhost:13000 |
redis_queue | redis://localhost:11000 |
redis_socketio | redis://localhost:13000 |
# 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-configPer-site config at sites/<sitename>/site_config.json.
| Key | Purpose |
|---|---|
db_type | mariadb or postgres |
db_name | Database name |
db_password | Database password |
| Key | Purpose |
|---|---|
admin_password | Administrator initial password |
host_name | Full site URL (with protocol) |
install_apps | Apps to install on restore/reinstall |
allow_cors | CORS origins ("*", URL, or array) |
max_file_size | Upload limit (default: 10MB) |
mute_emails | Disable all outgoing email |
logging | Debug level (0-2, level 2 shows SQL queries) |
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
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| Feature | V14 | V15 | V16 |
|---|---|---|---|
| bench init | Yes | Yes | Yes |
| Scheduler tick interval | ~240s | ~240s | 60s |
db_user config (separate) | No | No | Yes |
console --autoreload | No | Yes | Yes |
trim-tables command | No | Yes | Yes |
trim-database command | No | Yes | Yes |
request command | No | Yes | Yes |
| Gettext translations | No | No | Yes |
| File | Contents |
|---|---|
| commands.md | Full command reference with all options |
| examples.md | Common workflow examples |
| custom-commands.md | Creating custom bench CLI commands with Click |
| anti-patterns.md | Common bench mistakes and fixes |
© Impertio-Studio, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in skills/source/ops/frappe-ops-bench of Impertio-Studio/Frappe_Claude_Skill_Package.
Open the folder on GitHubat commit 36cfa80
Frappe Ops Bench next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Frappe Ops Bench this skillImpertio-Studio/Frappe_Claude_Skill_Package | 188 | — | ~3.3k | Automated safety check: Notes | MIT | |
| PR Review Provideryansongda/pay | 5.4k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Abp Authorizationabpframework/abp | 14k | — | ~1.3k | Automated safety check: Pass | LGPL-3.0 | |
| Django Access Reviewgetsentry/skills | 1k | 3 repos | ~2.6k | Automated safety check: Notes | Apache-2.0 | |
| Backend Dev Guidelineslitefuse/litefuse | 100 | 1 repos | ~5.8k | Automated safety check: Pass | Custom licence | |
| Ecto Persistence Patternsgeorgeguimaraes/elixir-agent-tools | 184 | — | ~1.2k | Automated safety check: Pass | Apache-2.0 |
yansongda/pay
A skill your agent uses when reviewing PRs that add or modify a payment Provider in yansongda/pay - covers plugin pipeline, multi-tenant safety, signature verification, docs, and naming conventions.
abpframework/abp
ABP permission system - PermissionDefinitionProvider, [Authorize] attribute, CheckPolicyAsync, IsGrantedAsync, ICurrentUser, IPermissionManager, multi-tenancy side.
getsentry/skills
Django access control and IDOR security review. An agent skill from getsentry/skills.
litefuse/litefuse
Comprehensive backend development guide for Litefuse's Next.js 14/tRPC/Express/TypeScript monorepo.
georgeguimaraes/elixir-agent-tools
Designs and debugs Elixir persistence with Ecto: schemas, changesets, queries, preloads, migrations and multi-tenancy, kept within application contexts.
marckohlbrugge/37signals-skills
Apply Rails security and multi-tenant safety practices including scoped queries, SSRF defenses, rate limiting, and tenant-scoped realtime updates.
Impertio-Studio/Frappe_Claude_Skill_Package
Deploy HTML/CSS websites to ERPNext/Frappe (v15/v16) as Web Pages via the REST API.
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when designing multi-app Frappe architectures, deciding whether to split functionality into separate apps, or implementing cross-app communication patterns.
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when debugging Frappe errors, using bench console for live inspection, analyzing tracebacks, or reading Frappe log files.
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when receiving vague or unclear ERPNext/Frappe development requests that need interpretation.
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when migrating a Frappe app between major versions, detecting breaking API changes, or resolving post-migration errors.
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when reviewing or validating Frappe/ERPNext code against best practices and common pitfalls.
Categories
A skill your agent uses when running bench commands, managing sites, configuring multi-tenancy, or setting up domains. Frappe Ops Bench is an agent skill from Impertio-Studio/Frappe_Claude_Skill_Package. Use when running bench commands, managing sites, configuring multi-tenancy, or setting up domains.
Frappe Ops Bench fits situations like: running bench commands; configuring multi-tenancy; setting up domains.
Run `npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-ops-bench -a claude-code`. Or copy the skill folder (skills/source/ops/frappe-ops-bench in Impertio-Studio/Frappe_Claude_Skill_Package) into .claude/skills/frappe-ops-bench in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-ops-bench -a codex`. Or copy the skill folder (skills/source/ops/frappe-ops-bench in Impertio-Studio/Frappe_Claude_Skill_Package) into .agents/skills/frappe-ops-bench in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-ops-bench -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/frappe-ops-bench, .gemini/skills/frappe-ops-bench, .github/skills/frappe-ops-bench and .opencode/skills/frappe-ops-bench in your project.
Going by SKILL.md and its folder, Frappe Ops Bench needs the command-line tools its instructions call (git) and credentials named FRAPPE_DB_PASSWORD. Our summary lists: Python 3. Compatibility (from SKILL.md): Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16..
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Frappe Ops Bench is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Frappe Ops Bench: PR Review Provider (yansongda/pay, 5.4k stars), Abp Authorization (abpframework/abp, 14k stars), Django Access Review (getsentry/skills, 1k stars) and Backend Dev Guidelines (litefuse/litefuse, 100 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Impertio-Studio (a GitHub organization) maintains it in Impertio-Studio/Frappe_Claude_Skill_Package, which has 188 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on September 17, 2026.
Source: Impertio-Studio/Frappe_Claude_Skill_Package on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.