# iFlow

> Import iFlow CLI project transcripts, including tool calls and the history from before each context compaction.

iFlow CLI shut down on April 17, 2026. Hansard still imports the history it
left on your machine. iFlow saved each conversation as a JSONL file in its
project folder, and Hansard imports those files. It does not treat the older prompt logs iFlow inherited
from Gemini CLI as complete sessions.

## Source IDs

| Source  | Use it for                                                                      |
| ------- | ------------------------------------------------------------------------------- |
| `iflow` | iFlow project transcripts in `~/.iflow/projects`, including compaction records. |

## How the import works

Hansard reads files named `projects/<project>/session-<uuid>.jsonl`. It orders
records by their timestamps, using their order in the file to break ties, and
rebuilds user and assistant text, images you attached, tool calls matched to
their results, and compaction records. Messages from before and after a
context compaction both stay in the conversation, instead of being replaced by
the summary. When iFlow writes the same tool call more than once while
streaming, Hansard keeps one copy. Copies that conflict stop that session from
importing.

The older prompt logs and echoed slash commands do not make a full iFlow
conversation, so Hansard does not turn them into extra sessions. A transcript
with an unknown or damaged record is not imported, rather than imported with
gaps. Empty records, iFlow's caveat notices, and echoed slash commands are
counted and left out. The project comes from the working directory recorded in
the file; the project folder name is only a hint. Importing again updates a
session when its transcript has grown.

## Import and keep current

**Import now**

```sh
hansard import --source iflow --since all
hansard index rebuild
```

**Keep current**

With **Automatic** source selection, the watcher already includes `iflow`.
With a **Custom** list, enable it. The watcher picks it up within 30 seconds:

```sh
hansard config sources enable iflow
```

## Review the import in the app

1. When the import finishes, open **Conversations** and select **Filter & sort**.
2. Set **Source** to **iFlow** and set **Time** to the window you imported. Use **Folder** 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, open **Settings → Imports**. **Automatic** follows 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.

## What Hansard preserves

- User and assistant text, images you attached, tool calls and results, and
  compaction points.
- History from before each compaction, not only the latest context.
- The working directory and the timestamps recorded in the file.
- An exact copy of each imported file.

## Known limitations

- Interactive iFlow sessions save empty usage values, so their token totals
  show zero. A zero here means iFlow did not record usage, not that the session
  used no tokens. Only non-interactive sessions report real counts.
- The older `logs.json` prompt history has no assistant messages and is not
  imported as a separate conversation.
- Slash commands that iFlow echoes as assistant output do not appear in the
  conversation.
- The five early iFlow releases that wrote only prompt logs have no full
  transcript, so Hansard does not import their history.
- A project folder Hansard cannot read is reported in the import diagnostics,
  and sessions in readable folders still import.

## Refresh an existing archive

To update iFlow conversations that an older Hansard version imported, reimport
them from iFlow's files:

```sh
hansard import --source iflow --since all
hansard index rebuild
```
