Migrate from Claude Code

Migrate from Claude Code

Syntic Code is drop-in compatible with most Claude Code setups. Your .claude/ directory, hooks, slash commands, skills, and MCP server config can all be reused — usually with zero edits.

TL;DR

  1. Install Syntic Code (curl -fsSL https://syntic.ai/install.sh | sh)
  2. Run syntic migrate in any repo that has a .claude/ folder
  3. Done. The CLI now reads the same configs and ships the same workflows.

What syntic migrate Does

syntic migrate [--dry-run] [--keep-claude]
  • Copies .claude/settings.json.syntic/settings.json (translates field names)
  • Symlinks .claude/commands/.syntic/commands/ (no duplication)
  • Symlinks .claude/skills/.syntic/skills/
  • Symlinks .claude/agents/.syntic/agents/
  • Detects hooks that reference claude and offers to update them

By default both directories remain functional, so you can run either CLI on the same repo. Use --keep-claude to skip the deprecation warning.

Side-by-Side Concepts

Claude CodeSyntic CodeNotes
claude binarysyntic binarySame UX, faster startup
.claude/settings.json.syntic/settings.jsonSame schema
.claude/commands/*.md.syntic/commands/*.mdSame format
.claude/skills/*/SKILL.md.syntic/skills/*/SKILL.mdSame frontmatter
.claude/agents/*.md.syntic/agents/*.mdSame frontmatter
claude --resumesyntic --resumeSame session IDs
/help, /clear, /modelSameAll built-in slash commands match
Plan ModePlan ModeIdentical UX
MCP serversMCP serversSame transport, same configs
Hooks (PreToolUse, etc.)Hooks (PreToolUse, etc.)Same event names

What’s Different

AreaDifference
Model defaultkimi-k2-6 (Syntic) instead of claude-sonnet-4-6
Provider keysBring your own Anthropic key to keep using Claude
Cloud DesktopSyntic Cloud Desktop is included; Claude has no equivalent
EnterpriseSSO, SCIM, managed policy, self-hosted are first-class
PricingPer-token or flat-rate seat license; no API metering surprise

Configuration Translation

Most fields are 1:1. The migration tool handles the renames:

Claude Code fieldSyntic Code field
permissions.allowpermissions.allow (same)
model (string)model.default
cleanupPeriodDayssessions.retentionDays
enableTelemetrytelemetry.enabled

Keeping Both Side-by-Side

The migration creates symlinks rather than copying, so:

  • Edits in .claude/skills/foo/SKILL.md immediately apply to Syntic
  • Edits in .syntic/skills/foo/SKILL.md immediately apply to Claude Code
  • Either CLI can be the daily driver while the other stays as backup

Rolling Back

syntic migrate --undo

Removes the symlinks, restores .syntic/ to its pre-migrate state. Your .claude/ directory is never modified.

Common Questions

Will my hooks work? Yes — hook event names and stdin/stdout contracts match.

Will my custom slash commands work? Yes — same markdown frontmatter, same $ARGUMENTS semantics.

Will my skills work? Yes — same SKILL.md format with name and description frontmatter.

Can I still use Claude models? Yes — set model.default: claude-sonnet-4-6 and provide ANTHROPIC_API_KEY.

What about sub-agents? Sub-agent definitions (.claude/agents/*.md) work as-is. The built-in sub-agent names match.

Need Help?