This directory contains tools for working with Claude plugin skills across different platforms.
This directory contains two main tools:
package-skills.go- Packages skills into a zip file for uploading to Claude web (claude.ai)codex-sync.go- Syncs skills to OpenAI Codex CLI format
IMPORTANT: Both scripts must be run from the repository root directory, not from within the scripts/ directory.
The package-skills.go script creates individual zip files for each skill from the marketplace, ready to upload to the Claude web interface at claude.ai.
Upload the packaged skills to Claude web to access all plugin skills directly in your browser sessions without needing Claude Code CLI. Each skill is packaged as a separate zip file that can be uploaded independently.
Run these commands from the repository root:
# Create individual zip files in .dist directory (default)
go run scripts/package-skills.go
# Create zip files in a custom directory
go run scripts/package-skills.go --output ~/my-skills
# Validate skills without creating zip files (dry run)
go run scripts/package-skills.go --dry-run --verbosego run scripts/package-skills.go [flags]| Flag | Description | Default |
|---|---|---|
--output <dir> |
Output directory for skill zip files | .dist |
--marketplace <file> |
Path to marketplace.json | ./.claude-plugin/marketplace.json |
--prefix |
Prefix skill names with plugin name | false |
--verbose |
Enable verbose logging | false |
--dry-run |
Validate without creating zip files | false |
go run scripts/package-skills.go
# Creates: .dist/commit-messages.zip, .dist/react.zip, etc.go run scripts/package-skills.go --output ~/Downloads/claude-skillsgo run scripts/package-skills.go --prefix
# Creates: .dist/core-commit-messages.zip, .dist/web-react.zip, .dist/app-swift-testing.zip, etc.go run scripts/package-skills.go --dry-run --verbose- Reads marketplace.json - Discovers all plugins and their skills
- Validates skills - Ensures each skill has required SKILL.md file
- Creates individual zips - Each skill packaged in its own zip file with optional plugin prefix
- Packages files - Recursively adds all skill files to each zip
- Reports statistics - Shows skills packaged, files added, and zip files created
- Run the script to create individual zip files in the
.distdirectory - Visit claude.ai
- Upload each zip file individually in the skills section
- Access the skills in your web conversations
The codex-sync.go script converts and copies skills from the Claude plugin marketplace to the Codex skills format, making them available for use in OpenAI's Codex CLI.
Run these commands from the repository root:
# Sync all skills to ~/.codex/skills (user-level)
go run scripts/codex-sync.go
# Sync to .codex/skills in current project (project-level)
go run scripts/codex-sync.go --project
# Dry run to see what would be synced
go run scripts/codex-sync.go --dry-run --verboseFrom the repository root:
go build -o codex-sync scripts/codex-sync.goFrom the repository root:
go run scripts/codex-sync.go [flags]codex-sync [flags]| Flag | Description | Default |
|---|---|---|
--output <dir> |
Custom output directory for Codex skills | ~/.codex/skills |
--plugins <dir> |
Directory containing Claude plugins | ./plugins |
--marketplace <file> |
Path to marketplace.json | ./.claude-plugin/marketplace.json |
--project |
Install to .codex/skills in current directory |
false |
--prefix |
Prefix skill names with plugin name | false |
--verbose |
Enable verbose logging | false |
--dry-run |
Show what would be synced without modifying files | false |
Installs skills to ~/.codex/skills for all your Codex sessions. Run from repository root:
go run scripts/codex-sync.goInstalls skills to .codex/skills in the current repository. Run from repository root:
go run scripts/codex-sync.go --projectRun from repository root:
go run scripts/codex-sync.go --output /path/to/custom/skillsSee exactly what would be synced without making changes. Run from repository root:
go run scripts/codex-sync.go --dry-run --verboseRun from repository root:
go run scripts/codex-sync.go --marketplace /path/to/marketplace.json- Reads marketplace.json - Discovers all plugins and their skills
- Finds skill directories - Locates each skill's SKILL.md and supporting files
- Creates flat structure - Skills use their original names (e.g.,
commit-messages,react) or prefixed names with--prefixflag - Copies files - Recursively copies all skill files to the target directory
- Maintains structure - Preserves directory structure within each skill folder
Note: Changes to source skills require re-running the sync to update the copied files in Codex.
By default, skills are synced with their original names (flattened structure without plugin prefix):
| Claude Plugin Skill | Codex Skill Name (default) | With --prefix flag |
|---|---|---|
core:commit-messages |
commit-messages |
core-commit-messages |
web:react |
react |
web-react |
app:swift-testing |
swift-testing |
app-swift-testing |
Note: All skill names are unique across plugins, so no conflicts occur with the flattened structure.
After syncing, you can use skills in Codex CLI:
# Invoke a skill explicitly (using default flattened names)
$commit-messages
$react
$swift-testing
# Or with --prefix flag enabled
$core-commit-messages
$web-react
$app-swift-testing
# Let Codex auto-select based on context
# Just describe what you need and Codex will use the appropriate skillThe sync tool preserves all skill features:
- ✅ SKILL.md with YAML frontmatter
- ✅ Reference documentation files
- ✅ Scripts and executables
- ✅ Resource files and assets
- ✅ Nested directory structures
Based on the current marketplace configuration, the following skills will be synced (shown with default flattened names):
commit-messages- Git/conventional commit message guidanceexpectations- Software engineering expectations and standardslearn- Learning and knowledge buildingpr- Pull request creation and reviewwriting- Technical writing guidanceprompt-master- Prompt refinement and optimization
css- CSS best practices and modern patternstdd- Test-driven development for web appsreact- React architecture and patternsreact-testing- React testing strategiesfrontend-testing- Frontend testing approachesweb-design- Web design principleseyes- Visual design and UI reviewchatgpt-app-sdk- ChatGPT app SDK integration
swift-testing- Swift testing with Swift Testing frameworkapp-intent-driven-development- App Intent-first iOS developmentswiftui-architecture- SwiftUI architecture patternsdebug- iOS debugging techniques
status-updates- Status update creation and formatting
gps-method- Personal goal achievement methodology
Note: Use the --prefix flag to add plugin prefixes (e.g., core-commit-messages instead of commit-messages)
Ensure the skill directory exists and contains a SKILL.md file:
ls -la plugins/core/skills/commit-messages/Verify the marketplace.json correctly references skill paths:
cat .claude-plugin/marketplace.json | grep -A 5 "skills"Ensure you have write permissions to the output directory:
# Check current directory permissions
ls -la .
# Or specify a directory where you have write access
go run scripts/package-skills.go --output ~/Downloads/claude-skillsRun with verbose flag to see what's being packaged:
go run scripts/package-skills.go --dry-run --verboseThe script automatically creates the output directory if it doesn't exist. If you see errors, ensure the parent directory exists and you have write permissions.
Ensure you have write permissions to the target directory:
# For user-level install
chmod 755 ~/.codex
# For project-level install
chmod 755 .codex- Verify the sync completed successfully
- Check the output directory contains the skills:
ls -la ~/.codex/skills/ - Restart your Codex CLI session
scripts/
├── package-skills.go # Package skills to zip for Claude web
├── codex-sync.go # Sync skills to Codex CLI
├── go.mod # Go module definition
└── README.md # This file
Both scripts share similar architecture:
package-skills.go:
main()- CLI argument parsing and orchestrationreadMarketplace()- Parses marketplace.jsoncreateSkillsZip()- Creates and manages zip archivepackagePlugin()- Packages all skills for a pluginpackageSkill()- Adds individual skill to zipaddFileToZip()- Adds files to zip with compression
codex-sync.go:
main()- CLI argument parsing and orchestrationreadMarketplace()- Parses marketplace.jsonsyncPlugin()- Syncs all skills for a pluginsyncSkill()- Syncs individual skill directorycopyFile()- Copies files with permissions
Run dry runs to test without modifying files. From repository root:
# Test package-skills.go (zip packaging)
go run scripts/package-skills.go --dry-run --verbose
# Test codex-sync.go (Codex sync)
go run scripts/codex-sync.go --dry-run --verboseThese scripts are part of the mintuz-claude-plugins repository and follow the same license.