Skip to content

feat(claude): support Claude Desktop import pointers and Claude Cloud migration - #7

Open
elijahr wants to merge 1 commit into
xhluca:mainfrom
elijahr:feat/claude-desktop-cloud-support
Open

elijahr wants to merge 1 commit into
xhluca:mainfrom
elijahr:feat/claude-desktop-cloud-support

Conversation

@elijahr

@elijahr elijahr commented Sep 30, 2026

Copy link
Copy Markdown

Summary

Adds support for Claude Desktop session discovery on import and migrating from Claude Cloud exports.

  • Claude Desktop companion pointer: When importing or converting to Claude format (--to claude), writes the native Claude Code JSONL session to ~/.claude/projects/ and generates the companion local_<cliSessionId>.json pointer under claude-code-sessions/<org_id>/<project_id>/ so imported sessions appear simultaneously in both Claude Desktop and Claude Code CLI.
  • Cross-platform Desktop detection: Automatically resolves standard claude-code-sessions directories on macOS (~/Library/Application Support/Claude), Linux (~/.config/Claude), and Windows (%APPDATA%/Claude), with support for --claude-desktop-dir and CLAUDE_DESKTOP_CONFIG_DIR.
  • Project directory matching: Dynamically maps to an existing project by matching session cwd, falls back to the active org/project directory, or initializes the default 00000000-0000-4000-8000-000000000001 pair.
  • Claude Cloud migration: Adds AgentFormat.CLAUDE_CLOUD = "claude-cloud" read-only source adapter to ingest Claude.ai data export bundles (conversations.json or individual conversation JSON files).
  • Format detection & conversion: Supports auto-detection and --from claude-cloud across inspect, convert, import, and catalog discovery.

Validation

  • Clean linting: uv run ruff check . passed with 0 errors.
  • Test suite: uv run pytest -q passed 1,543 tests, 55 skipped (100% pass rate).
  • Unit tests added: 24 new tests in tests/test_claude_desktop.py and tests/test_claude_cloud.py covering desktop pointer generation, path resolution, collision handling, and cloud format ingestion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant