Skip to content

Releases: ivanviragine/crossby

crossby v0.2.4 — first public release

Choose a tag to compare

@ivanviragine ivanviragine released this 15 May 13:16

One config, every AI tool. Sync rules, agents, skills, permissions,
hooks, and MCP servers across Claude, Copilot, Gemini, Codex, Cursor,
OpenCode, VS Code, and Antigravity, and hand off live sessions between
them.

Sync

  • crossby agents convert — translate subagent definitions between
    Claude, Cursor, Gemini, Copilot, and Codex.
  • --strategy translate — per-file agent + skill rewrites with blocks for fields lost in translation (e.g. Claude allowed-tools, permissionMode: plan).
  • --plan / --doctor / --validate-target — pre-write inspection modes.
  • Persistent sync report at .crossby/sync-report.md after every real
    run; --no-persist-report opts out; --report-format markdown-table
    renders the same shape on stdout.
  • Plugin discovery: .claude/plugins/ and marketplace manifests are
    reported as Not Added with manual-setup notes.

Launch

  • Cross-provider model translation between Claude/Codex families;
    Cursor and unknown models pass through untouched.
  • Unified --plan flag translated to each tool's native syntax;
    unsupported tools error cleanly.

Init

  • crossby init --install-skill installs the bundled crossby-sync skill
    into every detected tool's skills directory.

Behavior changes

  • Codex agents path: .agents/ → .codex/agents/ (per upstream Codex
    docs). Legacy .agents/ is left untouched; a structlog warning fires.
  • MCP Bearer rewrites for Codex: Authorization: Bearer ${VAR} becomes
    bearer_token_env_var = "VAR"; arbitrary ${VAR} headers become
    env_http_headers entries.

1437 unit tests, ruff clean, mypy strict clean.