Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>enolaNew to Visual Studio Code? Get it now.
enola

enola

Enola

| (0) | Free
See what enola did in each Claude Code, OpenCode, Codex and pi session: every tool call, CLI run and hook, with its output.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

enola for VS Code

Each session shows its repository or folder name beside the title. Hover for its full path, or right-click and choose Open Repository Folder to open it in a new VS Code window. Git roots are detected from the recorded session directory, including subfolders and worktrees. Step previews and token reports also show the repository and recorded session directory. This identifies where the session started; a command can target a different repository, which remains visible in its input. If the folder is no longer available, its recorded name and path are still shown.

Step rows show status and duration; hover or open the preview for the full command and paths. Reports distinguish the session repository from a recorded command target. Agent groups with no matching activity start collapsed and can still be expanded.

Shows what enola did in each Claude Code, OpenCode, Codex and pi session. The enola view in the activity bar lists a group per coding agent, its sessions, and under each session every enola step in order:

  • MCP tool calls, with their input and full output
  • enola ... runs through the shell
  • in OpenCode 2, enola calls made from a script through its code-execution tool, one step per call
  • hook runs, with what the hook told the agent (Claude Code and pi)

Sessions that are running are marked in green, with a spinner while the agent is working, and the one you are in also gets a green label and a dot:

  • Claude Code: the session in the Claude Code tab you focused last. It is matched by tab title, the only thing the editor exposes about a tab, so two running sessions with the same title are both left unmarked.
  • OpenCode: the sessions open as tabs in a running terminal UI, and among them the one viewed last, as OpenCode itself records it.
  • Codex: the sessions a running Codex has open for writing. Codex does not record which one you are looking at, so none gets the label and dot.
  • pi: the newest session of each directory a pi process is running in. pi records no running sessions, so this is inferred, and none gets the label and dot.

Each session has a Tokens row, also shown in the session's tooltip:

Click the Tokens row to open the full usage breakdown as a rendered Markdown report.

  • what the model was charged for the session, as the agent recorded it
  • an estimate of how many tokens went through enola's calls and through every other tool, with the average per call, and the same for file reads and searches alone

The split by tool is an estimate from the size of each call and its result (about four characters to a token), because no agent records tokens per tool call. It says what enola's answers cost, not what was saved by having them.

Click a step to open its input and output in a rendered Markdown preview, with formatted headings, tables, links and code blocks. Use the preview's Open Source action to see the raw Markdown. Steps made by a subagent are grouped under that subagent.

The extension only reads what the agents already record: Claude Code's session transcripts in ~/.claude/projects, OpenCode's session database in ~/.local/share/opencode, opened read-only, Codex's session files in ~/.codex/sessions, and pi's in ~/.pi/agent/sessions. It does not need the enola binary and writes nothing outside VS Code's own extension state. A group appears only for an agent whose history exists on the machine.

Reading OpenCode's database uses the SQLite built into the editor, which needs VS Code 1.101 or later.

Settings

  • enola.claudeProjectsDir: where the transcripts live. Empty means $CLAUDE_CONFIG_DIR/projects, or ~/.claude/projects.
  • enola.opencodeDataDir: where OpenCode's database lives. Empty means $XDG_DATA_HOME/opencode, or ~/.local/share/opencode.
  • enola.codexDir: Codex's home directory. Empty means $CODEX_HOME, or ~/.codex.
  • enola.piDir: pi's agent directory. Empty means $PI_CODING_AGENT_DIR, or ~/.pi/agent.
  • enola.sessionAgeDays: only list sessions active within this many days (default 30, 0 for all).

By default the view lists sessions that belong to the open workspace: those started in the workspace folder, below it, or in a folder above it. The globe button in the view title switches to every project.

Development

npm install
npm test              # the Claude Code, OpenCode, Codex and pi readers, against fixtures
npm run test:vscode   # the extension inside a throwaway VS Code profile (macOS path by default)
scripts/build-vsix.sh # tests, then builds the .vsix (also: npm run package)

Press F5 to run the extension in a development host.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft