Skip to content

Add Trae IDE support via native skills symlink#672

Open
pratyush618 wants to merge 3 commits intoobra:mainfrom
pratyush618:trae-ide-support
Open

Add Trae IDE support via native skills symlink#672
pratyush618 wants to merge 3 commits intoobra:mainfrom
pratyush618:trae-ide-support

Conversation

@pratyush618
Copy link

Summary

Closes #617

  • Adds .trae/INSTALL.md with quick-start instructions (fetchable by Trae's AI agent)
  • Adds docs/README.trae.md with full macOS/Linux/Windows setup guide
  • Updates README.md to include Trae IDE alongside Codex and OpenCode

How it works

Trae IDE has a native skills system at ~/.trae/skills/ that uses the exact same SKILL.md format as superpowers. Installation simply symlinks the skills directory:

git clone https://github.com/obra/superpowers.git ~/.trae/superpowers
mkdir -p ~/.trae/skills
ln -s ~/.trae/superpowers/skills ~/.trae/skills/superpowers

Trae auto-discovers all superpowers skills at startup. The using-superpowers skill (description: "Use when starting any conversation") then guides the AI to check for relevant skills before every task — no plugin code needed.

Trae IDE has a native skills system at ~/.trae/skills/ that uses the
same SKILL.md format as superpowers. Installation symlinks the skills
directory so Trae auto-discovers all superpowers skills without any
plugin code required.

- Add .trae/INSTALL.md with quick-start instructions
- Add docs/README.trae.md with full macOS/Linux/Windows setup guide
- Update README.md to include Trae IDE in installation section
@coderabbitai
Copy link

coderabbitai bot commented Mar 10, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: f74bea3a-0614-4f62-afa3-f88e0125a654

📥 Commits

Reviewing files that changed from the base of the PR and between 3a2b599 and 1a0de6c.

📒 Files selected for processing (1)
  • README.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • README.md

📝 Walkthrough

Walkthrough

Adds Trae IDE documentation and README updates: new .trae/INSTALL.md and docs/README.trae.md, plus README adjustments referencing Trae and linking detailed docs; covers installation, symlink/junction setup, skill discovery, usage, custom/project skills, updating, and troubleshooting.

Changes

Cohort / File(s) Summary
Trae IDE docs
.trae/INSTALL.md, docs/README.trae.md
New comprehensive Trae-specific documentation: install steps for macOS/Linux/Windows, clone + symlink/junction workflow, skill discovery and loading, personal/project/default skills, updating, troubleshooting, and help links. Documentation-only changes.
Top-level README
README.md
Updated Installation section to mention Trae IDE and added link/fetch note pointing to Trae INSTALL docs. Minor text adjustments to reference Trae.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 I hopped through docs with eager paws,
Wove symlinks, tips, and handy laws,
Skills found, projects humming bright,
Trae and Superpowers — moonlit night,
A tiny rabbit cheers the docs' applause 🎋

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: adding Trae IDE support through native skills symlink mechanism, which is the primary focus of this PR.
Description check ✅ Passed The description directly relates to the changeset, explaining the installation mechanism, file additions, and closure of issue #617 that the code changes implement.
Linked Issues check ✅ Passed The PR successfully addresses issue #617 by providing comprehensive documentation and instructions for installing Superpowers with Trae IDE through the native skills symlink mechanism.
Out of Scope Changes check ✅ Passed All changes are directly scoped to adding Trae IDE support: documentation files and README updates with no unrelated modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.trae/INSTALL.md:
- Around line 38-40: The fenced code blocks containing the example prompt "use
the brainstorming skill" are missing a fence language (triggering markdownlint
MD040); update those triple-backtick fences to include a language identifier
(e.g., change ``` to ```text) for each instance (including the block with "use
the brainstorming skill" and the other example blocks around the same section)
so the markdownlint rule passes while preserving the exact block content.
- Around line 1-29: The INSTALL.md currently only contains bash/macos/linux
commands and lacks Windows-specific installation instructions or a clear scope,
so add a Windows branch or an explicit platform notice: update .trae/INSTALL.md
to either (A) add a "Windows" section with equivalent PowerShell/Command Prompt
steps for cloning and linking Superpowers into Trae (including creating the
skills directory and creating a junction or copy instead of ln -s), or (B)
prepend a clear header that this file is macOS/Linux only and add a prominent
redirect to docs/README.trae.md (the Windows guide) and README.md so Windows
users are sent to the correct doc; reference this file (.trae/INSTALL.md) and
the target docs/README.trae.md to implement the change.
- Around line 20-23: The current install snippet blindly runs rm -rf on
~/.trae/skills/superpowers which will destroy a real directory; change the logic
around the commands (mkdir -p, rm -rf, ln -s) to first check the target path
~/.trae/skills/superpowers: if it is a symlink (test -L) remove/unlink it, if it
is a regular directory (test -d) abort with a message asking the user to
move/delete it, otherwise create the parent dir (mkdir -p ~/.trae/skills) and
create the symlink (ln -s ~/.trae/superpowers/skills
~/.trae/skills/superpowers).

In `@docs/README.trae.md`:
- Around line 9-11: The fenced code blocks containing the raw URL and similar
examples are missing a language tag and trigger markdownlint MD040; update each
triple-backtick block (e.g., the block showing "Fetch and follow instructions
from
https://raw.githubusercontent.com/obra/superpowers/refs/heads/main/.trae/INSTALL.md"
and the other blocks at the noted ranges) by adding an explicit language
identifier such as "text" (for example change ``` to ```text) so the blocks are
lint-clean and preserve content formatting.
- Around line 33-37: Replace the unconditional rm -rf of
~/.trae/skills/superpowers with a safe conditional: check if the path is a
symlink (e.g., test -L "$HOME/.trae/skills/superpowers") and only remove it if
that test succeeds; if it exists but is not a symlink, print a clear error and
exit non‑zero instead of deleting contents. Keep the subsequent ln -s
~/.trae/superpowers/skills ~/.trae/skills/superpowers but ensure parent dirs
exist and fail loudly if the target or parent directory is missing.

In `@README.md`:
- Around line 87-89: The fenced code block that contains the URL "Fetch and
follow instructions from
https://raw.githubusercontent.com/obra/superpowers/refs/heads/main/.trae/INSTALL.md"
needs a language tag to satisfy markdownlint MD040; change the opening
triple-backtick for that block from ``` to ```text so the block becomes a text
code block (update the fenced block in README.md that contains that URL).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: e159beb5-7a99-4c66-aedc-2ebe1b048c8c

📥 Commits

Reviewing files that changed from the base of the PR and between 33e55e6 and 4a76278.

📒 Files selected for processing (3)
  • .trae/INSTALL.md
  • README.md
  • docs/README.trae.md

…ce tags

- Replace rm -rf with safe symlink-only removal that fails loudly when
  the path is a real directory (in both INSTALL.md and README.trae.md)
- Add Windows redirect note to INSTALL.md pointing to README.trae.md
- Add 'text' language tag to all bare fenced blocks across INSTALL.md,
  README.trae.md, and README.md to satisfy markdownlint MD040
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (3)
docs/README.trae.md (3)

201-208: Clarify the "instant update" wording.

Line 208 states "Skills update instantly through the symlink" but then immediately says "Restart Trae IDE to reload." This could confuse users. Consider rephrasing to:

Changes propagate instantly through the symlink, but Trae IDE needs to be restarted to reload the skill index.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/README.trae.md` around lines 201 - 208, The "## Updating" section
currently says "Skills update instantly through the symlink" which conflicts
with the next sentence about restarting the IDE; update the copy around that
heading by replacing or rephrasing the sentence that contains "Skills update
instantly through the symlink" so it reads something like "Changes propagate
instantly through the symlink, but Trae IDE needs to be restarted to reload the
skill index" (locate the sentence under the "## Updating" heading that contains
the phrase "Skills update instantly through the symlink" and replace it
accordingly).

74-75: Windows removal is less safe than the macOS/Linux equivalent.

Line 75 uses Remove-Item -Force -ErrorAction SilentlyContinue which will silently remove the path even if it's a real directory, not just a junction. The macOS/Linux version (lines 33-39) includes explicit safety checks. Consider adding a similar conditional check:

if (Test-Path "$env:USERPROFILE\.trae\skills\superpowers") {
    $item = Get-Item "$env:USERPROFILE\.trae\skills\superpowers"
    if ($item.LinkType -eq "Junction") {
        Remove-Item "$env:USERPROFILE\.trae\skills\superpowers" -Force
    } else {
        Write-Error "ERROR: Path exists and is not a junction. Remove it manually."
        exit 1
    }
}

Also applies to line 95 in the Command Prompt version.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/README.trae.md` around lines 74 - 75, The Windows removal currently uses
Remove-Item with -Force and -ErrorAction SilentlyContinue which can delete a
real directory; change the logic around the Remove-Item call so it first checks
Test-Path for "$env:USERPROFILE\.trae\skills\superpowers", then use Get-Item to
inspect the item's LinkType and only call Remove-Item when LinkType equals
"Junction"; otherwise emit a clear error (e.g., Write-Error "ERROR: Path exists
and is not a junction. Remove it manually.") and exit with non-zero status.
Apply the same guarded check pattern to the analogous Command Prompt removal at
the other location so both Windows PowerShell and cmd paths perform the safety
check before removal.

168-179: Hardcoded skill names in User Rule may become stale.

Lines 176-177 recommend hardcoding specific skill names in the User Rule:

Key skills: brainstorming, writing-plans, subagent-driven-development,
test-driven-development, systematic-debugging, requesting-code-review.

If skills are renamed, removed, or new important skills are added, users won't automatically benefit from those changes. Consider either:

  1. Recommending a more generic rule like "Scan available skills in ~/.trae/skills/superpowers/ and suggest relevant ones"
  2. Adding a note that this list should be periodically reviewed and updated
  3. Documenting a way to query all available skills dynamically
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/README.trae.md` around lines 168 - 179, Update the "Ensuring Bootstrap
Context" section so it doesn't hardcode specific skill names; replace the
literal "Key skills: brainstorming, writing-plans, subagent-driven-development,
test-driven-development, systematic-debugging, requesting-code-review."
recommendation with guidance to either (a) scan ~/.trae/skills/superpowers/ for
available skills and suggest relevant ones dynamically, (b) add a clear note
that the listed skills must be periodically reviewed/updated, or (c) document a
method/command to query all available skills; modify the paragraph under the
"For the best experience..." block that currently contains the "Key skills: ..."
line to present one of these generic/dynamic approaches and mention the path
~/.trae/skills/superpowers/{skill-name}/SKILL.md as the source to scan.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/README.trae.md`:
- Around line 201-208: The "## Updating" section currently says "Skills update
instantly through the symlink" which conflicts with the next sentence about
restarting the IDE; update the copy around that heading by replacing or
rephrasing the sentence that contains "Skills update instantly through the
symlink" so it reads something like "Changes propagate instantly through the
symlink, but Trae IDE needs to be restarted to reload the skill index" (locate
the sentence under the "## Updating" heading that contains the phrase "Skills
update instantly through the symlink" and replace it accordingly).
- Around line 74-75: The Windows removal currently uses Remove-Item with -Force
and -ErrorAction SilentlyContinue which can delete a real directory; change the
logic around the Remove-Item call so it first checks Test-Path for
"$env:USERPROFILE\.trae\skills\superpowers", then use Get-Item to inspect the
item's LinkType and only call Remove-Item when LinkType equals "Junction";
otherwise emit a clear error (e.g., Write-Error "ERROR: Path exists and is not a
junction. Remove it manually.") and exit with non-zero status. Apply the same
guarded check pattern to the analogous Command Prompt removal at the other
location so both Windows PowerShell and cmd paths perform the safety check
before removal.
- Around line 168-179: Update the "Ensuring Bootstrap Context" section so it
doesn't hardcode specific skill names; replace the literal "Key skills:
brainstorming, writing-plans, subagent-driven-development,
test-driven-development, systematic-debugging, requesting-code-review."
recommendation with guidance to either (a) scan ~/.trae/skills/superpowers/ for
available skills and suggest relevant ones dynamically, (b) add a clear note
that the listed skills must be periodically reviewed/updated, or (c) document a
method/command to query all available skills; modify the paragraph under the
"For the best experience..." block that currently contains the "Key skills: ..."
line to present one of these generic/dynamic approaches and mention the path
~/.trae/skills/superpowers/{skill-name}/SKILL.md as the source to scan.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: f9a44ba9-654b-49fe-8bde-117b3ccee22f

📥 Commits

Reviewing files that changed from the base of the PR and between 4a76278 and 3a2b599.

📒 Files selected for processing (3)
  • .trae/INSTALL.md
  • README.md
  • docs/README.trae.md
✅ Files skipped from review due to trivial changes (1)
  • .trae/INSTALL.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • README.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

We hope to add support for Trae-IDE-skill.

1 participant