MCP server for creating, validating, and exporting Oh My Posh terminal prompt configurations.
Design beautiful terminal prompts without touching configuration files
π Launch App β’ π Documentation β’ π¬ Discussions

The Oh My Posh Visual Configurator is a modern, intuitive web application that lets you design and customize your terminal prompt visually. No more manual JSON editing or trial-and-error configurationβjust drag, drop, customize, and export!
Perfect for developers, DevOps engineers, and anyone who wants a beautiful, informative terminal prompt for PowerShell, Bash, Zsh, Fish, or any shell supported by Oh My Posh.
git)No installation required! Visit the hosted version:
π https://configurator.ohmyposh.dev/
# Clone the repository
git clone https://github.com/jamesmontemagno/ohmyposh-configurator.git
cd ohmyposh-configurator
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production (includes JSON minification)
npm run build
# Preview production build locally
npm run preview
npm run dev: Start Vite development servernpm run build: Build for production and minify all JSON assetsnpm run build:mcp: Build the MCP servernpm run mcp: Run the MCP servernpm run preview: Serve the production build from dist/npm run minify: Manually minify JSON files in the public/ directorynpm run format:json: Expand/format JSON files in public/ for easier editingnpm run validate: Validate all configuration files and manifestsnpm run lint: Run ESLint checknpm run test: Run testsWant to create Oh My Posh configurations using natural language with AI assistants? The Oh My Posh Configurator includes a Model Context Protocol (MCP) server that works with VS Code and GitHub Copilot.
Quick Setup for VS Code:
Add to your workspace .vscode/mcp.json:
{
"servers": {
"ohmyposh-configurator": {
"type": "stdio",
"command": "node",
"args": ["/path/to/ohmyposh-configurator/dist/mcp/index.js"]
}
}
}
Build the MCP server:
npm run build:mcp
Open GitHub Copilot Chat in VS Code and start creating prompts with AI!
Example Requests:
π Full MCP Server Documentation
π― Choose a Starting Point
β Add Segments
π¨ Customize
π Preview
πΎ Export or Share
Love your configuration? Share it with the community!
See CONTRIBUTING.md for detailed instructions.
After downloading your configuration file, follow the Oh My Posh installation guide to use it with your shell:
# PowerShell
oh-my-posh init pwsh --config ~/your-theme.json | Invoke-Expression
# Bash
eval "$(oh-my-posh init bash --config ~/your-theme.json)"
# Zsh
eval "$(oh-my-posh init zsh --config ~/your-theme.json)"
βββ public/
β βββ configs/ # Sample and community configurations
β β βββ samples/ # 6 pre-built professional templates
β β β βββ manifest.json # Sample configs metadata
β β βββ community/ # User-contributed themes
β β βββ manifest.json # Community configs metadata
β βββ segments/ # Segment metadata organized by category (103+ segments)
β βββ system.json # 14 system segments (path, battery, time, etc.)
β βββ scm.json # 8 version control segments (git, svn, etc.)
β βββ languages.json # 26 programming language segments
β βββ cloud.json # 12 cloud provider segments
β βββ cli.json # 30 CLI tool segments
β βββ web.json # 7 web-related segments
β βββ music.json # 3 music player segments
β βββ health.json # 3 health tracker segments
β βββ README.md # Documentation for adding segments
βββ src/
β βββ components/ # React components
β β βββ Canvas/ # Drag-and-drop prompt builder with tooltips support
β β βββ SegmentPicker/ # Category browser with segments
β β βββ PropertiesPanel/ # Segment, block, tooltip, and global properties editor
β β βββ PreviewPanel/ # Live prompt preview with tooltip previews
β β βββ AdvancedSettingsDialog/ # Progressive disclosure settings for advanced features
β β βββ ExtraPromptsDialog/ # Secondary prompts configuration
β β βββ ConfirmDialog/ # Reusable confirmation dialog
β β βββ ...
β βββ data/ # Configuration data and color schemes
β βββ store/ # Zustand state management with persistence
β β βββ configStore.ts # Main config state (blocks, segments, tooltips, global settings)
β β βββ advancedFeaturesStore.ts # Feature toggles for progressive disclosure
β βββ types/ # TypeScript type definitions (SegmentMetadata, Tooltip, etc.)
β βββ utils/ # Utility functions
β β βββ segmentLoader.ts # Dynamic segment loading with caching
β β βββ configExporter.ts # Export to JSON/YAML/TOML
β β βββ configImporter.ts # Import with auto-feature detection
β β βββ unicode.ts # Unicode escape handling
β βββ constants/ # Nerd Font icons and other constants
β βββ hooks/ # Custom React hooks (useConfirm, etc.)
βββ docs/ # Comprehensive documentation
β βββ config-migration-guide.md # Guide for config structure updates
β βββ segment-json-migration.md # Segment refactoring documentation
β βββ quick-reference.md # Quick reference for contributors
β βββ nerd-font-icons-reference.md # 200+ icon documentation
βββ scripts/ # Build and validation scripts
βββ validate-configs.js # Config validation tool
βββ README.md # Scripts documentation
Segments are now stored in separate JSON files by category in public/segments/. This makes it easy to add or modify segments without touching the codebase:
public/segments/languages.json){
"type": "segment-type",
"name": "Display Name",
"description": "Brief description",
"icon": "lang-python",
"defaultTemplate": " {{ .Property }} ",
"properties": [
{
"name": ".Property",
"type": "string",
"description": "Description of this template variable"
}
],
"options": [
{
"name": "option_name",
"type": "boolean",
"default": true,
"description": "What this option does"
}
],
"defaultCache": {
"duration": "168h",
"strategy": "folder"
}
}
{{ }} templates (e.g., .Full, .Path)home_enabled, fetch_version)public/segments/README.md)See public/segments/README.md for detailed instructions.
This project includes comprehensive SEO optimization:
oh my posh, terminal customization, shell prompt, powerline, prompt theme, terminal theme, powershell prompt, zsh theme, bash prompt, terminal configurator, visual editor, drag and drop, oh-my-posh builder, prompt generator
Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.
Source-derived launch command. Check the maintainerβs required arguments and credentials before running:
npx -y ohmyposh-configuratorMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-jamesmontemagno-ohmyposh-configurator": {
"command": "npx",
"args": [
"-y",
"ohmyposh-configurator"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the clientβs tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceOh My Posh Configurator works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.