This repository contains Claude Code plugins for building Expo apps. It serves as a marketplace for distributing skills to the Expo community.
.claude-plugin/
marketplace.json # Marketplace catalog - lists all plugins
plugins/
expo-app-design/ # Plugin for building Expo apps
.claude-plugin/
plugin.json # Plugin manifest
skills/
building-ui/
SKILL.md # Main skill file
references/ # Supporting documentation
deployment/
SKILL.md
reference/
...
README.md
upgrading-expo/ # Plugin for SDK upgrades
expo-cicd-workflows/ # Plugin for EAS workflows
README.md # User-facing installation instructions
Each plugin follows this structure:
my-plugin/
├── .claude-plugin/
│ └── plugin.json # Required: Plugin manifest (only file in this dir)
├── skills/ # Skill directories
│ └── skill-name/
│ ├── SKILL.md # Required: Main skill file
│ ├── references/ # Optional: Supporting docs
│ └── scripts/ # Optional: Utility scripts
└── README.md # Optional: Plugin documentation
{
"name": "my-plugin",
"version": "1.0.0",
"description": "Brief description of the plugin",
"author": {
"name": "Your Name",
"email": "you@example.com"
}
}Required fields:
name: Unique identifier in kebab-case
Optional fields:
version: Semantic versioning (e.g.,"1.0.0")description: Brief explanation shown in plugin managerauthor: Object withnameand optionallyemail
Skills teach Claude how to perform specific tasks. Each skill has a SKILL.md file with YAML frontmatter:
---
name: skill-name
description: What the skill does and when to use it. Claude uses this for auto-discovery.
---
# Skill Title
Skill content goes here...Frontmatter fields:
| Field | Required | Description |
|---|---|---|
name |
Yes | Skill identifier (lowercase, hyphens, max 64 chars) |
description |
Yes | When to use this skill (max 1024 chars) - crucial for auto-discovery |
allowed-tools |
No | Tools Claude can use without permission (e.g., "Read, Grep, Bash(node:*)") |
version |
No | Skill version |
license |
No | License identifier |
Best practices:
- Keep
SKILL.mdunder 500 lines - Use
references/subdirectory for detailed documentation - Write descriptions that match what users naturally say
- Include keywords users would search for
Skills can include supporting files:
skills/my-skill/
├── SKILL.md # Main skill (required)
├── references/ # Detailed documentation
│ ├── setup.md
│ └── examples.md
└── scripts/ # Utility scripts
├── fetch.js
└── validate.js
Reference these in your SKILL.md:
## References
Consult these resources as needed:
- ./references/setup.md -- Setup and configuration guide
- ./references/examples.md -- Usage examplesThe .claude-plugin/marketplace.json file catalogs all plugins:
{
"name": "marketplace-name",
"owner": {
"name": "Owner Name",
"email": "owner@example.com"
},
"metadata": {
"description": "Marketplace description"
},
"plugins": [
{
"name": "plugin-name",
"source": "./plugins/plugin-name",
"description": "What the plugin does."
}
]
}Plugin entry fields:
name(required): Plugin identifier in kebab-casesource(required): Relative path to plugin directorydescription: Brief description for the plugin list
-
Create the plugin directory structure:
mkdir -p plugins/my-plugin/.claude-plugin mkdir -p plugins/my-plugin/skills/my-skill
-
Create
plugins/my-plugin/.claude-plugin/plugin.json:{ "name": "my-plugin", "version": "1.0.0", "description": "What the plugin does", "author": { "name": "Your Name", "email": "you@example.com" } } -
Create
plugins/my-plugin/skills/my-skill/SKILL.md:--- name: my-skill description: When to use this skill and what it does. --- # My Skill Content...
-
Create
plugins/my-plugin/README.md:# My Plugin Brief description. ## License MIT
-
Add to
.claude-plugin/marketplace.json:{ "name": "my-plugin", "source": "./plugins/my-plugin", "description": "What the plugin does." } -
Add to
README.mdinstallation examples:/plugin install my-plugin
Test plugins locally before publishing:
# Load plugin for testing
claude --plugin-dir ./plugins/my-plugin
# Validate plugin structure
claude plugin validate ./plugins/my-pluginUsers install plugins from this marketplace:
# Add the marketplace
/plugin marketplace add expo/skills
# Install a plugin
/plugin install expo-app-design
/plugin install upgrading-expo
/plugin install expo-cicd-workflows- Plugin names: Use kebab-case (e.g.,
expo-app-design) - Skill names: Use kebab-case (e.g.,
building-ui,cicd-workflows) - File names: Use kebab-case for all files
- Author emails: Use
@expo.ioor@expo.devdomain - License: MIT for all plugins
- README.md: Include in each plugin with brief description and license