diff --git a/.trae/INSTALL.md b/.trae/INSTALL.md
new file mode 100644
index 000000000..aacfdec0c
--- /dev/null
+++ b/.trae/INSTALL.md
@@ -0,0 +1,35 @@
+# Installing Superpowers for Trae
+
+Quick setup to enable superpowers skills in Trae.
+
+## Installation
+
+1. **Clone superpowers repository**:
+ ```bash
+ mkdir -p ~/.trae/superpowers
+ cd ~/.trae/superpowers
+ git clone https://github.com/ice-zjchen/superpowers.git .
+ ```
+
+2. **Create personal skills directory**:
+ ```bash
+ mkdir -p ~/.trae/skills
+ ```
+
+3. **Create `.trae/rules/superpowers.md` and Update it** to include this superpowers section:
+ ```markdown
+ ## Superpowers System
+
+
+ You have superpowers. Superpowers teach you new skills and capabilities. RIGHT NOW run: `~/.trae/superpowers/.trae/superpowers-trae bootstrap` and follow the instructions it returns.
+
+ ```
+
+## Verification
+
+Test the installation:
+```bash
+~/.trae/superpowers/.trae/superpowers-trae bootstrap
+```
+
+You should see skill listings and bootstrap instructions. The system is now ready for use.
diff --git a/.trae/superpowers-bootstrap.md b/.trae/superpowers-bootstrap.md
new file mode 100644
index 000000000..17efd0d52
--- /dev/null
+++ b/.trae/superpowers-bootstrap.md
@@ -0,0 +1,33 @@
+# Superpowers Bootstrap for Trae
+
+
+You have superpowers.
+
+**Tool for running skills:**
+- `~/.trae/superpowers/.trae/superpowers-trae use-skill `
+
+**Tool Mapping for Trae:**
+When skills reference tools you don't have, substitute your equivalent tools:
+- `TodoWrite` → `update_plan` (your planning/task tracking tool)
+- `Task` tool with subagents → Tell the user that subagents aren't available in Trae yet and you'll do the work the subagent would do
+- `Skill` tool → `~/.trae/superpowers/.trae/superpowers-trae use-skill` command (already available)
+- `Read`, `Write`, `Edit`, `Bash` → Use your native tools with similar functions
+
+**Skills naming:**
+- Superpowers skills: `superpowers:skill-name` (from ~/.trae/superpowers/skills/)
+- Personal skills: `skill-name` (from ~/.trae/skills/)
+- Personal skills override superpowers skills when names match
+
+**Critical Rules:**
+- Before ANY task, review the skills list (shown below)
+- If a relevant skill exists, you MUST use `~/.trae/superpowers/.trae/superpowers-trae use-skill` to load it
+- Announce: "I've read the [Skill Name] skill and I'm using it to [purpose]"
+- Skills with checklists require `update_plan` todos for each item
+- NEVER skip mandatory workflows (brainstorming before coding, TDD, systematic debugging)
+
+**Skills location:**
+- Superpowers skills: ~/.trae/superpowers/skills/
+- Personal skills: ~/.trae/skills/ (override superpowers when names match)
+
+IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT.
+
diff --git a/.trae/superpowers-trae b/.trae/superpowers-trae
new file mode 100755
index 000000000..dad9aaad0
--- /dev/null
+++ b/.trae/superpowers-trae
@@ -0,0 +1,267 @@
+#!/usr/bin/env node
+
+const fs = require('fs');
+const path = require('path');
+const os = require('os');
+const skillsCore = require('../lib/skills-core');
+
+// Paths
+const homeDir = os.homedir();
+const superpowersSkillsDir = path.join(homeDir, '.trae', 'superpowers', 'skills');
+const personalSkillsDir = path.join(homeDir, '.trae', 'skills');
+const bootstrapFile = path.join(homeDir, '.trae', 'superpowers', '.trae', 'superpowers-bootstrap.md');
+const superpowersRepoDir = path.join(homeDir, '.trae', 'superpowers');
+
+// Utility functions
+function printSkill(skillPath, sourceType) {
+ const skillFile = path.join(skillPath, 'SKILL.md');
+ const relPath = sourceType === 'personal'
+ ? path.relative(personalSkillsDir, skillPath)
+ : path.relative(superpowersSkillsDir, skillPath);
+
+ // Print skill name with namespace
+ if (sourceType === 'personal') {
+ console.log(relPath.replace(/\\/g, '/')); // Personal skills are not namespaced
+ } else {
+ console.log(`superpowers:${relPath.replace(/\\/g, '/')}`); // Superpowers skills get superpowers namespace
+ }
+
+ // Extract and print metadata
+ const { name, description } = skillsCore.extractFrontmatter(skillFile);
+
+ if (description) console.log(` ${description}`);
+ console.log('');
+}
+
+// Commands
+function runFindSkills() {
+ console.log('Available skills:');
+ console.log('==================');
+ console.log('');
+
+ const foundSkills = new Set();
+
+ // Find personal skills first (these take precedence)
+ const personalSkills = skillsCore.findSkillsInDir(personalSkillsDir, 'personal', 2);
+ for (const skill of personalSkills) {
+ const relPath = path.relative(personalSkillsDir, skill.path);
+ foundSkills.add(relPath);
+ printSkill(skill.path, 'personal');
+ }
+
+ // Find superpowers skills (only if not already found in personal)
+ const superpowersSkills = skillsCore.findSkillsInDir(superpowersSkillsDir, 'superpowers', 1);
+ for (const skill of superpowersSkills) {
+ const relPath = path.relative(superpowersSkillsDir, skill.path);
+ if (!foundSkills.has(relPath)) {
+ printSkill(skill.path, 'superpowers');
+ }
+ }
+
+ console.log('Usage:');
+ console.log(' superpowers-trae use-skill # Load a specific skill');
+ console.log('');
+ console.log('Skill naming:');
+ console.log(' Superpowers skills: superpowers:skill-name (from ~/.trae/superpowers/skills/)');
+ console.log(' Personal skills: skill-name (from ~/.trae/skills/)');
+ console.log(' Personal skills override superpowers skills when names match.');
+ console.log('');
+ console.log('Note: All skills are disclosed at session start via bootstrap.');
+}
+
+function runBootstrap() {
+ console.log('# Superpowers Bootstrap for Trae');
+ console.log('# ===============================');
+ console.log('');
+
+ // Check for updates (with timeout protection)
+ if (skillsCore.checkForUpdates(superpowersRepoDir)) {
+ console.log('## Update Available');
+ console.log('');
+ console.log('⚠️ Your superpowers installation is behind the latest version.');
+ console.log('To update, run: `cd ~/.trae/superpowers && git pull`');
+ console.log('');
+ console.log('---');
+ console.log('');
+ }
+
+ // Show the bootstrap instructions
+ if (fs.existsSync(bootstrapFile)) {
+ console.log('## Bootstrap Instructions:');
+ console.log('');
+ try {
+ const content = fs.readFileSync(bootstrapFile, 'utf8');
+ console.log(content);
+ } catch (error) {
+ console.log(`Error reading bootstrap file: ${error.message}`);
+ }
+ console.log('');
+ console.log('---');
+ console.log('');
+ }
+
+ // Run find-skills to show available skills
+ console.log('## Available Skills:');
+ console.log('');
+ runFindSkills();
+
+ console.log('');
+ console.log('---');
+ console.log('');
+
+ // Load the using-superpowers skill automatically
+ console.log('## Auto-loading superpowers:using-superpowers skill:');
+ console.log('');
+ runUseSkill('superpowers:using-superpowers');
+
+ console.log('');
+ console.log('---');
+ console.log('');
+ console.log('# Bootstrap Complete!');
+ console.log('# You now have access to all superpowers skills.');
+ console.log('# Use "superpowers-trae use-skill " to load and apply skills.');
+ console.log('# Remember: If a skill applies to your task, you MUST use it!');
+}
+
+function runUseSkill(skillName) {
+ if (!skillName) {
+ console.log('Usage: superpowers-trae use-skill ');
+ console.log('Examples:');
+ console.log(' superpowers-trae use-skill superpowers:brainstorming # Load superpowers skill');
+ console.log(' superpowers-trae use-skill brainstorming # Load personal skill (or superpowers if not found)');
+ console.log(' superpowers-trae use-skill my-custom-skill # Load personal skill');
+ return;
+ }
+
+ // Handle namespaced skill names
+ let actualSkillPath;
+ let forceSuperpowers = false;
+
+ if (skillName.startsWith('superpowers:')) {
+ // Remove the superpowers: namespace prefix
+ actualSkillPath = skillName.substring('superpowers:'.length);
+ forceSuperpowers = true;
+ } else {
+ actualSkillPath = skillName;
+ }
+
+ // Remove "skills/" prefix if present
+ if (actualSkillPath.startsWith('skills/')) {
+ actualSkillPath = actualSkillPath.substring('skills/'.length);
+ }
+
+ // Function to find skill file
+ function findSkillFile(searchPath) {
+ // Check for exact match with SKILL.md
+ const skillMdPath = path.join(searchPath, 'SKILL.md');
+ if (fs.existsSync(skillMdPath)) {
+ return skillMdPath;
+ }
+
+ // Check for direct SKILL.md file
+ if (searchPath.endsWith('SKILL.md') && fs.existsSync(searchPath)) {
+ return searchPath;
+ }
+
+ return null;
+ }
+
+ let skillFile = null;
+
+ // If superpowers: namespace was used, only check superpowers skills
+ if (forceSuperpowers) {
+ if (fs.existsSync(superpowersSkillsDir)) {
+ const superpowersPath = path.join(superpowersSkillsDir, actualSkillPath);
+ skillFile = findSkillFile(superpowersPath);
+ }
+ } else {
+ // First check personal skills directory (takes precedence)
+ if (fs.existsSync(personalSkillsDir)) {
+ const personalPath = path.join(personalSkillsDir, actualSkillPath);
+ skillFile = findSkillFile(personalPath);
+ if (skillFile) {
+ console.log(`# Loading personal skill: ${actualSkillPath}`);
+ console.log(`# Source: ${skillFile}`);
+ console.log('');
+ }
+ }
+
+ // If not found in personal, check superpowers skills
+ if (!skillFile && fs.existsSync(superpowersSkillsDir)) {
+ const superpowersPath = path.join(superpowersSkillsDir, actualSkillPath);
+ skillFile = findSkillFile(superpowersPath);
+ if (skillFile) {
+ console.log(`# Loading superpowers skill: superpowers:${actualSkillPath}`);
+ console.log(`# Source: ${skillFile}`);
+ console.log('');
+ }
+ }
+ }
+
+ // If still not found, error
+ if (!skillFile) {
+ console.log(`Error: Skill not found: ${actualSkillPath}`);
+ console.log('');
+ console.log('Available skills:');
+ runFindSkills();
+ return;
+ }
+
+ // Extract frontmatter and content using shared core functions
+ let content, frontmatter;
+ try {
+ const fullContent = fs.readFileSync(skillFile, 'utf8');
+ const { name, description } = skillsCore.extractFrontmatter(skillFile);
+ content = skillsCore.stripFrontmatter(fullContent);
+ frontmatter = { name, description };
+ } catch (error) {
+ console.log(`Error reading skill file: ${error.message}`);
+ return;
+ }
+
+ // Display skill header with clean info
+ const displayName = forceSuperpowers ? `superpowers:${actualSkillPath}` :
+ (skillFile.includes(personalSkillsDir) ? actualSkillPath : `superpowers:${actualSkillPath}`);
+
+ const skillDirectory = path.dirname(skillFile);
+
+ console.log(`# ${frontmatter.name || displayName}`);
+ if (frontmatter.description) {
+ console.log(`# ${frontmatter.description}`);
+ }
+ console.log(`# Skill-specific tools and reference files live in ${skillDirectory}`);
+ console.log('# ============================================');
+ console.log('');
+
+ // Display the skill content (without frontmatter)
+ console.log(content);
+
+}
+
+// Main CLI
+const command = process.argv[2];
+const arg = process.argv[3];
+
+switch (command) {
+ case 'bootstrap':
+ runBootstrap();
+ break;
+ case 'use-skill':
+ runUseSkill(arg);
+ break;
+ case 'find-skills':
+ runFindSkills();
+ break;
+ default:
+ console.log('Superpowers for Trae');
+ console.log('Usage:');
+ console.log(' superpowers-trae bootstrap # Run complete bootstrap with all skills');
+ console.log(' superpowers-trae use-skill # Load a specific skill');
+ console.log(' superpowers-trae find-skills # List all available skills');
+ console.log('');
+ console.log('Examples:');
+ console.log(' superpowers-trae bootstrap');
+ console.log(' superpowers-trae use-skill superpowers:brainstorming');
+ console.log(' superpowers-trae use-skill my-custom-skill');
+ break;
+}
diff --git a/README.md b/README.md
index 0e67aefcf..b90d4d982 100644
--- a/README.md
+++ b/README.md
@@ -77,6 +77,16 @@ Fetch and follow instructions from https://raw.githubusercontent.com/obra/superp
**Detailed docs:** [docs/README.opencode.md](docs/README.opencode.md)
+### Trae
+
+Tell Trae:
+
+```
+Fetch and follow instructions from https://raw.githubusercontent.com/obra/superpowers/refs/heads/main/.trae/INSTALL.md
+```
+
+**Detailed docs:** [docs/README.trae.md](docs/README.trae.md)
+
## The Basic Workflow
1. **brainstorming** - Activates before writing code. Refines rough ideas through questions, explores alternatives, presents design in sections for validation. Saves design document.
diff --git a/docs/README.trae.md b/docs/README.trae.md
new file mode 100644
index 000000000..34f37d554
--- /dev/null
+++ b/docs/README.trae.md
@@ -0,0 +1,149 @@
+# Superpowers for Trae
+
+Complete guide for using Superpowers with Trae.
+
+## Quick Install
+
+Tell Trae:
+
+```
+Fetch and follow instructions from https://raw.githubusercontent.com/ice-zjchen/superpowers/refs/heads/main/.trae/INSTALL.md
+```
+
+## Manual Installation
+
+### Prerequisites
+
+- Trae access
+- Shell access to install files
+- Node.js installed
+
+### Installation Steps
+
+#### 1. Clone Superpowers
+
+```bash
+mkdir -p ~/.trae/superpowers
+git clone https://github.com/ice-zjchen/superpowers.git ~/.trae/superpowers
+```
+
+#### 2. Install Bootstrap
+
+The bootstrap file is included in the repository at `.trae/superpowers-bootstrap.md`. Trae will automatically use it from the cloned location.
+
+#### 3. Verify Installation
+
+Tell Trae:
+
+```
+Run ~/.trae/superpowers/.trae/superpowers-trae find-skills to show available skills
+```
+
+You should see a list of available skills with descriptions.
+
+## Usage
+
+### Finding Skills
+
+```
+Run ~/.trae/superpowers/.trae/superpowers-trae find-skills
+```
+
+### Loading a Skill
+
+```
+Run ~/.trae/superpowers/.trae/superpowers-trae use-skill superpowers:brainstorming
+```
+
+### Bootstrap All Skills
+
+```
+Run ~/.trae/superpowers/.trae/superpowers-trae bootstrap
+```
+
+This loads the complete bootstrap with all skill information.
+
+### Personal Skills
+
+Create your own skills in `~/.trae/skills/`:
+
+```bash
+mkdir -p ~/.trae/skills/my-skill
+```
+
+Create `~/.trae/skills/my-skill/SKILL.md`:
+
+```markdown
+---
+name: my-skill
+description: Use when [condition] - [what it does]
+---
+
+# My Skill
+
+[Your skill content here]
+```
+
+Personal skills override superpowers skills with the same name.
+
+## Architecture
+
+### Trae CLI Tool
+
+**Location:** `~/.trae/superpowers/.trae/superpowers-trae`
+
+A Node.js CLI script that provides three commands:
+- `bootstrap` - Load complete bootstrap with all skills
+- `use-skill ` - Load a specific skill
+- `find-skills` - List all available skills
+
+### Shared Core Module
+
+**Location:** `~/.trae/superpowers/lib/skills-core.js`
+
+The Trae implementation uses the shared `skills-core` module for skill discovery and parsing. This is the same module used by the Codex CLI and OpenCode plugin, ensuring consistent behavior across platforms.
+
+### Tool Mapping
+
+Skills written for Claude Code are adapted for Trae with these mappings:
+
+- `TodoWrite` → `update_plan`
+- `Task` with subagents → Tell user subagents aren't available, do work directly
+- `Skill` tool → `~/.trae/superpowers/.trae/superpowers-trae use-skill`
+- File operations → Native Trae tools
+
+## Updating
+
+```bash
+cd ~/.trae/superpowers
+git pull
+```
+
+## Troubleshooting
+
+### Skills not found
+
+1. Verify installation: `ls ~/.trae/superpowers/skills`
+2. Check CLI works: `~/.trae/superpowers/.trae/superpowers-trae find-skills`
+3. Verify skills have SKILL.md files
+
+### CLI script not executable
+
+```bash
+chmod +x ~/.trae/superpowers/.trae/superpowers-trae
+```
+
+### Node.js errors
+
+The CLI script requires Node.js. Verify:
+
+```bash
+node --version
+```
+
+Should show v14 or higher (v18+ recommended for ES module support).
+
+## Getting Help
+
+- Report issues: https://github.com/obra/superpowers/issues
+- Main documentation: https://github.com/obra/superpowers