Skip to content

Factory Droid

Local Droid sessions contain the richest Factory record. The cloud Sessions API is useful for hosted work but has a narrower transcript contract and may be enabled only for selected organizations.

Source Use it for
factory Local Droid JSONL transcripts and usage sidecars.
factory-cloud Explicit, read-only Factory cloud Sessions API import.

The local importer reads each Droid JSONL transcript and joins its matching usage sidecars. It reconstructs user and assistant turns, reasoning, tool calls and results, file changes, model and usage data, and worker relationships in the order recorded by Factory. Worker runs are stored as linked conversations instead of being folded invisibly into the parent session.

The explicit cloud importer reads Factory’s Sessions API. When a cloud record matches an already imported local session by provider identity, Hansard keeps the richer local transcript and uses the cloud response to add hosted metadata. A cloud-only session is still archived from the chat and output the API returns, but cloud responses do not include tool arguments. Reimporting either source updates its existing session; access to cloud sessions can still depend on the organization’s API configuration.

Terminal window
hansard import --source factory --since all
hansard import factory-cloud --since all
hansard index rebuild

Cloud access uses FACTORY_API_KEY or a configured Factory API key.

After the import finishes, open Conversations and selectFilter & sort. Set Source toFactory Droid or Factory cloud sessions, choose the backfill window underTime, and use Folder when the same harness appears in several projects. Select a result to inspect its messages, tool calls and results, files, commits, model and usage fields, and source provenance in one conversation view.

For a local source that should stay current, open Settings → Indexing & Imports. Automatic follows detected local harnesses; Custom lets Sources scannedselect an explicit set. Explicit cloud and account-export sources do not turn into background network jobs here. If the expected result is absent after resetting the conversation filters, return to the terminal import in this guide and add --explain-skips where supported.

  • Local messages, tools, diffs, linked worker runs, and aggregate usage sidecars.
  • Cloud session chat, status, repository attribution, and tool output returned by the Sessions API.
  • The richer local transcript when the same cloud work has a local Droid copy.
  • Factory cloud endpoints may return 403 when the organization does not have Sessions API access.
  • Cloud tool results do not include the arguments that produced them, so those sessions can contain results without matching tool calls.
  • A cloud session without repository metadata remains uncategorized because its hosted working directory is not a local project path.
Terminal window
hansard import --source factory --since all
hansard import factory-cloud --since all
hansard index rebuild