Global Rank · of 601 Skills
style creator AI Agent Skill
View Source: b-open-io/gemskills
MediumInstallation
npx skills add b-open-io/gemskills --skill style creator 19
Installs
Style Creator
Add new art styles to the gemskills style library with properly crafted prompts, reference tiles, and registry entries.
When to Use
- Adding a new art style to the library
- Creating a regional or cultural aesthetic style
- Defining a custom visual style with a reference tile
- Batch-adding multiple related styles
Important: Working Directory
All file edits and commands operate relative to ${CLAUDE_PLUGIN_ROOT} (the plugin root).
Sharp may fail in the plugin cache. If bun run optimize fails, the tile generation script auto-optimizes. If both fail, use sips as a fallback:
sips -s format png -s formatOptions best <tile-path> --out <tile-path>Workflow
Follow these steps in order. Do not skip steps.
Step 1: Define the Style
Gather from the user:
- Name: Human-readable name (e.g. "Miami Aesthetic")
- ID: Lowercase with hyphens (e.g.
miami-aesthetic) - Short name: 3-4 character abbreviation (e.g.
miam) - Category: One of:
traditional,digital,illustration,photography,design,retro,technique,decorative,creative,cultural
If the user provides only a name or concept, derive the ID and short name automatically. Choose the category that best fits.
Step 2: Write promptHints
The promptHints field is a comma-separated string of descriptors prepended to user prompts when the style is used. Focus on:
- Color palette keywords
- Texture and material descriptors
- Technique and medium references
- Mood and atmosphere terms
- Compositional patterns
Keep to 8-12 descriptors. These guide the model when generating user images, not the tile itself.
Step 3: Write the tilePrompt
Apply these principles — do NOT read external reference files, the rules are right here:
Core principle: Texture vs Object. The tile must transfer materiality/medium/technique, NOT a scene. A tile showing "a cyberpunk city" will bleed city elements into every user prompt. A tile showing "neon refractions on chrome with film grain" transfers only the visual physics.
6-part prompt structure:
- Full-bleed anchor:
Full-bleed [style] filling the entire canvas - Macro/texture anchor:
extreme close-up macro texture,seamless pattern,abstract composition - Style descriptors: Specific movements, artists, time periods
- Materiality/medium: What the art is "made of" —
cracked canvas,halftone dots,VHS static,watercolor bleed - Palette and lighting:
chiaroscuro,pastel gradients,neon rim light,sepia tones - Anti-container enforcers:
Edge to edge, no frame, no border, no [style-specific items]
Category tips:
- Abstract styles: Focus on geometry and brushwork, avoid naming objects
- Figurative styles (anime, comic): Generate the ink and paper, not a character. Use
dense montageorextreme macro of brushwork - Photography: Focus on camera artifacts — grain, light leaks, vignette, bokeh
- Design movements: Focus on repeating motifs and materials
- Regional aesthetics: Color palette and textures, NOT photos of places. No buildings, streets, or landmarks.
Anti-container items to add based on style:
- Paintings:
no canvas, no easel, no gallery, no museum, no wall - Crafts:
no hoop, no frame, no desk, no table - Photos:
no letterbox, no black bars, no monitor, no screen - Textiles:
no cloth edge, no fabric edge, no bed, no furniture
Step 4: Add to styles.json
Add the new style entry to the styles array in:
${CLAUDE_PLUGIN_ROOT}/skills/browsing-styles/assets/styles.jsonEntry format:
{
"id": "style-id",
"shortName": "shrt",
"name": "Style Name",
"category": "category",
"promptHints": "descriptor1, descriptor2, descriptor3",
"tilePrompt": "Full-bleed ... Edge to edge, no frame, no border."
}Verify the ID and short name are unique across all existing styles before adding.
Step 5: Generate the Tile
Generate the reference tile using the tile generation script:
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/browsing-styles/scripts/generate_tiles.ts --style <style-id>This generates a 512x512 PNG tile at assets/tiles/<style-id>.png and auto-optimizes it.
If auto-optimization fails, try manually from the plugin root:
bun run ${CLAUDE_PLUGIN_ROOT}/optimize -- --file=skills/browsing-styles/assets/tiles/<style-id>.pngIf sharp is unavailable, use sips:
sips -s format png -s formatOptions best ${CLAUDE_PLUGIN_ROOT}/skills/browsing-styles/assets/tiles/<style-id>.png --out ${CLAUDE_PLUGIN_ROOT}/skills/browsing-styles/assets/tiles/<style-id>.pngIf the style benefits from a reference image (e.g. a regional aesthetic), use the generate-image script with --input:
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/skills/generate-image/scripts/generate.ts \
"<tilePrompt text>" \
--input /path/to/reference.jpg \
--aspect 1:1 --size 1K \
--output ${CLAUDE_PLUGIN_ROOT}/skills/browsing-styles/assets/tiles/<style-id>.pngStep 6: Visual Verification
Do not read the generated tile back into context. Ask the user to visually inspect it. Common issues:
- Not full-bleed? (frames, borders, containers, canvas edges)
- Shows a scene instead of the aesthetic?
- Wrong color palette?
- Text, logos, or trademarked content?
If it fails, update the tilePrompt and regenerate.
Step 7: Update Counts
After adding styles, update the style count in these files:
${CLAUDE_PLUGIN_ROOT}/README.md(style count mentions)${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json(description text and version bump)${CLAUDE_PLUGIN_ROOT}/skills/browsing-styles/SKILL.md(count)${CLAUDE_PLUGIN_ROOT}/skills/team-group-photo/SKILL.md(count)
Regenerate STYLES.md from the plugin root:
bun -e "
const root = process.env.CLAUDE_PLUGIN_ROOT;
const data = JSON.parse(require('fs').readFileSync(root + '/skills/browsing-styles/assets/styles.json', 'utf8'));
const styles = data.styles;
const cats = data.categories;
const grouped = {};
for (const s of styles) { if (!grouped[s.category]) grouped[s.category] = []; grouped[s.category].push(s); }
let md = '# Art Styles Reference\n\n' + styles.length + ' styles across ' + Object.keys(grouped).length + ' categories. Use \\\`--style <id>\\\` or \\\`--style <short>\\\` with any image generation skill.\n\n## Categories\n\n| Category | Count | Description |\n|----------|-------|-------------|\n';
for (const [cat, desc] of Object.entries(cats)) { md += '| ' + cat + ' | ' + (grouped[cat]?.length || 0) + ' | ' + desc + ' |\n'; }
md += '\n';
for (const [cat, desc] of Object.entries(cats)) { const items = grouped[cat] || []; if (!items.length) continue; md += '## ' + cat.charAt(0).toUpperCase() + cat.slice(1) + '\n\n| Tile | ID | Short | Name |\n|------|-----|-------|------|\n'; for (const s of items) { md += '| <img src=\"skills/browsing-styles/assets/tiles/' + s.id + '.png\" width=\"80\" /> | ' + s.id + ' | ' + s.shortName + ' | ' + s.name + ' |\n'; } md += '\n'; }
require('fs').writeFileSync(root + '/STYLES.md', md);
console.log('STYLES.md written with ' + styles.length + ' styles');
"Step 8: Bump Version and Commit
Bump the patch version in ${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json and commit all changes.
Context Discipline
Do not read generated tile images back into context. The scripts output file paths only. Ask the user to visually inspect tiles and provide feedback for iteration.
Installs
Security Audit
View Source
b-open-io/gemskills
More from this source
Power your AI Agents with
the best open-source models.
Drop-in OpenAI-compatible API. No data leaves Europe.
Explore Inference APIGLM
GLM 5
$1.00 / $3.20
per M tokens
Kimi
Kimi K2.5
$0.60 / $2.80
per M tokens
MiniMax
MiniMax M2.5
$0.30 / $1.20
per M tokens
Qwen
Qwen3.5 122B
$0.40 / $3.00
per M tokens
How to use this skill
Install style creator by running npx skills add b-open-io/gemskills --skill style creator in your project directory. Run the install command above in your project directory. The skill file will be downloaded from GitHub and placed in your project.
No configuration needed. Your AI agent (Claude Code, Cursor, Windsurf, etc.) automatically detects installed skills and uses them as context when generating code.
The skill enhances your agent's understanding of style creator, helping it follow established patterns, avoid common mistakes, and produce production-ready output.
What you get
Skills are plain-text instruction files — not executable code. They encode expert knowledge about frameworks, languages, or tools that your AI agent reads to improve its output. This means zero runtime overhead, no dependency conflicts, and full transparency: you can read and review every instruction before installing.
Compatibility
This skill works with any AI coding agent that supports the skills.sh format, including Claude Code (Anthropic), Cursor, Windsurf, Cline, Aider, and other tools that read project-level context files. Skills are framework-agnostic at the transport level — the content inside determines which language or framework it applies to.
Chat with 100+ AI Models in one App.
Use Claude, ChatGPT, Gemini alongside with EU-Hosted Models like Deepseek, GLM-5, Kimi K2.5 and many more.