# Junie

> Import JetBrains Junie CLI sessions, IDE task chains, instructions, and project memory.

Hansard imports Junie's local CLI and JetBrains IDE history. Junie is grouped
under JetBrains; the models it uses retain their own company identity in Stats.

## Source IDs

| Source  | Use it for                                         |
| ------- | -------------------------------------------------- |
| `junie` | CLI session folders and JetBrains IDE task chains. |

## How the import works

Junie CLI keeps an event log, a saved agent state, and a usage summary for each
session under `~/.junie/sessions`. Hansard combines those records: event updates
become conversation messages and tools, while the saved state supplies exact
tool arguments when it still contains the matching action. Resuming a session
updates the same archived conversation. Junie's remote browser mode continues
the local CLI session, so its history uses this same import path.

The IDE stores task chains in JetBrains project caches. Hansard reads each
task's final agent state, or retained step records when the state is absent.
Native IDE history takes precedence over Junie's own migrated CLI copy to avoid
duplicate conversations. Later CLI turns join the richer IDE history under the
same archive identity. The CLI and IDE remain distinct source labels in the
archive. Original files and session sidecars are preserved, and files that
change during capture are retried on a later import.

## Import and keep current

**Conversation history**

```sh
hansard import --source junie --since all
hansard config sources enable junie
```

`JUNIE_HOME` changes the default CLI home. `HANSARD_JUNIE_ROOTS` accepts a
path-separated list of CLI homes. Default IDE discovery checks JetBrains
project caches on macOS, Linux, and Windows. For custom or copied IDE stores,
set `HANSARD_JUNIE_IDE_ROOTS` to the `.matterhorn` directories.

**Memories and instructions**

```sh
hansard memory backup
```

Backups include global `AGENTS.md`, project guidance using Junie's documented
precedence, configured `guidelines-location` files, and local agents and
commands. Project memory includes task, error, feedback, and language records
under `.junie/memory`, their older locations, and retained backups. Skill
folders are not memories and are not backed up. Project paths come from
imported conversations.

## Review the import in the app

1. When the import finishes, open **Conversations** and select **Filter & sort**.
2. Set **Source** to **Junie** 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.

Review commands and numbered edit diffs, then check Junie and its recorded
models in Stats. Open Memories to review captured instructions and project
memory snapshots.

## What Hansard preserves

- Prompts, replies, recorded reasoning, questions, plans, errors, and compaction notices.
- Tool calls, retained arguments, output, errors, and file changes.
- Parent and child agent links with separate measured usage.
- Recorded models, directional tokens, cache usage, and provider cost estimates.
- Saved tool images, retained attachment bytes, file references, and raw session files.
- CLI session timing, IDE task ordering, and recorded project directories.

Known copied fork prefixes are excluded from duplicate messages and usage;
the inherited context remains in raw preservation and the source conversation.
Usage reported by Junie is measured, while its positive cost values come from
provider catalogs and are marked as estimates.

## Known limitations

- Native verification covers released CLI read, edit, resume, and instruction
  creation. IDE storage, forks, attachments, child agents, and memory variants
  have synthetic coverage; separate live IDE and delegation trials remain pending.
- Junie compacts saved state. Earlier display events remain, but exact model
  tool arguments and private reasoning can be absent from that state.
- Fork deduplication requires a retained source session or previously archived
  parent link. A standalone fork cannot reveal its missing parent reliably.
- IDE steps lack individual timestamps. Their displayed ordering uses the
  task creation time. Step-only history can omit models and measured usage.
- Attachment references outside captured session files remain unavailable;
  Hansard does not read current project files as historical uploads.
- No independent cloud history API is imported. Explicit launch-time config
  locations and guidelines passed only as CLI flags are not discovered.
- Credentials, trust markers, installed binaries, shared runtime logs, and
  caches are not separate conversation or memory sources. Unknown record
  kinds remain in raw preservation and are counted in session metadata.

## Refresh an existing archive

```sh
hansard import --source junie --since all
hansard memory backup
```

Keep the original stores available for parser refreshes. CLI conversations
offer a resume command using Junie's recorded home and native session ID.

Official references: [Junie documentation](https://junie.jetbrains.com/docs/),
[CLI configuration](https://junie.jetbrains.com/docs/junie-cli-configuration.html),
and [released distributions](https://github.com/JetBrains/junie/releases).
