Extensions
Extensions are the things that customize Claude Code behavior. Pilot Shell provides a unified view of all extensions across multiple scopes: global (your personal ~/.claude/ directory), project (the .claude/ directory in each project), plugin (installed Claude Code plugins), and remote (a connected team git repository).
Extension Categories
| Category | What it does | Location |
|---|---|---|
| Skills | Reusable workflows that load automatically when relevant | .claude/skills/<name>/SKILL.md |
| Rules | Instructions Claude follows every session (or by file type) | .claude/rules/<name>.md |
| Commands | Slash commands invoked on demand via /<name> | .claude/commands/<name>.md |
| Agents | Sub-agent definitions for specialized tasks | .claude/agents/<name>.md |
Scope: Global vs Project
Global extensions live in ~/.claude/ and are available in every project. They're personal to you.
Project extensions live in .claude/ inside a specific project directory. They're visible only when that project is active and can be committed to the repository so teammates get them automatically.
Plugin Extensions
Installed Claude Code plugins are automatically discovered and their extensions appear on the Extensions page. Plugin extensions are read-only — they come from the marketplace and cannot be edited, renamed, or deleted.
- Plugins are tracked in
~/.claude/settings.jsonunderenabledPlugins - Plugin assets live at
~/.claude/plugins/marketplaces/<marketplace>/plugins/<name>/ - Each plugin extension shows its plugin name as a badge (e.g., "code-review", "feature-dev")
- Filter by the Plugin scope button to see only plugin extensions
Install plugins via the Claude Code CLI: claude plugin install <name>
Team Sharing (Team Tier)
Share extensions with your team through a connected git repository. This feature is available on the Team plan.
How It Works
Team sharing uses ~/.claude/ as a git repository with a scoped .gitignore that tracks only the four extension directories (skills, rules, commands, agents). Everything else in ~/.claude/ is ignored by git.
Connecting a Remote
- On the Console Extensions page, find the Team Remote card
- Enter a git remote URL (e.g.,
https://github.com/org/team-extensions.git) - Optionally specify a subfolder if your extensions live in a subdirectory (e.g.,
plugins/myteam) - Click Connect — Pilot initializes the git repo and verifies connectivity
Authentication uses your existing system git credentials (SSH keys or credential helpers).
Browsing Remote Extensions
After connecting, a Remote scope filter button appears in the filter bar. Select it to see all extensions available in the team repository. Each remote extension shows its file path in the repository.
Push and Pull
- Push to Remote — From any local extension's detail modal, click the Push button to upload it to the team repository
- Download from Remote — Click any remote extension and choose Download to Global or Download to Project
- Conflict detection — If a local file differs from the remote version, Pilot shows a diff and lets you choose whether to overwrite
Comparing Versions
When an extension exists both locally and in the remote, the detail modal shows a Remote compare button. This opens a side-by-side diff view (same as the project vs global diff) with options to sync in either direction:
- Use Remote → Local — overwrite your local version with the remote
- Use Local → Remote — push your local version to the remote
Subfolder Support
Some teams organize their extensions repository with subfolder paths (e.g., plugins/myteam/rules/, plugins/myteam/skills/). When you specify a subfolder during connection, all browse/push/pull operations automatically translate between the subfolder-prefixed remote paths and your local ~/.claude/ paths.
Console Extensions Page
The Pilot Console provides a full management interface at http://localhost:41777/#/extensions.
Viewing Extensions
- All extensions from all scopes appear in a unified two-column grid
- Each category has a distinct color: Skills (violet), Rules (amber), Commands (green), Agents (blue)
- Filter by scope (All / Global / Project / Plugin / Remote) and category (Skills, Rules, Commands, Agents)
- Search by name in the top-right search bar
- Extensions that exist in both scopes show an "also in global/project" indicator so you can spot duplicates at a glance
- Plugin extensions display the plugin name as a badge
- Click any extension to see its full content
Editing Extensions
Extensions support:
- View — rendered preview or raw source toggle
- Edit — in-place markdown editor, saved directly to disk
- Rename — rename the file/directory
- Delete — with confirmation prompt
- Move — transfer between project and global scope (physically moves the file, not a copy)
- Compare — diff between project and global versions, or between local and remote versions
- Push — upload a local extension to the connected team remote
- Download — pull a remote extension to local global or project scope
Plugin extensions are read-only — edit, rename, delete, and move are not available.
Moving Between Scopes
Clicking "→ Global" on a project extension physically moves the file from .claude/ to ~/.claude/. Clicking "→ Project" moves it back. This is a move, not a copy — the original is removed.
Creating Extensions
Create extensions manually or via Claude Code commands:
- Rules:
/setup-rules— explores your codebase and generates project-specific rules - Skills:
/create-skill— builds a reusable skill interactively from any topic - Commands: Create
.claude/commands/<name>.mdmanually - Agents: Create
.claude/agents/<name>.mdmanually
File Locations Reference
Global Extensions
~/.claude/
├── skills/ ← global skills
├── rules/ ← global rules
├── commands/ ← global commands
└── agents/ ← global agents
Project Extensions
<project>/
├── .claude/
│ ├── skills/ ← project skills
│ ├── rules/ ← project rules (committed to repo)
│ ├── commands/ ← project commands
│ └── agents/ ← project agents
Plugin Extensions (read-only)
~/.claude/plugins/marketplaces/<marketplace>/plugins/<name>/
├── .claude-plugin/plugin.json ← plugin manifest
├── skills/ ← plugin skills
├── rules/ ← plugin rules
├── commands/ ← plugin commands
└── agents/ ← plugin agents