Claude Code plugin for design system management powered by Subcog memory.
Aesth (pronounced like "aesthetic") helps you build interfaces with craft and consistency by:
- Storing design systems in Subcog — Semantic, searchable memory that persists across sessions
- Validating code against design tokens — Catch spacing, depth, and color violations automatically
- Learning from decisions across projects — Universal craft principles inform all work
- Providing intelligent direction — Context-aware suggestions for new projects
# Add the zircote marketplace (if not already added)
claude /plugin marketplace add zircote/marketplace
# Install aesth
claude /plugin install aesth@zircoteclaude /plugin install zircote/aesth- Clone or symlink this directory to your Claude Code plugins location
- Restart Claude Code
- Claude Code with plugin support
- Subcog MCP server configured and running
/aesth:init
| Command | Description |
|---|---|
/aesth:init |
Initialize skill and load design system from Subcog |
/aesth:status |
Show current design system state |
/aesth:validate <files> |
Validate code against design rules |
/aesth:capture |
Store patterns/decisions to Subcog |
/aesth:extract <files> |
Extract patterns from existing code |
Aesth uses Subcog as the exclusive source of truth. No file-based fallback.
Namespace: patterns
Domain Scoping:
domain: project— Project-specific tokens, patterns, and decisionsdomain: user— Universal craft principles shared across all projects
| Type | Tags | Purpose |
|---|---|---|
| Design Direction | aesth, design-direction |
Personality, foundation, depth strategy |
| Design Tokens | aesth, design-tokens |
Spacing, colors, typography, radius |
| Component Patterns | aesth, component-pattern |
Button, Card, Input specifications |
| Design Decisions | aesth, design-decision |
Choices with rationale and dates |
| Craft Principles | aesth, craft-principles |
Universal rules (user domain) |
Use for: Dashboards, admin panels, SaaS apps, tools, settings pages, data interfaces
Not for: Landing pages, marketing sites, campaigns (use /frontend-design instead)
/aesth:init
# Start building UI
"Build a settings page for user preferences"
# Aesth will:
# 1. Assess context
# 2. Suggest direction (e.g., "Precision & Density, borders-only")
# 3. Get your confirmation
# 4. Build with craft principles
# 5. Offer to save patterns to Subcog
/aesth:init
# If design system exists in Subcog:
# → Loads and applies established patterns
# → Validates new code automatically
/aesth:status
# → Shows current Direction, Tokens, Patterns, Decisions
/aesth:extract src/components
# Scans existing code for:
# - Spacing values → infers scale
# - Colors → extracts palette
# - Component patterns → identifies buttons, cards, etc.
# - Depth strategy → counts borders vs shadows
# Then offers to save to Subcog
Aesth supports 6 design personalities:
| Direction | Feel | Best For |
|---|---|---|
| Precision & Density | Tight, technical, monochrome | Developer tools, admin dashboards |
| Warmth & Approachability | Generous spacing, soft shadows | Collaborative tools, consumer apps |
| Sophistication & Trust | Cool tones, layered depth | Finance, enterprise B2B |
| Boldness & Clarity | High contrast, dramatic space | Modern dashboards, data-heavy apps |
| Utility & Function | Muted, functional density | GitHub-style tools |
| Data & Analysis | Chart-optimized, numbers-first | Analytics, BI tools |
Decisions compound. A spacing value chosen once becomes a pattern. A depth strategy becomes an identity.
Consistency beats perfection. A coherent system with "imperfect" values beats a scattered interface with "correct" ones.
Memory enables iteration. When you can see what you decided and why, you can evolve intentionally instead of drifting accidentally.
Subcog enables intelligence. Semantic search surfaces relevant patterns. Cross-project learning compounds knowledge.
Aesth is inspired by claude-design-engineer but reimagined for Subcog:
| Aspect | design-engineer | aesth |
|---|---|---|
| Memory | .design-engineer/system.md file |
Subcog MCP memories |
| Validation | Node.js script | Prompt-based hook with LLM reasoning |
| Cross-project | Copy files manually | User domain memories shared automatically |
| Search | Parse markdown file | Semantic search via Subcog |
| Capture | Manual file editing | subcog_capture with structured tags |
- Claude Code with plugin support
- Subcog MCP server configured and running
"No design system found" after init
- This is normal for new projects. Start building UI and aesth will suggest a direction.
- For existing projects, run
/aesth:extract src/componentsto pull patterns from code.
Commands fail or timeout
- Verify Subcog MCP server is running:
/subcog:status - Check your
.mcp.jsonconfiguration includes the subcog server - Aesth has no file-based fallback — Subcog is required
Validation reports no rules
- Run
/aesth:initfirst to load design system - If no system exists, establish one by building UI or running
/aesth:extract
Patterns not persisting between sessions
- Confirm you saved patterns when prompted ("Want me to save these patterns to Subcog?")
- Check Subcog memory with
/subcog:statusto verify memories exist
MIT
Version: 0.1.0 Author: Robert Allen Repository: https://github.com/zircote/aesth
