### Install Dependencies and Start Server Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/seminar/screenshots/README.md Use these commands to install project dependencies and start the development server. ```bash npm install && npm run dev ``` -------------------------------- ### Oh My Claudecode Setup Routing Examples Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/setup/SKILL.md These examples demonstrate how different arguments to the setup command are routed to specific OMC flows. The first argument is key for routing. ```bash /oh-my-claudecode:setup --local # => /oh-my-claudecode:omc-setup --local /oh-my-claudecode:setup doctor --json # => /oh-my-claudecode:omc-doctor --json /oh-my-claudecode:setup mcp github # => /oh-my-claudecode:mcp-setup github ``` -------------------------------- ### Install Oh My Claudecode and Run Setup Wizard Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/seminar/notes.md Install the Oh My Claudecode package globally and then run its setup wizard using the `claude-code` command. The setup wizard configures various aspects of the tool. ```bash # Step 1: Install OMC npm install -g oh-my-claudecode # Step 2: Run setup wizard claude-code "/oh-my-claudecode:omc-setup" ``` -------------------------------- ### Resume Setup Progress Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/omc-setup/SKILL.md Checks for existing setup state. If state exists, it prompts the user to resume or start fresh. ```bash bash "${OMC_SETUP_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/scripts/setup-progress.sh" resume ``` -------------------------------- ### Install Plugin from Local Marketplace Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/docs/LOCAL_PLUGIN_INSTALL.md After adding the local directory as a marketplace, use this command to install the plugin. Ensure the plugin name and version match your local setup. ```bash # 2. Install the plugin from the local marketplace claude plugin install oh-my-claudecode@oh-my-claudecode ``` -------------------------------- ### One-time Setup Script Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/benchmark/README.md Execute the setup script for one-time installation of dependencies, Docker image building, dataset caching, API key verification, OMC project build, and sanity checks. ```bash ./setup.sh ``` -------------------------------- ### OMC Setup Help Text Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/omc-setup/SKILL.md Displays the help text for the `omc-setup` command, outlining usage, modes, and examples. This is shown when the `--help` flag is used. ```bash /oh-my-claudecode:omc-setup # First time setup (or update CLAUDE.md if configured) /oh-my-claudecode:omc-setup --local # Update this project /oh-my-claudecode:omc-setup --global # Update all projects /oh-my-claudecode:omc-setup --force # Re-run full setup wizard ``` -------------------------------- ### Run Setup Script Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/benchmark/README.md Execute the setup script to initialize the environment. Check the output for any specific errors. ```bash ./setup.sh # Check output for specific errors ``` -------------------------------- ### Save Setup Progress Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/omc-setup/phases/01-install-claude-md.md Saves the current setup progress to a file, indicating that phase 2 can be started. The `` argument specifies whether the progress is for a local or global setup. ```bash bash "${OMC_SETUP_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/scripts/setup-progress.sh" save 2 ``` -------------------------------- ### Setup Workspace for Autopilot Demo Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/seminar/demos/demo-1-autopilot.md Prepare a clean directory and clear any previous OMC state before running the Autopilot demo. This ensures a fresh start for the autonomous execution. ```bash # Create clean workspace mkdir -p ~/demo-workspace/bookstore-api cd ~/demo-workspace/bookstore-api # Verify clean state ls -la # Should be empty # Clear any previous OMC state rm -rf .omc ``` -------------------------------- ### Install SWE-bench Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/benchmark/results/README.md Installs the SWE-bench tool using pip. This is a prerequisite for running the benchmarks. ```bash pip install swebench ``` -------------------------------- ### Setup TypeScript Project with Errors Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/seminar/demos/demo-2-ultrawork.md Creates a sample TypeScript project with intentional errors in multiple files. Installs dependencies and verifies the errors using `npm run check`. ```bash # Navigate to demo workspace cd ~/demo-workspace mkdir -p typescript-errors-demo cd typescript-errors-demo # Create package.json cat > package.json << 'EOF' { "name": "typescript-errors-demo", "version": "1.0.0", "scripts": { "build": "tsc", "check": "tsc --noEmit" }, "devDependencies": { "typescript": "^5.0.0" } } EOF # Create tsconfig.json cat > tsconfig.json << 'EOF' { "compilerOptions": { "target": "ES2020", "module": "commonjs", "strict": true, "esModuleInterop": true } } EOF # Create files with errors mkdir -p src cat > src/user.ts << 'EOF' export interface User { id: number; name: string; email: string; } export function createUser(name: string): User { return { id: Math.random(), name: name, email: undefined // ERROR: Type 'undefined' not assignable to 'string' }; } export function validateEmail(email) { // ERROR: Parameter 'email' implicitly has 'any' type return email.includes('@'); } EOF cat > src/order.ts << 'EOF' export interface Order { id: string; userId: number; items: string[]; total: number; } export function calculateTotal(items: string[]): number { let total = 0; for (let item of items) { total += item; // ERROR: Operator '+=' cannot be applied to 'number' and 'string' } return total; } export function createOrder(userId: number, items): Order { // ERROR: Parameter 'items' implicitly has 'any' type return { id: userId.toString(), userId: userId, items: items, total: calculateTotal(items) }; } EOF cat > src/product.ts << 'EOF' export interface Product { id: string; name: string; price: number; inStock: boolean; } export function getProduct(id: string): Product { return { id: id, name: "Sample", price: "29.99", // ERROR: Type 'string' not assignable to 'number' inStock: 1 // ERROR: Type 'number' not assignable to 'boolean' }; } export function filterInStock(products: Product[]): Product[] { return products.filter(p => p.inStock === "yes"); // ERROR: Operator '===' cannot be applied to 'boolean' and 'string' } EOF cat > src/index.ts << 'EOF' import { createUser, validateEmail } from './user'; import { createOrder } from './order'; import { getProduct, filterInStock } from './product'; function main() { const user = createUser("John Doe"); console.log(validateEmail(user.email)); const order = createOrder(user.id, ["item1", "item2"]); console.log(order); const product = getProduct("123"); const available = filterInStock([product]); console.log(available); } main(); EOF # Install dependencies npm install # Verify errors exist echo "Running TypeScript check to show errors..." npm run check ``` -------------------------------- ### Manual Publish Command Example (npm) Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/release/SKILL.md An example of a manual command to publish a package to the npm registry. ```bash npm publish --access public ``` -------------------------------- ### Install OMC Plugin Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/docs/GETTING-STARTED.md After adding the marketplace, use this command to install the OMC plugin. ```bash /plugin install oh-my-claudecode ``` -------------------------------- ### Install Project Dependencies Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/CONTRIBUTING.md Run this command in the project root to install all necessary Node.js dependencies. ```bash npm install ``` -------------------------------- ### Save Setup Progress Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/omc-setup/phases/03-integrations.md Saves the current setup progress and configuration type to the state file. This script is typically called after completing a setup step. ```bash CONFIG_TYPE=$(jq -r '.configType // "unknown"' ".omc/state/setup-state.json" 2>/dev/null || echo "unknown") bash "${OMC_SETUP_PLUGIN_ROOT:-"${CLAUDE_PLUGIN_ROOT}"}/scripts/setup-progress.sh" save 6 "$CONFIG_TYPE" ``` -------------------------------- ### Install Grok CLI Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/omc-teams/SKILL.md Installs and authenticates the Grok CLI. Ensure it is set up correctly for your environment. ```bash install and authenticate the Grok CLI ``` -------------------------------- ### Setup Oh My Claudecode CLI Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/README.md Execute the setup command for the OMC terminal CLI. This is the entrypoint for configuring the CLI. ```bash omc setup ``` -------------------------------- ### Install Language Servers Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/docs/REFERENCE.md If LSP tools are not working, install the necessary language servers globally using npm. ```bash npm install -g typescript-language-server ``` -------------------------------- ### Setup Directory for Demo Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/seminar/demos/demo-4-planning.md Prepare the workspace by creating and navigating into a new directory for the demo. This ensures a clean environment for the planning process. ```bash cd ~/demo-workspace mkdir -p auth-system-demo cd auth-system-demo # Can start with empty directory or minimal structure # Planning will ask what you want ``` -------------------------------- ### Install Claude CLI Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/omc-teams/SKILL.md Installs and authenticates the Claude Code CLI. Follow the official setup instructions for proper installation. ```bash npm install -g @anthropic/claude-cli ``` -------------------------------- ### Install Oh-My-ClaudeCode Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/benchmark/results/README.md Installs the Oh-My-ClaudeCode tool. Follow the main README for specific setup instructions. ```bash # Install oh-my-claudecode (if testing OMC) # Follow setup instructions in main README ``` -------------------------------- ### Process Setup Initialization (TypeScript) Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/src/hooks/setup/README.md Handles the initialization process for setup, taking a `SetupInput` object and returning a `Promise`. ```typescript const result = await processSetupInit({ session_id: 'abc123', transcript_path: '/tmp/transcript.md', cwd: '/path/to/project', permission_mode: 'normal', hook_event_name: 'Setup', trigger: 'init' }); ``` -------------------------------- ### Install Cursor CLI Agent Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/omc-teams/SKILL.md Installs and authenticates the cursor-agent CLI. If unavailable, this setup requirement should be reported. ```bash install and authenticate cursor-agent ``` -------------------------------- ### Initialize and Maintain Setup from Shell Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/src/hooks/setup/README.md Shows how to execute setup hooks for initialization and maintenance using a shell script by piping JSON input to the Node.js script. The `pwd` command dynamically sets the current working directory. ```bash #!/bin/bash # Initialize OMC INPUT=$(cat </^\\d/.test(x)).sort((a,c)=>a.localeCompare(c,void 0,{numeric:true}));console.log('Installed:',v.length?v[v.length-1]:'(none)')}catch{console.log('Installed: (none)')}" npm view oh-my-claudecode-sisyphus version 2>/dev/null || echo "Latest: (unavailable)" ``` -------------------------------- ### List Available Language Servers with lsp_servers Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/docs/TOOLS.md Returns a list of language servers that are installed and their current installation status. Useful for verifying LSP setup. ```python lsp_servers() ``` -------------------------------- ### Use Autopilot for Clear Ideas Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/docs/shared/mode-selection-guide.md Start with `autopilot` when you have a clear idea of the requirements. It handles most scenarios and automatically transitions between modes as needed. ```bash autopilot ``` -------------------------------- ### Run Setup Command within Claude Code (Flow B) Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/CONTRIBUTING.md Executes the setup command inside Claude Code after installing the plugin via the marketplace. This is part of Flow B. ```bash /setup ``` -------------------------------- ### Activate a Mode Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/docs/TOOLS.md Example of activating a mode by writing its state, including active status, current phase, and start time. ```python state_write(mode="autopilot", state={ active: true, current_phase: "expansion", started_at: "2024-01-15T09:00:00Z" }) ``` -------------------------------- ### Search and Use a Filesystem Tool Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/docs/COMPATIBILITY.md Searches for specific tools (e.g., 'filesystem') and demonstrates how to check permissions and invoke a tool like 'read_file'. Ensure the compatibility layer is initialized before use. ```javascript import { initializeCompatibility, getRegistry, checkPermission, getMcpBridge } from './compatibility'; async function searchAndRead() { await initializeCompatibility(); const registry = getRegistry(); // Search for filesystem tools const fileTools = registry.searchTools('filesystem'); console.log(`Found ${fileTools.length} filesystem tools`); // Find read_file tool const readTool = fileTools.find(t => t.name.includes('read')); if (readTool) { // Check permission const perm = checkPermission(readTool.name); if (perm.allowed) { const bridge = getMcpBridge(); const result = await bridge.invokeTool( readTool.source, 'read_file', { path: '/etc/hosts' } ); if (result.success) { console.log('File contents:', result.data); } } } } searchAndRead().catch(console.error); ``` -------------------------------- ### Rerun Setup and Restart Claude Code Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/docs/LOCAL_PLUGIN_INSTALL.md After installing a local plugin, it's necessary to re-run the setup process within Claude Code to ensure CLAUDE.md and skills are updated. A restart of Claude Code is also required for the changes to take effect. ```bash # 3. Re-run setup inside Claude Code so CLAUDE.md / skills reflect this checkout /setup # 4. Restart Claude Code to pick up the plugin ``` -------------------------------- ### Main Entry Points Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/src/hooks/setup/README.md Primary functions for processing setup initialization and maintenance tasks. ```APIDOC ## processSetupInit ### Description Processes setup initialization. ### Parameters #### Request Body - **input** (SetupInput) - Required - An object containing setup initialization parameters. - **session_id** (string) - Required - **transcript_path** (string) - Required - **cwd** (string) - Required - **permission_mode** (string) - Required - **hook_event_name** (string) - Required - **trigger** (string) - Required ### Returns - Promise ### Example ```typescript const result = await processSetupInit({ session_id: 'abc123', transcript_path: '/tmp/transcript.md', cwd: '/path/to/project', permission_mode: 'normal', hook_event_name: 'Setup', trigger: 'init' }); ``` ``` ```APIDOC ## processSetupMaintenance ### Description Processes setup maintenance. ### Parameters #### Request Body - **input** (SetupInput) - Required - An object containing setup maintenance parameters. - **session_id** (string) - Required - **transcript_path** (string) - Required - **cwd** (string) - Required - **permission_mode** (string) - Required - **hook_event_name** (string) - Required - **trigger** (string) - Required ### Returns - Promise ### Example ```typescript const result = await processSetupMaintenance({ session_id: 'abc123', transcript_path: '/tmp/transcript.md', cwd: '/path/to/project', permission_mode: 'normal', hook_event_name: 'Setup', trigger: 'maintenance' }); ``` ``` ```APIDOC ## processSetup ### Description Generic entry point that routes to init or maintenance based on trigger. ### Parameters #### Request Body - **input** (SetupInput) - Required - An object containing setup parameters. - **session_id** (string) - Required - **transcript_path** (string) - Required - **cwd** (string) - Required - **permission_mode** (string) - Required - **hook_event_name** (string) - Required - **trigger** (string) - Required ### Returns - Promise ### Example ```typescript const result = await processSetup({ session_id: 'abc123', transcript_path: '/tmp/transcript.md', cwd: '/path/to/project', permission_mode: 'normal', hook_event_name: 'Setup', trigger: 'init' // or 'maintenance' }); ``` ``` -------------------------------- ### Usage Example for Verification Tier Selection Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/docs/shared/verification-tiers.md Demonstrates how to import and use the tier selection functions to get the appropriate agent and model for verification. ```typescript import { selectVerificationTier, getVerificationAgent } from '../verification/tier-selector'; const tier = selectVerificationTier(changeMetadata); const { agent, model } = getVerificationAgent(tier); // Spawn appropriate verification agent Task(subagent_type=`oh-my-claudecode:${agent}`, model, prompt="Verify...") ``` -------------------------------- ### Manual Publish Command Example (twine) Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/release/SKILL.md An example of a manual command to upload distribution files to PyPI using twine. ```bash twine upload dist/* ``` -------------------------------- ### Autopilot: Create Habit Tracker CLI Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/seminar/slides.md Example command to start Autopilot for creating a command-line interface (CLI) tool to track daily habits. ```bash autopilot: create a CLI tool that tracks daily habits ``` -------------------------------- ### Team Skill with Codex CLI Workers Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/team/SKILL.md Example of using the team skill with Codex CLI workers for backend analysis. Requires installation of the Codex CLI. ```bash # With Codex CLI workers (requires: npm install -g @openai/codex) /team 2:codex "review architecture and suggest improvements" ``` -------------------------------- ### Create Sample Codebase for Review Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/seminar/demos/demo-3-pipeline.md Use this script to set up a small TypeScript project with intentional code smells for the pipeline demo. Ensure you are in the `~/demo-workspace` directory before running. ```bash cd ~/demo-workspace mkdir -p code-review-demo cd code-review-demo cat > calculator.ts << 'EOF' // TODO: This needs refactoring export class Calculator { private history: any[] = []; // Code smell: 'any' type calculate(a, b, op) { // Code smell: implicit 'any' types var result; // Code smell: use of 'var' switch(op) { case '+': result = a + b; break; case '-': result = a - b; break; case '*': result = a * b; break; case '/': if (b == 0) throw new Error("Division by zero"); // Code smell: '==' instead of '===' result = a / b; break; } this.history.push({a: a, b: b, op: op, result: result}); return result; } getHistory() { return this.history; } clearHistory() { this.history = []; } } EOF # Create tsconfig if needed cat > tsconfig.json << 'EOF' { "compilerOptions": { "target": "ES2020", "module": "commonjs", "strict": true } } EOF ``` -------------------------------- ### Tool Naming Examples Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/docs/COMPATIBILITY.md Demonstrates how to retrieve tools using their namespaced or short names from the registry. ```javascript getRegistry().getTool('search') ``` ```javascript getRegistry().getTool('my-plugin:search') ``` -------------------------------- ### Get Hover Information with lsp_hover Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/docs/TOOLS.md Returns type information and documentation at a specific cursor position in a file. Ensure the language server for the file type is installed. ```python lsp_hover(file="src/auth.ts", line=42, character=10) ``` -------------------------------- ### Initialize Project Session Manager Directories and Config Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/project-session-manager/SKILL.md Creates default directories and configuration files for the Project Session Manager if they don't exist. This includes setting up projects.json with an example alias and default settings, and initializing sessions.json. ```bash mkdir -p ~/.psm/worktrees ~/.psm/logs # Create default projects.json if not exists if [[ ! -f ~/.psm/projects.json ]]; then cat > ~/.psm/projects.json << 'EOF' { "aliases": { "omc": { "repo": "Yeachan-Heo/oh-my-claudecode", "local": "~/Workspace/oh-my-claudecode", "default_base": "main" } }, "defaults": { "worktree_root": "~/.psm/worktrees", "cleanup_after_days": 14, "auto_cleanup_merged": true } } EOF fi # Create sessions.json if not exists if [[ ! -f ~/.psm/sessions.json ]]; then echo '{"version":1,"sessions":{},"stats":{"total_created":0,"total_cleaned":0}}' > ~/.psm/sessions.json fi ``` -------------------------------- ### OMC Initialization Success Output Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/src/hooks/setup/README.md This is an example of the output received after a successful OMC initialization. It confirms the hook's actions, such as directory creation and environment variable setup. ```json { "continue": true, "hookSpecificOutput": { "hookEventName": "Setup", "additionalContext": "OMC initialized:\n- 5 directories created\n- 1 configs validated\n- Environment variables set: OMC_INITIALIZED" } } ``` -------------------------------- ### Initialize and Add Notepad Wisdom Entries Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/docs/FEATURES.md Initializes a plan-specific notepad directory and adds learning entries. Ensure the plan name is provided. ```typescript import { initPlanNotepad, addLearning, readPlanWisdom } from '@/features/notepad-wisdom'; // Initialize and record initPlanNotepad('api-v2-migration'); addLearning('api-v2-migration', 'API routes use Express Router pattern in src/routes/'); // Read back const wisdom = readPlanWisdom('api-v2-migration'); console.log(wisdom.learnings[0].content); ``` -------------------------------- ### Run the Vendor MCP Server Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/examples/vendor-mcp-server/README.md Execute this command from the repository root to start the reference server. ```bash node examples/vendor-mcp-server/server.mjs ``` -------------------------------- ### v3.0 Auto-Activation and Keyword Examples Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/docs/MIGRATION.md v3.0 introduces auto-activation, where Claude detects intent and activates behaviors automatically. Optional keywords can also be used to guide the activation. ```bash # 3.0 workflow: Just talk naturally OR use optional keywords "don't stop until user auth is done" # Auto-activates ralph-loop "fast: refactor the entire API layer" # Auto-activates ultrawork "plan: design the new dashboard" # Auto-activates planning "ralph ulw: migrate the database" # Combined: persistence + parallelism "find all database schema files" # Auto-activates search mode "commit these changes properly" # Auto-activates git expertise ``` -------------------------------- ### Pipeline Syntax Examples Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/seminar/slides.md Demonstrates different ways to define sequential, model-specified, and parallel stages within a pipeline. ```shell # Basic sequential /pipeline agent1 -> agent2 -> agent3 "task" ``` ```shell # With model specification /pipeline explore:haiku -> architect:opus -> executor:sonnet "task" ``` ```shell # With parallel stages /pipeline [explore, researcher] -> architect -> executor "task" ``` -------------------------------- ### Mount Versioned API Routes Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/benchmarks/harsh-critic/fixtures/plans/plan-api-refactor.md Example of mounting versioned API routes in the Express application. This setup allows for future versioning by adding new routes under different prefixes. ```typescript app.use('/api/v1', v1Routes); // Future: app.use('/api/v2', v2Routes); ``` -------------------------------- ### Run Tests and Build Project Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/project-session-manager/templates/issue-fix.md Use these commands to execute tests and build the project. Replace 'npm' with your project's package manager if different. ```bash # Run tests npm test # or appropriate test command ``` ```bash # Check build npm run build # or appropriate build command ``` -------------------------------- ### Update Oh My Claudecode via Claude Code Marketplace Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/README.md Follow these steps to update Oh My Claudecode if installed through the Claude Code marketplace. This involves updating the plugin and re-running the setup. ```bash # 1. Update the marketplace clone /plugin marketplace update omc # 2. Re-run setup to refresh configuration /setup ``` -------------------------------- ### Oh My Claudecode Setup Commands Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/setup/SKILL.md Use these commands to initiate different setup flows. The first argument determines the specific operation. ```bash /oh-my-claudecode:setup # full setup wizard /oh-my-claudecode:setup doctor # installation diagnostics /oh-my-claudecode:setup mcp # MCP server configuration /oh-my-claudecode:setup wizard --local # explicit wizard path ``` -------------------------------- ### Start Using Oh My Claudecode with Autopilot Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/seminar/notes.md Initiate Oh My Claudecode by describing the desired task, such as building a todo app, using the 'autopilot' command. This demonstrates the core functionality after setup. ```bash claude-code "autopilot: build me a todo app" ``` -------------------------------- ### Discovery Functions Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/docs/COMPATIBILITY.md Provides functions to discover plugins, MCP servers, and all available resources. It also includes utilities to check if a plugin is installed, retrieve plugin information, and get configured paths. ```APIDOC ## Discovery Functions ### Description Provides functions to discover plugins, MCP servers, and all available resources. It also includes utilities to check if a plugin is installed, retrieve plugin information, and get configured paths. ### Methods - `discoverPlugins(options: { pluginPaths: string[] }): Plugin[]` - `discoverMcpServers(options: { mcpConfigPath: string, settingsPath: string }): McpServer[]` - `discoverAll(options: { force: boolean }): DiscoveryResult` - `isPluginInstalled(pluginName: string): boolean` - `getPluginInfo(pluginName: string): PluginInfo` - `getPluginPaths(): string[]` - `getMcpConfigPath(): string` ### Parameters #### `discoverPlugins` - **pluginPaths** (string[]) - Required - Paths to search for plugins. #### `discoverMcpServers` - **mcpConfigPath** (string) - Required - Path to the MCP configuration file. - **settingsPath** (string) - Required - Path to the settings file. #### `discoverAll` - **force** (boolean) - Optional - Force re-discovery even if cached. #### `isPluginInstalled` - **pluginName** (string) - Required - The name of the plugin to check. #### `getPluginInfo` - **pluginName** (string) - Required - The name of the plugin to get information for. ### Response #### `discoverPlugins` Response (Plugin[]) - An array of discovered plugin objects. #### `discoverMcpServers` Response (McpServer[]) - An array of discovered MCP server objects. #### `discoverAll` Response (DiscoveryResult) - An object containing comprehensive discovery results. #### `isPluginInstalled` Response (boolean) - `true` if the plugin is installed, `false` otherwise. #### `getPluginInfo` Response (PluginInfo) - An object containing information about the plugin. #### `getPluginPaths` Response (string[]) - An array of configured plugin paths. #### `getMcpConfigPath` Response (string) - The configured path for MCP configuration. ### Request Example ```typescript import { discoverPlugins, discoverMcpServers, discoverAll, isPluginInstalled, getPluginInfo, getPluginPaths, getMcpConfigPath } from './compatibility'; const plugins = discoverPlugins({ pluginPaths: ['/custom/plugins/path'] }); const servers = discoverMcpServers({ mcpConfigPath: '~/.claude/claude_desktop_config.json', settingsPath: '~/.claude/settings.json' }); const result = discoverAll({ force: true }); if (isPluginInstalled('my-plugin')) { const info = getPluginInfo('my-plugin'); console.log(`${info.name} v${info.version}`); } const pluginPaths = getPluginPaths(); const mcpPath = getMcpConfigPath(); ``` ``` -------------------------------- ### Prepare Demo Workspace and Verify OMC Installation Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/seminar/demos/README.md Sets up a clean directory for demos and checks if the OMC command-line tool is accessible. Ensure OMC is installed and configured before running. ```bash mkdir -p ~/demo-workspace cd ~/demo-workspace which omc || echo "Run: /oh-my-claudecode:omc-setup" ``` -------------------------------- ### Mark OMC Setup Complete Script Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/omc-setup/phases/04-welcome.md This bash script retrieves the current OMC version from `.claude/CLAUDE.md` or a default configuration directory. If the version cannot be found in files, it attempts to get it using `omc --version`. Finally, it executes the `setup-progress.sh` script to mark the setup as complete with the determined OMC version. Ensure the `CLAUDE_CONFIG_DIR` and `OMC_SETUP_PLUGIN_ROOT` environment variables are set if not using default paths. ```bash # Get current OMC version from CLAUDE.md OMC_VERSION="" if [ -f ".claude/CLAUDE.md" ]; then OMC_VERSION=$(grep -m1 'OMC:VERSION:' .claude/CLAUDE.md 2>/dev/null | sed -E 's/.*OMC:VERSION:([^ ]+).*/\1/' || true) elif [ -f "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/CLAUDE.md" ]; then OMC_VERSION=$(grep -m1 'OMC:VERSION:' "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/CLAUDE.md" 2>/dev/null | sed -E 's/.*OMC:VERSION:([^ ]+).*/\1/' || true) fi if [ -z "$OMC_VERSION" ]; then OMC_VERSION=$(omc --version 2>/dev/null | head -1 || true) fi if [ -z "$OMC_VERSION" ]; then OMC_VERSION="unknown" fi bash "${OMC_SETUP_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT}}/scripts/setup-progress.sh" complete "$OMC_VERSION" ``` -------------------------------- ### Install Dependencies and Build Project Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/CONTRIBUTING.md Run these commands to install project dependencies and build the project. This is a standard step to resolve build failures related to missing esbuild. ```bash npm install npm run build ``` -------------------------------- ### Example: Prototype Implementation Approach with Grok Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/omc-teams/SKILL.md Example of spawning 1 Grok worker to prototype an implementation approach. The first parameter specifies the number of workers and the agent type, followed by the task description. ```bash /omc-teams 1:grok "prototype an implementation approach" ``` -------------------------------- ### Install HUD Wrapper and Dependency (Shell) Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/hud/SKILL.md Copies the HUD wrapper script and its dependency from the plugin's template directory to the Claude configuration's HUD directory. This step is crucial if `omc-hud.mjs` is missing or if the setup argument is used. ```bash HUD_DIR="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/hud" mkdir -p "$HUD_DIR/lib" cp "${CLAUDE_PLUGIN_ROOT}/scripts/lib/hud-wrapper-template.txt" "$HUD_DIR/omc-hud.mjs" cp "${CLAUDE_PLUGIN_ROOT}/scripts/lib/config-dir.mjs" "$HUD_DIR/lib/config-dir.mjs" ``` -------------------------------- ### Install Oh My Claudecode via Marketplace Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/README.md Use these commands sequentially to install the plugin from the GitHub marketplace. Ensure each command is entered one at a time. ```bash /plugin marketplace add https://github.com/Yeachan-Heo/oh-my-claudecode ``` ```bash /plugin install oh-my-claudecode ``` -------------------------------- ### Resolve Active OMC Plugin Root Source: https://github.com/yeachan-heo/oh-my-claudecode/blob/main/skills/omc-setup/SKILL.md This script resolves the current OMC plugin root by checking for the latest versioned plugin directory. It prioritizes a valid plugin installation and falls back to the CLAUDE_PLUGIN_ROOT environment variable if necessary. Ensure this is run before any setup commands or phase files. ```bash OMC_SETUP_PLUGIN_ROOT=$(node -e "const f=require('fs'),p=require('path'),h=require('os').homedir(),d=(process.env.CLAUDE_CONFIG_DIR||p.join(h,'.claude')).replace(/[\\/]+$/,''),b=p.join(d,'plugins','cache','omc','oh-my-claudecode'),valid=r=>f.existsSync(p.join(r,'skills','omc-setup','SKILL.md'))||f.existsSync(p.join(r,'hooks','hooks.json'))||f.existsSync(p.join(r,'docs','CLAUDE.md'));try{const vs=f.readdirSync(b,{withFileTypes:true}).filter(e=>(e.isDirectory()||e.isSymbolicLink())&&/^\d+\.\d+\.\d+/.test(e.name)).map(e=>e.name).sort((a,c)=>c.localeCompare(a,void 0,{numeric:true}));const hit=vs.map(v=>p.join(b,v)).find(valid);if(hit)console.log(hit);else if(process.env.CLAUDE_PLUGIN_ROOT)console.log(process.env.CLAUDE_PLUGIN_ROOT)}catch{if(process.env.CLAUDE_PLUGIN_ROOT)console.log(process.env.CLAUDE_PLUGIN_ROOT)}") export OMC_SETUP_PLUGIN_ROOT ```