Migrate existing repositories with provider-specific files (.claude, .cursor, etc.) to OmniDev's unified approach...
This skill guides you through migrating repositories from provider-specific configurations to OmniDev.
.claude/, .cursor/, AGENTS.md, .mcp.json)npm install -g @omnidev-ai/cli
# or: bun install -g @omnidev-ai/cli
Verify: omnidev --version
omnidev init
Creates:
OMNI.md - Project instructions (source of truth)omni.toml - Configuration.omni/ - Runtime directory (auto-gitignored)Migrate content FROM (pick what exists):
CLAUDE.md, AGENTS.md.cursor/rules, .cursor/.cursorrules.claude/instructions.mdTO OMNI.md:
# Project Name
## Project Description
[2-3 sentences about purpose and functionality]
## Conventions
- Coding standards
- Style preferences
- Testing requirements
## Architecture
- Tech stack
- Key components
- Data flow patterns
DO NOT migrate:
capabilities/
āāā my-project-tools/
āāā capability.toml # Metadata
āāā agents/ # Custom agents (optional)
āāā commands/ # Commands (optional)
āāā docs/ # Documentation (optional)
āāā rules/ # Behavior rules (optional)
[capability]
id = "my-project-tools"
name = "My Project Tools"
version = "1.0.0"
description = "Project-specific tools and workflows"
[capability.providers]
# Enable for specific providers
claude = true # alias for claude-code
cursor = true
windsurf = true
Create capability directory:
mkdir -p capabilities/my-project-tools
Convert existing skills/commands:
.claude/skills/*.ts ā capabilities/my-project-tools/commands/capabilities/my-project-tools/agents/capabilities/my-project-tools/rules/Register in omni.toml:
[capabilities.sources]
my-project-tools = "file://./capabilities/my-project-tools"
[profiles.default]
capabilities = ["my-project-tools"]
FROM .mcp.json or .cursor/mcp.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path"]
}
}
}
TO omni.toml:
[mcp.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/path"]
Add:
# OmniDev runtime
.omni/
omni.local.toml
# Generated provider files
CLAUDE.md
AGENTS.md
.cursor/rules
.cursor/.cursorrules
.cursor/mcp.json
.mcp.json
Keep in version control: OMNI.md, omni.toml, capabilities/
# Remove generated files (will be regenerated)
git rm --cached CLAUDE.md AGENTS.md .mcp.json
# Optional: Remove old provider directories after migrating capabilities
# git rm --cached -r .claude/ .cursor/ .opencode/
omnidev sync # Generate provider files
omnidev doctor # Verify configuration
[capabilities.sources]
project-tools = "file://./capabilities/project-tools"
[profiles.default]
capabilities = ["project-tools"]
[capabilities.sources]
api-tools = "file://./capabilities/api-tools"
deploy-tools = "file://./capabilities/deploy-tools"
test-tools = "file://./capabilities/test-tools"
[profiles.default]
capabilities = ["api-tools", "deploy-tools", "test-tools"]
[capabilities.sources]
shared = "file://./capabilities/shared"
frontend = "file://./capabilities/frontend"
backend = "file://./capabilities/backend"
[profiles.frontend-dev]
capabilities = ["shared", "frontend"]
[profiles.backend-dev]
capabilities = ["shared", "backend"]
[profiles.fullstack]
capabilities = ["shared", "frontend", "backend"]
OMNI.md.cursor/rules to .gitignoreomnidev syncOMNI.mdOMNI.md, omni.toml, capabilities/, .gitignorenpm install -g @omnidev-ai/cli && omnidev syncProvider files not generated: Run omnidev doctor, check active profile has capabilities
MCP servers not working: Verify omni.toml MCP config, check logs with OMNIDEV_DEBUG=1 omnidev sync
Capabilities not loading:
omni.toml./ prefix for local)After migration:
omnidev doctor passesomnidev sync generates provider files.gitignoreOMNI.md and omni.toml committed