Agent skill
mesop
Build Python-native web apps with Mesop. Triggers when users want to build, debug, or deploy Mesop applications, including AI chat interfaces, internal tools, and ML demos.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/mesop
SKILL.md
Mesop
Use this skill to build, debug, and deploy Mesop applications. Mesop is a Python-native UI framework that enables developers to build web apps without writing frontend code (HTML/CSS/JS).
Quick Triage
- Use this skill for pure Python web UIs, especially for AI/ML demos and internal tools.
- Do NOT use this skill if the user specifically requests a different Python framework (Streamlit, Gradio, Solara) unless they are asking for a comparison or migration.
- Do NOT use this skill for general Flask/FastAPI backend development unless it's specifically about mounting a Mesop app.
Workflow
- Setup: Install
mesopand createmain.py. - Define Page: Use
@me.page(path="/")to define the entry point. - Define State: Create a
@me.stateclassto hold session state (must be serializable). - Create Components: Build the UI tree using
me.box,me.text,me.input, etc. - Handle Events: Write event handler functions (regular or generator) to update state.
- Style: Apply styles using
me.Style(flexbox/grid) for layout and appearance. - Deploy: Deploy to Cloud Run, Docker, or Hugging Face Spaces.
Essential Patterns
Standard Import
Always use the standard alias:
import mesop as me
import mesop.labs as mel # For labs components like chat
State Management
State is session-scoped and must be serializable.
@me.stateclass
class State:
count: int = 0
input_value: str = "" # Immutable default
# items: list[str] = field(default_factory=list) # Mutable default pattern
Accessing State: state = me.state(State) inside components or event handlers.
Event Handlers
- Regular: Run to completion, then update UI.
- Generator:
yieldto stream UI updates (e.g., loading states, LLM streaming). MUST yield at the end. - Async: Use
async defandawaitfor concurrent operations.
Component Composition
Use with blocks for content components (parents):
with me.box(style=me.Style(display="flex")):
me.text("Child 1")
me.button("Child 2")
Key Usage
Use key to identify components for:
- Resetting state (change key to re-render)
- Focus management (
me.focus_component) - Scroll targeting (
me.scroll_into_view) - Reusing event handlers (access
e.key)
Common Pitfalls
- Closure Variables: Do NOT rely on closure variables in event handlers; they may be stale. Use
keyor state instead. - Input Race Conditions: Avoid setting
valueon inputs unless necessary. Useon_blurinstead ofon_inputfor performance, or track "initial" vs "current" value if bidirectional binding is needed. - Mutable Defaults: Never use mutable types (list, dict) as default values in
@me.stateclass. Usedataclasses.field(default_factory=...). - Global State: Global variables are shared across ALL users. Use
@me.stateclassfor per-session state.
Reference Map
- Core Patterns:
references/core-patterns.md(State, Events, Streaming, Navigation) - Components:
references/components-reference.md(API reference for all components) - Styling & Layouts:
references/styling-and-layouts.md(CSS-in-Python, Flexbox, Grid, Theming) - Deployment:
references/deployment-and-config.md(Cloud Run, Docker, Config, Security) - Web Components:
references/web-components.md(Custom JS integration, Lit)
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?