Shared Data
CCS provides central management of reusable assets (commands, skills, agents) shared across all Claude instances via the dashboard.
Overview
Shared Data uses symlinks to eliminate duplication:
~/.claude/ is the authoritative source (user-created files)
~/.ccs/shared/ symlinks to ~/.claude/ (access layer)
- Each profile instance symlinks to
~/.ccs/shared/ (profile access)
On Windows, file copies are used instead of symlinks if Developer Mode is not enabled.
Asset Types
| Type | Location | Discovery |
|---|
| Commands | ~/.claude/commands/ | All .md files, recursive (up to 10 levels) |
| Skills | ~/.claude/skills/ | Directories containing SKILL.md |
| Agents | ~/.claude/agents/ | Directories with prompt.md/AGENT.md, or single .md files |
Dashboard
Access via http://localhost:3000/shared or navigate to the Shared Data page in the dashboard sidebar.
Layout:
- Left panel — Item list with search filtering (by name, description, path)
- Right panel — Full markdown content viewer with metadata
Features:
- Three tabs: Commands, Skills, Agents
- Real-time search across names, descriptions, and paths
- Click any item to view full markdown content
- Metadata display including resolved symlink sources
- Symlink status alert with “run
ccs sync” guidance
Markdown Viewer
The built-in viewer renders:
- Frontmatter (YAML metadata)
- Headings (H1-H6)
- Ordered/unordered lists
- Code blocks with language tags
- Inline formatting: bold,
code, italic, [links]
Items display descriptions extracted in this order:
- YAML frontmatter
description: field
- First non-empty, non-heading markdown line
- Fallback: “No description”
- Trimmed to 140 characters
CLI Commands
# Re-create symlinks for shared data
ccs sync
# Run health check (verifies symlinks)
ccs doctor
API Endpoints
| Endpoint | Returns |
|---|
GET /api/shared/commands | List all commands with descriptions |
GET /api/shared/skills | List all skills with descriptions |
GET /api/shared/agents | List all agents with descriptions |
GET /api/shared/content?type=X&path=Y | Full markdown content for an item |
GET /api/shared/summary | Counts and symlink status |
Security
- Path traversal protection via
fs.realpathSync() + containment checks
- File size limits: 1 MiB descriptions, 2 MiB full content
- Symlink safety checks on write operations
Troubleshooting
Items Not Showing
# Re-create symlinks
ccs sync
# Verify shared directory exists
ls -la ~/.ccs/shared/
Symlink Status Alert
If the dashboard shows a symlink warning, run:
This re-creates the symlink chain from ~/.claude/ → ~/.ccs/shared/ → instances.