Agents
When you link or try a skill, New Tricks places it in the primary skill directory of each agent you select: its user scope directory by default for link, the project’s directory for try and --to. It supports four agents.
Where skills go
Section titled “Where skills go”| Agent | ID | User scope directory | Project directory | Also reads (user scope) | Follows links |
|---|---|---|---|---|---|
| Claude Code | claude |
~/.claude/skills/ |
.claude/skills/ |
Nothing else (it doesn’t read .agents/skills) |
Yes |
| Codex | codex |
~/.agents/skills/ |
.agents/skills/ |
~/.codex/skills/ (deprecated), /etc/codex/skills |
Yes, in user, repo and admin scope |
| Cursor | cursor |
~/.cursor/skills/ |
.cursor/skills/ |
~/.agents/skills/, ~/.claude/skills/, ~/.codex/skills/ |
Yes, but it skips hidden directories |
| GitHub Copilot | copilot |
~/.copilot/skills/ |
.github/skills/ |
~/.claude/skills/, ~/.agents/skills/ |
The CLI does. In VS Code, linked skills are listed but the skill() tool fails on them (microsoft/vscode#315979) |
Claude Code and Codex look for project skills from the current directory up to the repository root. Cursor searches project directories recursively.
In a project, New Tricks places a skill in the primary directory of each agent you select. It doesn’t try to stop other agents from seeing it. When the same skill reaches an agent through more than one directory, the agent may show it twice. Copilot is known to list skills twice when directories link to each other.
In user scope, New Tricks places each skill in the fewest directories that reach every agent you selected, so no agent loads it twice. An agent that also reads another selected agent’s directory, and can load what is placed there (it follows the link, or the skill is a copy), isn’t linked separately:
cursor loads user-scope skills from ~/.claude/skills and ~/.agents/skills, so it is not linked separatelylinked changelog-writer into user scope from main (working tree, live) claude ~/.claude/skills/changelog-writer (link) codex ~/.agents/skills/changelog-writer (link) copilot ~/.copilot/skills/changelog-writer (copy)With all four agents selected, that means Claude Code, Codex and Copilot. Copilot reads ~/.claude/skills/ too, but it can’t load linked skills, so on macOS and Linux it keeps its own copy in ~/.copilot/skills/. Agents you name with --agents are always placed in their own directory.
The copilot integration serves both Copilot in VS Code and the Copilot CLI.
Choose the agents
Section titled “Choose the agents”link and try take --agents with a comma-separated list of IDs, or all:
tricks link changelog-writer --to ~/code/my-app --agents claude,copilot,cursorwarning: some selected agents cannot follow links here; they get a copy, so live edits will not show until you re-linklinked changelog-writer into ~/code/my-app from main (working tree, live) claude ~/code/my-app/.claude/skills/changelog-writer (link) copilot ~/code/my-app/.github/skills/changelog-writer (copy) cursor ~/code/my-app/.cursor/skills/changelog-writer (link)A few aliases are accepted too: claude-code, github-copilot, copilot-cli, vscode, cursor-agent and openai-codex.
Without --agents, New Tricks uses:
-
The source repo’s
agents, when you run the command inside a source repo that sets it:tricks.toml [source-repo]agents = ["claude", "codex"] -
Otherwise, the
agentssetting in your user config (~/.config/newtricks/tricks.toml). When New Tricks first writes that file, it lists the agents it finds on your machine: their directories (~/.claude,~/.codex,~/.cursor,~/.copilot), a Copilot extension in VS Code, orclaude,codex,cursor,cursor-agentorcopiloton yourPATH. If it finds none, it writes["claude"]:[settings]agents = ["claude", "codex", "cursor"] # agents to link skills for, found on first run (a source repo can set its own)
See Configuration for both files.
Link or copy
Section titled “Link or copy”Each agent declares whether it follows directory links on each platform. Where it doesn’t, that agent gets a copy, and the store remains the source of truth.
| Agent | macOS | Linux | Windows |
|---|---|---|---|
| Claude Code | link | link | copy |
| Codex | link | link | copy |
| Cursor | link | link, or copy when the target is under a hidden directory | copy |
| GitHub Copilot | copy | copy | copy |
- Windows uses copies for every agent, because linked skill directories fail to load there (for example anthropics/claude-code#41177).
- Copilot always gets a copy until microsoft/vscode#315979 is fixed.
- Cursor on Linux skips hidden dot-directories during discovery. When any directory in the link’s target path starts with
., Cursor gets a copy instead. That includes the store under~/.local/share/newtricks/and worktrees under.tricks/work/. On macOS and Windows the data directory isn’t hidden.
A copy of a live target, such as your main checkout or an experiment, doesn’t follow your edits. Run tricks link again to refresh it. You can also force copies for every agent with --copy.
Override with TRICKS_LINK_MODE
Section titled “Override with TRICKS_LINK_MODE”The TRICKS_LINK_MODE environment variable overrides these defaults, for testing or when an upstream fix ships before New Tricks catches up:
TRICKS_LINK_MODE=copy tricks link # copies for every agentTRICKS_LINK_MODE=link tricks link # links for every agentTRICKS_LINK_MODE=copilot=link,claude=copy tricks link # per agent; others keep their defaultPer-agent entries use the agent IDs from the table above.
Check your setup with tricks doctor
Section titled “Check your setup with tricks doctor”tricks doctor reports each agent’s directories, whether the user scope directory exists yet, the mode links into the store get on this machine, and the agent version the integration was tested against:
New Tricks 0.7.1 ✓ git git version 2.55.0 ✓ gh GitHub CLI found ✗ github.com credentials anonymous: public sources only, 60 API requests/hour, no GitHub code search. Run `gh auth login`. ✓ source repo my-skills ~/code/my-skills ✓ config ~/.config/newtricks ✓ data ~/Library/Application Support/newtricks ✓ store 0 revision(s) ✓ index 0 skill(s) indexed ✓ agent claude user ~/.claude/skills (exists), project .claude/skills; link mode; tested 2.1.280 ✓ agent codex user ~/.agents/skills (not created yet), project .agents/skills; link mode; tested 0.140.0 ✓ agent cursor user ~/.cursor/skills (not created yet), project .cursor/skills; link mode; tested 3.11.19 ✓ agent copilot user ~/.copilot/skills (not created yet), project .github/skills; copy mode; tested VS Code 1.128.1 ✓ operations no interrupted operations ✓ placements all healthyThe placements line lists every link that isn’t healthy, with its state. See Link health. With TRICKS_LINK_MODE set, the agent lines show the overridden mode:
✓ agent claude user ~/.claude/skills (exists), project .claude/skills; copy mode; tested 2.1.280 ✓ agent copilot user ~/.copilot/skills (not created yet), project .github/skills; link mode; tested VS Code 1.128.1