Master the arcane art of theme transformation between VS Code and Obsidian
๐ง UNDER ACTIVE CONSTRUCTION ๐ง
This project is in early development and not ready for use yet!
Star โญ and watch ๐ this repo to be notified when it's ready.
Chromamancer is a powerful tool for weaving themes between VS Code and Obsidian. As a Chromamancer, you command the magic of color, transforming themes from one realm to another with precision and craft.
Have a VS Code theme you love? Weave it into Obsidian.
Want consistent theming across both apps? Chromamancer makes it effortless.
- ๐จ One theme, two apps - Maintain visual consistency across VS Code and Obsidian
- ๐ฎ Intelligent conversion - Smart color extraction and mapping
- ๐ญ Mood-based theming - Different themes for different projects (dark vampire theme for your horror story, bright minimal theme for productivity notes)
- ๐ Community-driven - Extensible brand system for customization
- ๐ Multiple interfaces - CLI, VS Code extension, and web app (coming soon)
The core conversion engine is complete and fully tested:
- โจ VS Code Theme Parser - Reads and validates VS Code theme JSON
- ๐จ Color Palette Extractor - Intelligently extracts the essence of colors with confidence tracking
- โ๏ธ Obsidian CSS Generator - Generates complete Obsidian themes with 40+ variables
- ๐งช Comprehensive Tests - 28 tests, all passing
- ๐ฏ Type-Safe - Full TypeScript support with strict mode
- ๐ ๏ธ Color Utilities - Lighten, darken, saturate, mix, and more
- ๐ฅ๏ธ CLI Tool - Command-line interface with Chromamancer branding
- ๐ฆ npm Package - Install globally with
npm install -g chromamancer - ๐ Documentation - Complete usage guides and examples
- ๐จ Example Themes - Pre-converted popular themes
- ๐ VS Code Extension - Convert themes directly from VS Code
- ๐ Web Interface - Browser-based theme converter
- ๐ญ Palette Jack - Cyberpunk-themed alternate brand
- Parse VS Code themes
- Extract color palettes with confidence tracking
- Generate Obsidian CSS themes
- Smart color fallbacks and generation
- Bidirectional conversion (Obsidian โ VS Code)
- Theme validation and quality checks
- Batch conversion support
-
chromamancer weave- Convert themes -
chromamancer scry- Preview themes -
chromamancer extract- Extract color palettes - Progress indicators and beautiful output
- File I/O with error handling
- Convert themes from within VS Code
- Bind themes to workspaces
- Preview before converting
- One-click theme application
- Brand system for custom tool personalities
- Community-created brands
- Theme gallery and sharing
- Plugin system for custom transformations
// 1. Parse a VS Code theme
const theme = await parseVSCodeThemeFromFile('./dracula.json');
// 2. Extract the color essence
const { palette, confidence } = extractPalette(theme);
// 3. Weave into Obsidian CSS
const { css } = generateObsidianCSS(palette, theme.type, {
themeName: 'Dracula',
author: 'Chromamancer',
});
// 4. Save it!
await writeFile('./dracula-obsidian.css', css);โจ Theme successfully woven!
chromamancer/
โโโ packages/
โ โโโ core/ # Conversion engine โ
COMPLETE
โ โโโ cli/ # CLI tool ๐ IN PROGRESS
โ โโโ vscode-ext/ # VS Code extension (planned)
โ โโโ web/ # Web interface (planned)
โโโ brand/
โ โโโ chromamancer/ # Fantasy/magic theme โ
โ โโโ palette-jack/ # Cyberpunk theme (planned)
โโโ docs/
โ โโโ AGENTS.md # AI assistant context
โ โโโ MAPPINGS.md # Color mapping reference
โ โโโ VOICE.md # Brand guidelines
โโโ examples/ # Example themes
# Clone the repo
git clone https://github.com/yourusername/chromamancer.git
cd chromamancer
# Install dependencies (requires pnpm)
pnpm install
# Run tests
pnpm test
# Build all packages
pnpm build
# Start development
pnpm dev# Run all tests
pnpm test
# Run tests in watch mode
pnpm test:watch
# Run type checking
pnpm type-check
# Lint code
pnpm lintWe welcome contributions! Once the project reaches v1.0, we'll have:
- Contribution guidelines
- Code of conduct
- Issue templates
- Brand creation guide
For now, feel free to:
- โญ Star the repo
- ๐ Watch for updates
- ๐ก Open issues with ideas
- ๐ Report bugs (when you find them)
Chromamancer uses a brand-driven architecture that allows for multiple personalities:
Fantasy/Magical Theme
- Commands:
weave,unweave,scry - Terms: grimoire, essence, incantation
- For: Writers, creatives, RPG enthusiasts
Cyberpunk Theme (Coming Soon)
- Commands:
jack,unjack,decrypt - Terms: manifest, matrix, protocol
- For: Developers, tech enthusiasts, cyberpunk fans
The brand system is fully extensible - anyone can create custom brands! Check out /brand/chromamancer/VOICE.md for inspiration.
- AGENTS.md - Complete project roadmap and context for AI assistants
- MAPPINGS.md - Detailed VS Code โ Obsidian color mappings
- VOICE.md - Chromamancer brand guidelines
More documentation coming as the project develops!
- Issues: Report bugs or request features
- Discussions: Ask questions and share ideas
- Bluesky: @code.lvnacy.xyz
MIT License - see LICENSE for details.
Chromamancer is built with:
- TypeScript - Type safety
- Vitest - Testing
- Zod - Validation
- Commander.js - CLI framework
- Chalk - Terminal colors
Inspired by the need for consistent theming across development tools and note-taking apps.
Check back soon for the initial release, or star โญ the repo to follow progress.
Made with โจ magic โจ and a lot of โ coffee