frappe-impl-ui-components

Implement responsive Frappe UI dialogs, lists, calendars, Kanban boards, and realtime socket updates.

163|53|Updated Jan 14, 2026
One-click install
npx skills add https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-impl-ui-components-impertio-studio
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: frappe-impl-ui-components
Source: https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/impl/frappe-impl-ui-components
Command: npx skills add https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-impl-ui-components-impertio-studio

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill prevents common Frappe UI failures where dialogs freeze, list/table definitions render incorrectly, and realtime events don’t fire as expected, leading to buggy client behavior and confusing user experiences.

Core Features & Use Cases

  • Dialog-first UI workflows: Create robust frappe.ui.Dialog flows (including tables and multi-step wizards) while enforcing safe async patterns.
  • Production-ready list customization: Configure {doctype}_list.js with correct indicators, formatters, and row actions that refresh safely.
  • Realtime updates done right: Pair frappe.publish_realtime with correct after_commit=True and subscribe via frappe.realtime.on for live UI refresh.
  • Pages and view components: Build custom frappe.ui.Page tool pages, configure Kanban boards for the right DocTypes, and set up calendar views via {doctype}_calendar.js.
  • Scanner and UI safety guardrails: Implement barcode/QR flows and apply anti-pattern rules that avoid freezes, wrong error handling, and missing field mappings.

Quick Start

Use the frappe-impl-ui-components skill to design a custom dialog that asks for input, calls an async frappe.call, and updates a list in realtime without freezing the browser.

Frequently Asked Questions about frappe-impl-ui-components

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a Frappe dialog that calls an async function without freezing the UI?▼

To prevent a Frappe UI Dialog from freezing during asynchronous operations, hide or disable action buttons inside the callback function of your `frappe.call`, ensuring the interface safely awaits server responses without locking up.

Why does my Frappe realtime socket update not fire on the client side?▼

Frappe realtime socket updates fail to fire when `frappe.publish_realtime` is not paired with `after_commit=True`, ensuring the event only dispatches to subscribed clients after the database transaction successfully completes.

How do I customize a Frappe list view with indicators and formatters?▼

Customize Frappe list views by configuring `{doctype}_list.js` with valid indicator and formatter patterns, ensuring correct row rendering and safe refreshes when applying custom row actions to data-rich lists.

Can I set up a Kanban board for any Frappe DocType?▼

Frappe Kanban boards require specific prerequisites: the target DocType must have a valid select field configured to represent Kanban columns before the board can render and function correctly.

What is the correct way to map fields in a Frappe calendar view?▼

Mapping fields in a Frappe calendar view requires configuring `{doctype}_calendar.js` with proper field mappings, ensuring the calendar accurately maps start dates, end dates, and event titles for correct rendering.

How do I handle realtime subscription cleanup in a custom Frappe page?▼

Handle realtime subscription cleanup in custom Frappe pages by explicitly unsubscribing from `frappe.realtime.on` events during page teardown, preventing memory leaks and duplicate event triggers during navigation.