A Claude Code Skill for compiling local Markdown LLM prompts into CherryStudio-compatible Remote JSON format.
The CherryStudio Prompt Compiler is a zero-dependency tool that converts local Markdown-formatted LLM prompts into the JSON format required by CherryStudio. It uses Claude Code's native model capabilities to intelligently parse YAML frontmatter, generate semantic emojis, and batch-process entire folders of prompt files.
- Zero External Dependencies: Uses only Claude Code built-in tools (Read, Glob, Write, Bash)
- Intelligent Emoji Generation: Leverages Claude's semantic understanding to match emojis to prompt descriptions
- Batch Processing: Process entire folders of Markdown files in one operation
- Complete Content Preservation: Retains YAML frontmatter and all Markdown formatting
- Error Tolerance: Continues processing even if individual files have issues
- Claude Code installed
- A project folder with Markdown prompt files
- Clone or copy this repository to your local machine
- Ensure the skill directory structure is in place:
cherrystudio-prompt-compiler/
└── skills/
└── compiling-prompts/
├── SKILL.md
├── reference/
└── examples/
- The skill will be automatically discovered by Claude Code
Simply ask Claude Code to compile your prompts:
Compile all prompts in ./prompts/ folder
Or use the skill trigger:
/compiling-prompts ./my-prompts/
Your Markdown files should include YAML frontmatter:
---
author: Your Name
version: 1.0
description: A helpful assistant for coding tasks
category:
- Development
tags:
- coding
- programming
---
# Code Assistant
You are a helpful coding assistant...The compiler generates cherry-studio-prompts.json:
[
{
"id": "1",
"name": "code-assistant",
"description": "A helpful assistant for coding tasks",
"emoji": "👨💻",
"group": ["Development"],
"prompt": "---\nauthor: ...\n---\n\n# Code Assistant\n..."
}
]| CherryStudio Field | Source | Notes |
|---|---|---|
id |
Auto-generated | Sequential: "1", "2", "3"... |
name |
Filename | Without .md extension |
description |
YAML description |
Empty string if missing |
emoji |
AI-generated | Semantic matching |
group |
YAML category |
["General"] if missing |
prompt |
Full content | YAML + Markdown body |
Compile prompts in ./my-prompts/
Compile prompts in ./prompts/ and save to ./output/prompts.json
The compiler will continue processing even if some files have issues:
Compilation complete with warnings:
- missing-yaml.md: No frontmatter found, using defaults
Successfully compiled: 5 files
Output: cherry-studio-prompts.json
The compiler uses semantic understanding to match emojis to your prompt descriptions:
| Description Keywords | Emoji |
|---|---|
| Product manager, PM, business | 👨💼 |
| Developer, engineer, coding | 👨💻 |
| Writer, content, writing | ✍️ |
| Designer, creative, art | 🎨 |
| Analytics, data, metrics | 📊 |
| Assistant, helper, copilot | 🤖 |
| Chat, support, communication | 💬 |
| Teacher, education, learning | 📚 |
skills/compiling-prompts/
├── SKILL.md # Main skill file
├── reference/ # Detailed documentation
│ ├── cherry-studio-schema.md # JSON Schema specification
│ ├── field-mapping.md # Field mapping rules
│ ├── emoji-generation.md # Emoji generation strategy
│ └── error-handling.md # Error handling guide
└── examples/ # Example files
├── basic-prompt.md # Simple prompt example
├── advanced-prompt.md # Complex prompt example
└── example-output.json # Expected output format
- Run the compiler to generate
cherry-studio-prompts.json - Open CherryStudio
- Go to Settings → Prompts
- Click "Import" and select the JSON file
- Your prompts will be available in CherryStudio
If your prompts use non-standard category formats:
# String format (will be converted to array)
category: Template
# Array format (used as-is)
category:
- Template
- ProductFiles without YAML frontmatter will use sensible defaults:
description: Empty stringgroup:["General"]emoji: Based on filename or content analysis
Problem: No Markdown files found
- Solution: Verify the directory path contains
.mdfiles
Problem: Some prompts are missing emojis
- Solution: Add a
descriptionfield to your YAML frontmatter
Problem: Category is not being recognized
- Solution: Ensure
categoryfield exists in YAML frontmatter
Problem: JSON output is empty
- Solution: Check that source files are valid Markdown with content
For detailed technical information, see:
Contributions are welcome! Please feel free to submit issues or pull requests.
MIT License - See LICENSE file for details
Created by Galen Dai
1.1.0