A skill your agent uses when implementing client-side form features in Frappe/ERPNext: field visibility, cascading filters, calculated fields, custom buttons, server calls, form validation, child…
Install the "frappe-impl-clientscripts" agent skill from https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/impl/frappe-impl-clientscripts into .claude/skills/frappe-impl-clientscripts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frappe-impl-clientscripts", 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.
Type 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.
skills CLI
$ npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-impl-clientscripts -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "frappe-impl-clientscripts" agent skill from https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/impl/frappe-impl-clientscripts into .agents/skills/frappe-impl-clientscripts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frappe-impl-clientscripts", 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.
skills CLI
$ npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-impl-clientscripts -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "frappe-impl-clientscripts" agent skill from https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/impl/frappe-impl-clientscripts into .cursor/skills/frappe-impl-clientscripts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frappe-impl-clientscripts", 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.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-impl-clientscripts -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "frappe-impl-clientscripts" agent skill from https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/impl/frappe-impl-clientscripts into .gemini/skills/frappe-impl-clientscripts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frappe-impl-clientscripts", 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.
Installs 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).
skills CLI
$ npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-impl-clientscripts -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "frappe-impl-clientscripts" agent skill from https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/impl/frappe-impl-clientscripts into .github/skills/frappe-impl-clientscripts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frappe-impl-clientscripts", 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.
skills CLI
$ npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-impl-clientscripts -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "frappe-impl-clientscripts" agent skill from https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/impl/frappe-impl-clientscripts into .opencode/skills/frappe-impl-clientscripts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "frappe-impl-clientscripts", 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.
Facts
Skill name
frappe-impl-clientscripts
GitHub stars
187
Token cost
~2.4k tokens
SKILL.md length
561 words
Files
4 (incl. references)
Skills in repo
61
Repo updated
First seen
Licence
MIT
At a glance
A skill your agent uses when implementing client-side form features in Frappe/ERPNext: field visibility, cascading filters, calculated fields, custom buttons, server calls, form validation, child…
Works in 7 steps: Navigate to Setup > Client Script (or… → Select the target DocType → ALWAYS set Enabled checkbox → …
Implementing client-side form features in Frappe/ERPNext: field visibility
SKILL.md covers Quick Decision: Client or…, Workflow 1: Create a Client…, Workflow 2: Choose the Right… and Workflow 3: Field Visibility…, plus 9 more sections
Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
What it does
Frappe Impl Clientscripts is an agent skill from Impertio-Studio/Frappe_Claude_Skill_Package. Use when implementing client-side form features in Frappe/ERPNext: field visibility, cascading filters, calculated fields, custom buttons, server calls, form validation, child table logic, debugging. Covers step-by-step workflows from Setup Client Script through migration to custom app JS. Keywords: how to implement client script, form logic workflow, dynamic UI, calculate fields, frm.call, frappe.call, frappe.xcall, client script testing, field dependency, custom button, how to hide field, show field based on…
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/decision-tree.md`, `references/examples.md` and `references/workflows.md`). Compatibility notes: Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.
It sits in Development, covering Forms and validation and Debugging. The repository describes itself as: 60 deterministic Claude AI skills for Frappe Framework & ERPNext v14-v16 development and operations. The licence is MIT.
When your agent uses it
Implementing client-side form features in Frappe/ERPNext: field visibility
Cascading filters
Calculated fields
Form validation
Example prompts
“/frappe-impl-clientscripts”
Requirements
Python 3
Compatibility (from SKILL.md): Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.
Workflow steps
7 steps, taken from the first numbered list in SKILL.md.
1Navigate to Setup > Client Script (or type "New Client Script" in awesomebar)
2Select the target DocType
3ALWAYS set Enabled checkbox
4Write script using the frappe.ui.form.on pattern
5Save — script is active immediately (no restart needed)
6Open target DocType form → test behavior
7Open browser DevTools Console (F12) for debugging
What it can do on your machine
Read from SKILL.md and the folder at commit 36cfa80. It shows what the files ask for, not the result of running them.
Tool permissions
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.
Runs code
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript and python).
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Compatibility
Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.
From compatibility in the SKILL.md frontmatter.
Context cost
Frappe Impl Clientscripts loads about 2.4k tokens when it runs, and up to ~7.9k if it reads all its reference files. Until then it costs about 150 tokens; SKILL.md has 561 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~150
When it runs· the whole SKILL.md, loaded when a task matches
~2.4k
With references· SKILL.md plus every file in references/, read only if the agent opens them
~7.9k
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.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated 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.
Download SKILL.mdSave it as .claude/skills/frappe-impl-clientscripts/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
frappe-impl-clientscripts
description
Use when implementing client-side form features in Frappe/ERPNext: field visibility, cascading filters, calculated fields, custom buttons, server calls, form validation, child table logic, debugging. Covers step-by-step workflows from Setup > Client Script through migration to custom app JS. Keywords: how to implement client script, form logic workflow, dynamic UI, calculate fields, frm.call, frappe.call, frappe.xcall, client script testing, field dependency, custom button, how to hide field, show field based on value, add button to form, calculate total, dynamic form.
compatibility
Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.
license
MIT
metadata.author
OpenAEC-Foundation
metadata.version
2.0
Client Scripts — Implementation Workflows
Step-by-step workflows for building client-side form features. For exact API syntax, see frappe-syntax-clientscripts.
MUST the logic ALWAYS execute (imports, API, Data Import)?
├── YES → Server Script or Controller
└── NO → What is the goal?
├── UI feedback / UX → Client Script
├── Show/hide fields → Client Script
├── Link filters → Client Script
├── Data validation → BOTH (client for UX, server for integrity)
└── Calculations → Client for display, server for critical
Rule: ALWAYS use Client Scripts for UX. ALWAYS back critical logic with server-side validation.
Workflow 1: Create a Client Script via UI
Navigate to Setup > Client Script (or type "New Client Script" in awesomebar)
Select the target DocType
ALWAYS set Enabled checkbox
Write script using the frappe.ui.form.on pattern
Save — script is active immediately (no restart needed)
Open target DocType form → test behavior
Open browser DevTools Console (F12) for debugging
When to migrate to custom app: ALWAYS migrate when the script exceeds 50 lines, needs version control, or must be deployed across environments.
Workflow 2: Choose the Right Event
WHAT DO YOU WANT?
├── Set link filters → setup (once, earliest lifecycle)
├── Add custom buttons → refresh (re-added after each render)
├── Show/hide fields → refresh + {fieldname} (BOTH needed)
├── Validate before save → validate (frappe.throw stops save)
├── Action after save → after_save
├── Calculate on change → {fieldname} handler
├── Child row added → {tablename}_add
├── Child row removed → {tablename}_remove
├── Child field changed → Child DocType: {fieldname}
├── One-time init → setup or onload
└── After full DOM render → onload_post_render
Goal: Show "delivery_date" only when "requires_delivery" is checked.
Step 1: Implement BOTH refresh and fieldname events:
javascript
frappe.ui.form.on('Sales Order', {
refresh(frm) {
frm.trigger('requires_delivery'); // Set initial state
},
requires_delivery(frm) {
frm.toggle_display('delivery_date', frm.doc.requires_delivery);
frm.toggle_reqd('delivery_date', frm.doc.requires_delivery);
}
});
Why both?refresh sets state on form load. {fieldname} responds to user interaction. NEVER use only one — the form will show wrong state on load or on change.
Frappe Impl Clientscripts 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.
Frappe Impl Clientscripts compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Frappe Impl Clientscripts this skillImpertio-Studio/Frappe_Claude_Skill_Package
Generate and use standalone schema evaluators (validation and annotation collection without full type generation), and understand the schema evaluation program that every generated type validates…
A skill your agent uses whenever code will build, return, fetch, or execute SQL that runs against a user's real Postgres database — even when the request reads like an ordinary feature or bug fix…
A skill your agent uses when building ERPNext/Frappe API integrations (v14/v15/v16) including REST API, RPC API, authentication, webhooks, and rate limiting.
A skill your agent uses when implementing client-side form features in Frappe/ERPNext: field visibility, cascading filters, calculated fields, custom buttons, server calls, form validation, child…. Frappe Impl Clientscripts is an agent skill from Impertio-Studio/Frappe_Claude_Skill_Package. Use when implementing client-side form features in Frappe/ERPNext: field visibility, cascading filters, calculated fields, custom buttons, server calls, form validation, child table logic, debugging.
When should I use Frappe Impl Clientscripts?
Frappe Impl Clientscripts fits situations like: implementing client-side form features in Frappe/ERPNext: field visibility; cascading filters; calculated fields; form validation.
How do I install Frappe Impl Clientscripts in Claude Code?
Run `npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-impl-clientscripts -a claude-code`. Or copy the skill folder (skills/source/impl/frappe-impl-clientscripts in Impertio-Studio/Frappe_Claude_Skill_Package) into .claude/skills/frappe-impl-clientscripts in your project. Claude Code loads it when a task matches its description.
How do I install Frappe Impl Clientscripts in Codex?
Run `npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-impl-clientscripts -a codex`. Or copy the skill folder (skills/source/impl/frappe-impl-clientscripts in Impertio-Studio/Frappe_Claude_Skill_Package) into .agents/skills/frappe-impl-clientscripts in your project. Codex loads it when a task matches its description.
Can I use Frappe Impl Clientscripts in Cursor, Gemini CLI or GitHub Copilot?
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-impl-clientscripts -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-impl-clientscripts, .gemini/skills/frappe-impl-clientscripts, .github/skills/frappe-impl-clientscripts and .opencode/skills/frappe-impl-clientscripts in your project.
What does Frappe Impl Clientscripts need to run?
SKILL.md names no scripts, command-line tools or credentials: Frappe Impl Clientscripts is instructions for the agent only. Our summary lists: Python 3. Compatibility (from SKILL.md): Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16..
Does Frappe Impl Clientscripts access the network?
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Is Frappe Impl Clientscripts safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
What licence does Frappe Impl Clientscripts use?
Frappe Impl Clientscripts is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Frappe Impl Clientscripts use?
About 2.4k tokens (SKILL.md is roughly 9.7k 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 5.5k tokens, read only when the agent opens those files.
What are the alternatives to Frappe Impl Clientscripts?
Skills that share tags, products or a category with Frappe Impl Clientscripts: Corvus Standalone Evaluator (corvus-dotnet/Corvus.JsonSchema, 199 stars), Safe SQL Execution (supabase/supabase, 111k stars), Trellis Session Insight (mindfold-ai/Trellis, 15k stars) and Native Data Fetching (CherryHQ/cherry-studio-app, 4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Frappe Impl Clientscripts?
Impertio-Studio (a GitHub organization) maintains it in Impertio-Studio/Frappe_Claude_Skill_Package, which has 187 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on September 17, 2026.