EffectPatterns CLI
Search, browse, and install Effect.ts patterns from your terminal using ep.
Installation
Install the CLI globally:
# Install globally with bun (recommended)
bun add -g @effect-patterns/ep-cli
# Or with npm
npm install -g @effect-patterns/ep-cli
Verify: ep --version
Quick start
# List available patterns
ep list
# Search by keyword
ep search "retry"
# Show one pattern in detail
ep show retry-with-backoff
# See supported install targets
ep install list
Command surface
Public commands currently supported:
ep search
ep list
ep show
ep install add
ep install list
ep skills list
ep skills preview
ep skills validate
ep skills stats
ep login
Usage
Authenticateep login
ep login
Pattern discoveryep search / list / show
ep search "error handling"
ep list --difficulty beginner --category error-handling
ep show retry-with-backoff
Install rules into AI toolsep install
Each tool gets its native format. Rules are split into category files (up to 16) so your editor only loads relevant patterns.
# Cursor — .mdc files with YAML frontmatter
ep install add --tool cursor
→ .cursor/rules/effect-*.mdc
# Windsurf — same .mdc format
ep install add --tool windsurf
→ .windsurf/rules/effect-*.mdc
# VS Code / Copilot — single aggregated markdown
ep install add --tool vscode
→ .github/copilot-instructions.md
# Claude Code — .md skill files
ep install add --tool claude
→ .claude/skills/effect-*.md
# Agent — managed section in AGENTS.md
ep install add --tool agent
# Filter by skill level or use case
ep install add --tool cursor --skill-level intermediate --use-case error-handling
# Interactive selection
ep install add --tool windsurf -i
ep install list
Cursor / Windsurf: Each .mdc file includes YAML frontmatter (description, globs, alwaysApply) so your editor can conditionally activate rules.
VS Code / Copilot: All categories are combined into a single .github/copilot-instructions.md file (the Copilot convention).
Claude Code: Plain .md skill files, one per category.
Skillsep skills
Inspect and validate local skill files from your workspace. Skills are organized into 16 categories that map directly to the files created by ep install add.
# List all skill categories and metadata
ep skills list
# Preview the full content of a category
ep skills preview error-management
ep skills preview concurrency
# Validate structure of all skill files
ep skills validate
# Aggregate stats across all skills
ep skills stats
ep skills stats --json
16 categories: Building APIs, Concurrency, Core Concepts, Data Pipelines, Domain Modeling, Error Management, Getting Started, HTTP Requests, Observability, Platform, Resource Management, Schema, Scheduling, Streams, Testing, Tooling & Debugging.
Each category becomes a separate file when you run ep install add for any of the supported tools above (Cursor, Windsurf, VS Code, Claude, Agent). See Install rules into AI tools for the output format per tool.
Rules within each category are tagged by skill level (beginner, intermediate, advanced) and use case, so you can filter with --skill-level and --use-case during install.
Configuration
Pattern API key resolution order:
- Environment variable:
PATTERN_API_KEY - API key file path:
EP_API_KEY_FILE - Config JSON via
EP_CONFIG_FILE(or default~/.config/ep-cli/config.json) with{"apiKey":"..."} - One-off secure (no shell history):
printf '%s' "$PATTERN_API_KEY" | ep --api-key-stdin search "retry"
Generate an API key from your account settings.
# Useful env vars
EP_AUTH_URL=https://effecttalk.dev/cli/auth
EFFECT_PATTERNS_API_URL=https://effect-patterns-mcp-server-buddybuilder.vercel.app
EP_SKILLS_DIR=/path/to/skills
JSON output and troubleshooting
ep search "layer" --json
ep install list --json
ep skills stats --json
LOG_LEVEL=debug ep skills stats
- 401 unauthorized: ensure one API key source is configured.
- Skills not found: run from the workspace root or set
EP_SKILLS_DIR. - Need machine-readable output: use
--jsonon supported read commands.
Requirements
- Bun 1.0+ (recommended) or Node.js with npm
- Internet connection (fetches from the Effect Patterns API)