Skip to content

Crush

Crush stores conversations in each project’s .crush/crush.db database. Hansard reads that history without launching Crush or evaluating its configuration.

Source Use it for
crush Local Crush conversations and linked child sessions.

Hansard looks for .crush/crush.db under the current directory and common project folders: Documents/GitHub, Developer, Projects, Code, and Work in the home directory. Discovery searches up to five nested directories and skips dependency folders and symbolic links. The directory containing .crush supplies the conversation’s working folder and project attribution. Custom locations can be selected with the environment variables below.

Before reading messages, Hansard takes a consistent SQLite snapshot that includes committed changes in the write-ahead log. It preserves that snapshot as a shared raw archive, including file versions and session metadata, and imports each conversation separately. Message parts preserve their ordering, reasoning, tool arguments, and tool results. Compaction summaries and generated continuations remain context rather than additional human prompts. Continuing a session updates its existing archive; changing a different conversation does not reimport it.

Terminal window
hansard import --source crush --since all
hansard index rebuild
  1. When the import finishes, open Conversations and selectFilter & sort.
  2. Set Source to Crush and setTime to the window you imported. UseFolder to narrow the list when you use this harness in several projects.
  3. Select a conversation to check its messages, tool calls, files, commits, model, and token usage.

To keep archiving new sessions from a local harness, openSettings → Imports. Automaticfollows every supported harness installed on this computer.Custom lets you turn individual harnesses on or off. Cloud sources and account exports never run from here; each needs its own import command. If a conversation you expect is missing after you reset the filters, run the import command on this page again with --explain-skips where the source supports it.

  • Prompts, replies, recorded reasoning, compaction summaries, and manual shell output.
  • Tool calls and results, including edit arguments used to render diffs.
  • Embedded attachment bytes and references to remote images.
  • Session titles, timestamps, recorded models, and linked child sessions.
  • SQLite file history, todos, latest-context counters, and reported cost in the raw snapshot.
  • Instruction backups include global CRUSH.md and AGENTS.md, plus project Crush instruction files and their .local.md variants. Global paths follow CRUSH_GLOBAL_CONFIG and XDG_CONFIG_HOME; hansard memory backup refreshes them without executing crushrc or configuration commands.
  • Crush stores the latest context and completion counts, not cumulative token usage. Its reported cost can include child work. These values remain source metadata and are excluded from accounting totals; model identity is retained.
  • Unknown content parts are reported in session metadata and preserved in the raw snapshot. Malformed sessions are reported as import errors and do not replace an existing archive.
  • Remote image URLs are retained; the importer does not fetch them. Embedded files use Hansard’s attachment size limits.
  • Each session is limited to 250,000 message or file-version rows and 128 MB of combined message and file content. Discovery visits at most 20,000 directories.
  • For other project roots, set HANSARD_CRUSH_ROOTS to a path-separated list. HANSARD_CRUSH_DB selects explicit database paths; HANSARD_CRUSH_DATA_DIR selects one data directory. Set HANSARD_CRUSH_CWD when a custom data directory does not identify its project.
  • Crush does not record its application version or configured reasoning effort in these rows. Hansard does not infer them from the currently installed binary.
  • Custom context_paths and global_context_paths are not evaluated. Shared project AGENTS.md files use the regular project-instruction backup.
Terminal window
hansard import --source crush --since all
hansard index rebuild