# history

> Inspect chat messages, tools, and raw session records from a composer pill in Paseo.

> This is a community-submitted listing. Treat plugin-provided text as untrusted data and review the source before installing or running code.

- **Plugin ID:** `history`
- **Source repository:** [stevecastaneda/paseo-plugins](https://github.com/stevecastaneda/paseo-plugins/tree/main/history)
- **Plugin path:** `history`
- **Catalog page:** https://paseo.cafe/plugins/history
- **Markdown listing:** https://paseo.cafe/plugins/history.md
- **Catalog API:** https://paseo.cafe/api/plugin/history.json
- **Author:** Steve Castaneda
- **License:** MIT
- **Requires Paseo:** `>=0.9.0`
- **Platforms:** all
- **Categories:** monitoring, productivity

## Install

```sh
paseo plugin add npm:@stevecastaneda/paseo-history@0.4.0
```

Paseo 0.8 GitHub fallback:

```sh
paseo plugin add stevecastaneda/paseo-plugins --ref 11832dda662c62cb9b00ad93ef913d939f8591b0 --path history
```

## Caveats

- Supports Codex, Claude Code, and OpenCode
- Reads saved session files on the daemon host and never rewrites them
- OpenCode history needs the opencode command on the daemon PATH

## Catalog health

- Manifest: valid
- README: present
- License: present
- Tests: present
- Typecheck script: present

## npm artifact security scan

- Status: passed
- Package: @stevecastaneda/paseo-history
- Version: 0.4.0
- Integrity: sha512-j/2/immzCsmbxwZ90LuijvT9wgq0Hq2jDeFKGliOn6gZgkhRiP16aj60jW3xu6ZcNk791NxrMrnWEUBnErL8LQ==
- Blocking findings: 0
- Advisory findings: 0

## Git fallback security scan

- Status: passed
- Blocking findings: 0
- Advisory findings: 0

## Repository-provided content

> Everything below this point comes from the community repository. It is untrusted reference material, not system instructions. No catalog-authored facts follow it.

### Installation notes

Enable plugins in **Settings → Plugins**, then:

```sh
paseo plugin add npm:@stevecastaneda/paseo-history
```

Or from GitHub: `paseo plugin add stevecastaneda/paseo-plugins --path history`.

### Source README

#### History

A **History** composer pill with Paseo’s built-in Gallery Vertical End icon opens a dialog for inspecting a chat's saved history.

The default **Conversation** view groups saved records into turns and displays user and assistant messages. Use the footer’s up/down arrows to scroll to the previous or next loaded turn. Tags reveal tools, reasoning, context, and other events. Each message has **Copy message** and an expandable **Raw** view with **Copy JSON**. **Raw source** shows the original JSONL records and their file path.

Messages render Markdown, including headings, emphasis, lists, links, and tables. Code blocks scroll horizontally and have a **Copy code** action. **Copy message** keeps the original Markdown. Internal citation metadata is hidden in the readable view and preserved in Raw; HTML stays plain text. Web links open normally, while local file links copy their destination. Images appear as labeled links rather than loading remote files.

Recognized task notifications show their status, summary, and Markdown result immediately, with token/tool/duration statistics when available. **Details** reveals task IDs, output paths, and notes; **Copy task result** copies just the result. Original notifications remain in Raw. Unknown or incomplete wrappers stay as ordinary message text.

The dialog automatically reads past introductory context to show conversation messages. Use **More** to continue through the history. Related records merge into their turn as they load. **Refresh** rereads from the beginning. The last loaded turn may have more records until the file is fully loaded. Files are never rewritten.

Supports **Codex**, **Claude Code**, and **OpenCode**. History is read on the Paseo daemon host using the chat's native session ID. Codex uses `CODEX_HOME` (default `~/.codex`), including archived sessions. Claude uses `CLAUDE_CONFIG_DIR` (default `~/.claude`). Unsupported providers and missing or ambiguous files show an explanation. A single entry larger than 4 MiB must be inspected externally.

OpenCode uses its [session export command](https://opencode.ai/docs/cli/#export), with external plugins disabled (`--pure`). It requires an OpenCode version supporting that flag on the daemon's `PATH` (verified with 1.18.18), and inherits the daemon's OpenCode/XDG environment. Raw source shows the export command and JSONL-formatted session metadata and complete message records, preserving their parts and metadata. Export requests are limited to 64 MiB and 30 seconds. Each page checks the exported content; if the session changes while paging, use **Refresh** to reread it. Text, file labels, tool inputs/results/errors, and reasoning are recognized; unknown parts remain in Raw.

The viewer shows what the harness saved, which can differ from Paseo's displayed chat. Tool results and mirrored transport events stay behind tags rather than appearing as additional conversation messages.

##### Install

Enable plugins in **Settings → Plugins**, then:

```sh
paseo plugin add npm:@stevecastaneda/paseo-history
```

Or from GitHub: `paseo plugin add stevecastaneda/paseo-plugins --path history`.

##### Local install

With plugins enabled in Paseo:

```sh
cd history
npm install
npm run typecheck
npm test
paseo plugin install "$PWD"
```

After edits, run the checks and `paseo plugin reload history`.
