AI assistant (Cursor, Codex, Gemini)
Teach your editor how to write Resuma — reactive view!, HtmlTheme / Popup, Flow, SeoKit, and the traps that freeze UI or clobber a live theme — with one CLI command.
Skill vs MCP — which one?
| Agent skill (recommended) | MCP server | |
|---|---|---|
| Best for | Writing & fixing Resuma code in any project | Tools that call APIs, DBs, or live runtime state |
| Setup | resuma install skill | Custom server + editor MCP config (not bundled yet) |
| Editors | Cursor, Codex/agents, any SKILL.md-compatible agent | Cursor, Claude Desktop, etc. |
Start with the skill. It encodes Resuma patterns (signals, Show, HtmlTheme, Popup, Flow, #[server], SeoKit) so the model ships working apps faster. An official Resuma MCP may come later for docs search and resuma routes --generate as tools.
Install the skill (one command)
# Global — available in all projects (Cursor)
resuma install skill
# Only this repo / monorepo
resuma install skill --project
# Codex-style agents path (~/.agents/skills/)
resuma install skill --target agents
# Cursor + agents
resuma install skill --target all
# See paths without writing
resuma install skill --list
# Overwrite existing SKILL.md
resuma install skill --forceWhere files land
~/.cursor/skills/resuma/SKILL.md— Cursor personal skill.cursor/skills/resuma/SKILL.md— committed with your app (team shares the same guidance)~/.agents/skills/resuma/SKILL.md— compatible with open agent skills ecosystems
Gemini / other editors
Copy SKILL.md from resuma install skill --list into your editor's rules or instructions file, or run resuma install skill --project and point the editor at .cursor/skills/resuma/SKILL.md.
What the skill covers
{signal}vs{signal.get()}inview!(client reactivity)- Reactive
<Show when={…}> js!:event.currentTargetis the handler node (notdocument)FlowApp, file-based pages (page(req: FlowRequest)),resuma routes --generate#[server],#[submit],#[load]HtmlTheme/ThemeSwitch/data-r-theme— livehtml[data-theme], not a layoutonClick- Native
Popup/Modal/GestureView/<For virtual>(/_resuma/ui.jsis a lazy fallback only) __resuma.announce/measure/storage/set_page_dir/set_page_theme- SPA must not copy
data-themefrom prefetch; skip View Transitions while a popover is open ClientComponent::lazySeoKit(inprelude),SITE_URL,set_page_title,with_sitemap_exclude,/robots.txt//llms.txt— callwith_seo_kitonce (do not remount robots)- Deploy as a long-running Docker/Fly process — not Lambda or Cloudflare Workers
- Resuma OS: workers, queue, scheduler, Flow widgets
- Debugging checklist (handler chunks, CSRF, SITE_URL, theme boot, streaming
#r-live)
Verify
resuma doctor
# In Cursor: ask "create a Resuma counter with view! and signal"
# The agent should use {count} not {count.get()} in the template.CLI reference · Getting started · Theme · Popup · SEO, GEO & AEO