Audit, generate, update, and lint AGENTS.md files across all projects. Use when asked to check project context files, scaffold AGENTS.md for new projects, update stale ones, or run a cross-project audit.
日本語の概要は準備中です。原文の説明を表示しています。
Manage design work in Penpot — create projects, organize pages, build components, export assets, review designs visually, and handle design-to-code handoff. Use when asked to create designs, manage Penpot projects, build components, export tokens, set up a new design project, review a design, take screenshots, or show what something looks like.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Step-by-step workflows for managing design work in Penpot via the pi-penpot extension.
When starting a new design project:
Design System — shared components, tokens, and stylesWireframes — low-fidelity layouts and flowsDashboard, Settings, Onboarding)Use penpot_page tool actions. All shapes support fills, opacity, and rotation on creation.
Rectangles and frames also support r1-r4 for border radius on creation:
penpot_page add-rectangle fileId=X pageId=Y x=0 y=0 width=200 height=100
fills=[{fillColor: "#1E293B", fillOpacity: 1}]
r1=12 r2=12 r3=12 r4=12
Text supports fontSize, fontWeight, fontFamily, fontColor on creation:
penpot_page add-text fileId=X pageId=Y x=0 y=0 width=200 height=40
text="Hello World"
fontSize="24" fontWeight="700" fontFamily="sourcesanspro" fontColor="#FFFFFF"
sourcesanspro — Source Sans Pro (default, always available)create-font-variantAlways pass fontSize and fontWeight as strings: "24" not 24, "700" not 700.
After creation, use modify-shape to add advanced styling. First-class params:
penpot_page modify-shape fileId=X pageId=Y shapeId=Z r1=16 r2=16 r3=16 r4=16
r1 = top-left, r2 = top-right, r3 = bottom-right, r4 = bottom-leftpenpot_page modify-shape fileId=X pageId=Y shapeId=Z
shadow=[{
style: "drop-shadow",
color: {color: "#000000", opacity: 0.3},
offsetX: 0, offsetY: 4, blur: 12, spread: 0
}]
drop-shadow, inner-shadowpenpot_page modify-shape fileId=X pageId=Y shapeId=Z
blur={type: "layer-blur", value: 4}
layer-blur, background-blurpenpot_page modify-shape fileId=X pageId=Y shapeId=Z
strokes=[{strokeColor: "#7C3AED", strokeOpacity: 0.5, strokeWidth: 2, strokeAlignment: "inner"}]
inner, center, outersolid, dotted, dashed, mixed, nonepenpot_page modify-shape fileId=X pageId=Y shapeId=Z
textContent={
type: "root",
children: [{type: "paragraph-set", children: [{type: "paragraph", children: [{
text: "Updated text",
fontFamily: "sourcesanspro",
fontSize: "32",
fontWeight: "700",
fontStyle: "normal",
fillColor: "#FFFFFF",
fillOpacity: 1
}]}]}]
}
Use attrs as a catch-all for any shape property not covered above:
penpot_page modify-shape fileId=X pageId=Y shapeId=Z
attrs={hidden: true, blocked: false}
penpot get-file before manual API calls| Feature | Create | Modify | Notes |
|---|---|---|---|
| Position & size | ✅ | ✅ | x, y, width, height |
| Fills | ✅ | ✅ | Array of fill objects |
| Border radius | ✅ | ✅ | r1, r2, r3, r4 params |
| Shadows | ❌ | ✅ | shadow param, UUID auto-generated |
| Blur | ❌ | ✅ | blur param, UUID auto-generated |
| Strokes | ✅ | ✅ | strokes param |
| Text styling | ✅ | ✅ | fontSize/fontWeight/fontColor on create; textContent on modify |
| Opacity | ✅ | ✅ | 0-1 number |
| Rotation | ✅ | ✅ | degrees |
When you need to review your own work or the user asks you to review a design, capture actual rendered screenshots from Penpot's viewer.
penpot get-file fileId=<fileId>
penpot create-share-link fileId=<fileId> pages=[<pageId1>, <pageId2>] whoInspect="all"
Share links are required — Penpot's viewer won't render without either authentication or a share token.
The Penpot viewer URL format is:
https://penpot.e9n.dev/#/view?file-id=<fileId>&page-id=<pageId>§ion=interactions&index=0&share-id=<shareId>
Use Playwright to screenshot each page URL. Penpot is a complex ClojureScript SPA — wait 6+ seconds after navigation for it to render.
Cleanup: Always close the Playwright browser after capture to prevent leaking Chromium processes:
await browser.close();
Save screenshots to /tmp/penpot-<page-name>.png, then read them to view inline. After viewing, delete the temporary file to avoid accumulating disk usage:
rm /tmp/penpot-<page-name>.png
After viewing the screenshot, evaluate:
Follow atomic design methodology:
Use slash-separated categories: category/component-name/variant
buttons/primary/defaultbuttons/primary/hoverforms/text-input/fillednavigation/sidebar/collapsedEvery interactive component needs these states:
Design at these breakpoints (aligned with Tailwind):
Use Penpot's grid and layout features:
When preparing designs for developer handoff:
Export design tokens as JSON:
{
"colors": { "primary-500": "#7c6ff0", ... },
"spacing": { "1": "4px", "2": "8px", ... },
"typography": { "heading-1": { "size": "36px", "weight": 700, "lineHeight": 1.2 } },
"radii": { "sm": "4px", "md": "8px", "lg": "12px" },
"shadows": { "sm": "0 1px 2px rgba(0,0,0,0.05)", ... }
}
Map components to shadcn-svelte — document which Penpot component maps to which shadcn component and what customization is needed
Annotate specs — add notes on each page for:
Export assets — SVGs for icons and illustrations, optimized images
Use the pi-penpot extension's three tools:
penpot — org-level: projects, files, teams, libraries, webhooks, snapshots, share linkspenpot_page — design: pages, shapes (create/modify/delete/move), componentspenpot_comment — collaboration: comment threads and repliespenpot get-file returns pageIds and file featuresget-file must be passed back in update-fileまだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Audit, generate, update, and lint AGENTS.md files across all projects. Use when asked to check project context files, scaffold AGENTS.md for new projects, update stale ones, or run a cross-project audit.
日本語の概要は準備中です。原文の説明を表示しています。
Draft, edit, and publish blog posts for e9n.dev. Use when creating new posts, editing drafts, or refining existing content. Handles Eleventy frontmatter, Tailwind formatting, and Espen's authentic voice.
日本語の概要は準備中です。原文の説明を表示しています。
Generate a full operational status report for the Aivena bot. Checks all subsystems: extensions, webserver, Telegram, chat bridge, heartbeat, cron, database, memory, CRM, calendar, task management, jobs/telemetry, and storage. **Triggers — use this skill when:** - User asks for "status", "bot status", "system status", "operational status" - User asks "is everything running?", "how's Aivena doing?" - User says "health check", "diagnostics", "systems check" - User asks "what's the state of the bot?"
日本語の概要は準備中です。原文の説明を表示しています。
Parse git history and produce or update a CHANGELOG.md following the Keep a Changelog convention. Supports Conventional Commits, basic prefix conventions, and unstructured commit messages. Intelligently categorizes changes, detects breaking changes, links to PRs/issues, and handles both initial generation and incremental updates. **Triggers — use this skill when:** - User asks to "generate", "create", "update", or "write" a changelog - User mentions "CHANGELOG", "changelog", "release notes" - User says "document changes", "what changed since last release" - User wants to "prepare a release" and needs a changelog entry - User asks to "clean up" or "reformat" an existing changelog **Covers:** Any git-based project. Handles Conventional Commits (feat/fix/chore), Angular convention, basic prefixes (Add/Fix/Remove), and freeform commit messages. Outputs Keep a Changelog format with optional Common Changelog enhancements.
日本語の概要は準備中です。原文の説明を表示しています。
Orchestrate cmux terminal panes — split terminals, run parallel processes, read output from other panes, and use the built-in browser. Use when working inside cmux and you need to run a dev server, watch tests, spawn sub-agents, or preview web pages.
日本語の概要は準備中です。原文の説明を表示しています。
Review code for quality, security, performance, and maintainability. Use when reviewing PRs, auditing a codebase, or refactoring. Covers TypeScript, Node.js, infrastructure-as-code, and full-stack web apps.
日本語の概要は準備中です。原文の説明を表示しています。