Skip to content
claudewheel.import_
Edit
On this page

Import Claude Code session data from an external directory into the shared store.

#claudewheel.import_

#claudewheel.import_

Import Claude Code session data from an external directory into the shared store.

#ImportResult

Counters tracking the outcome of an import operation.

#_skip_dangling

python
def _skip_dangling(path: Path) -> bool

Report and skip path when it is a symlink whose target does not exist.

A store archived from another machine carries that machine's absolute symlinks; on any other machine they resolve to nothing. Reading one raises FileNotFoundError, which would otherwise abort the whole import before a single valid session is copied.

#_normalize_cwd

python
def _normalize_cwd(cwd: str) -> str

Normalize a cwd for comparison.

Case-folds the drive letter (C:\ -> c:\), strips trailing / and \.

#_build_rewriters

python
def _build_rewriters(mappings: list[tuple[str, str]]) -> list[tuple[re.Pattern[str], str]]

Compile regex patterns for JSON-level path rewriting.

Returns a list of (pattern, to_path) pairs, sorted longest from_path first so that longer prefixes match before shorter ones.

#_apply_rewrites

python
def _apply_rewrites(line: str, rewriters: list[tuple[re.Pattern[str], str]]) -> tuple[str, bool]

Apply all path rewriters to a single line of text.

Returns (new_line, changed).

#_rewrite_jsonl

python
def _rewrite_jsonl(src_path: Path, dst_path: Path, rewriters: list[tuple[re.Pattern[str], str]], old_uuid: str | None, new_uuid: str | None, dry_run: bool) -> int

Read a JSONL file, apply path rewrites (and optional UUID reid), write atomically.

Returns the number of lines where at least one replacement was made.

#_SessionBundle

A session's JSONL file plus its optional companion directory.

#_scan_source

python
def _scan_source(source: Path) -> list[_SessionBundle]

Walk <source>/projects/*/ and collect session bundles.

#run_import

python
def run_import(store: SharedStore, source: str, mappings: list[tuple[str, str]], reid: bool=False, dry_run: bool=False) -> ImportResult

Import session data from an external directory into the shared store.

Parameters ---------- store: The destination :class:SharedStore (the local shared-store layout). source: Path to the external directory (must contain a projects/ subdir). mappings: List of (from_path, to_path) pairs. to_path values are already resolved to absolute paths on the current machine. reid: If True, assign new UUIDs to sessions that collide with existing ones in the shared store. dry_run: If True, report what would happen without writing anything.

#_copy_simple_artifacts

python
def _copy_simple_artifacts(source_root: Path, dirname: str, old_uuid: str, effective_uuid: str, is_reided: bool, result: ImportResult, dry_run: bool, store: SharedStore) -> None

Copy UUID-keyed artifacts from a simple directory (todos, session-env, etc.).

More tools from this site

  • claudestream Drive Claude Code from Python: run it as a subprocess and read its output as typed events, with async and sync sessions, sandbox policies, and tools you define in Python
  • dirstat Fast, single-binary directory statistics CLI: every file under a tree grouped by format, with counts, sizes, and lines of code, as a colored terminal table or as JSON
  • fastware A batteries-included ASGI framework: msgspec JSON, a managed Granian server, dependency injection, SSE, WebSockets, auth, and a test client
  • go-toml-edit Zero-dep TOML editing library for Go with comment preservation
  • howmuchleft The fastest Claude Code statusline: context window, 5-hour, and weekly limit usage as three customizable gradient bars, rendering in about 6 ms
  • orxtra
  • pgdesign
  • predraw Declarative rendering pipeline: describe a scene in JSON and get SVG, PNG and WebP out, with light and dark style tokens, reusable components and text converted to path outlines
  • reposummary Turn a git repository's history into a Markdown journal: pick a time window or revision range and get a readable digest of what changed, optionally narrated by an LLM
  • rlsbl Release orchestration and project scaffolding CLI that bumps versions, validates a structured JSONL changelog, tags only the commit CI verified, and publishes to npm, PyPI, Go and more
  • safegit git wrapper CLI that gives each commit its own temporary index and retries ref updates on conflict, so concurrent agents share one repository
  • saferm Command-line replacement for rm that archives every deletion with a mandatory reason and the context it ran in, so deleted files can be listed, inspected and restored
  • selfdoc Static Site Generator that builds a project's documentation site directly from its source code, so the docs can never drift from the code they describe, with SEO/AEO, first-class blog, search, and cross-project linking built in
  • strictcli
  • stricttest An always-on test-isolation floor: a pytest plugin and a Go env-hygiene module that make a test suite structurally unable to reach real credentials, the real HOME, the network, or the development repository.
  • wesktop A Python framework that turns an ASGI web app into a desktop application, serving it from a local Granian server and displaying it in a native OS window via pywebview
Search