Hopilo

Welcome to Hopilo 100% offline

Every AI session in one place, with its files. Hit a usage limit or want a second opinion? Copy the session and paste it into another AI. Everything stays on your computer.

Ready to continue

19coding agents

Pick up any conversation in another AI. Hopilo copies it as one message you paste; nothing is ever sent for you.

19 agents · 6 web chats · no account · 100% offline

See it work

real app

Works with

All 19
  • Claude Code~/.claude/projects · read-onlyagent
  • Codex CLI~/.codex/sessions · .jsonl and .jsonl.zstagent
  • Gemini CLI, Antigravity~/.gemini/tmp · ~/.gemini/antigravityagent
  • Cursor, Copilot, Zed, OpenCodeeditor stores, opened read-onlyeditor
  • ChatGPT, Claude, Geminisaved from the browser extensionweb

How it works

Copy a session
  1. 1
    Pick a sessionFrom a coding agent or a web chat. Hopilo already found it on your computer.
  2. 2
    Choose what the next AI should doContinue, Review, Summarize or Debug, at Full, Balanced or Minimal size.
  3. 3
    Paste it and keep goingOne message lands on your clipboard. Secrets are flagged before you paste.

The real app

Hopilo overview: 16 sessions ready to continue, a sources map, and tiles for coding agents, web chats, copies and privacy

Install

One app for macOS, Windows and Linux. No account, no sign-in.

$curl -fsSL https://hopilo.kiron.dev/install.sh | bash

Or install by hand:

  1. Download the .dmg from Releases, open it and drag Hopilo into Applications.
  2. Open Hopilo. If macOS says it can't verify the app, go to System Settings › Privacy & Security and click Open Anyway.
  3. Hopilo starts in the menu bar. Click its icon, or set Settings › On launch, show to Overview to open the window at launch.

Sessions

Every conversation from your AI tools, with its files.

Already on your computer. Now in one list.

Hopilo reads the folders your agents already write to. Open it and your sessions are there, newest first, with the files each one touched.

  • Syncs at launch, when the window gains focus, and from the refresh button.
  • Only changed files are parsed again. A warm sync of ~1,200 sessions takes tens of milliseconds.
  • Filter by tool, model, folder or tag. Pin what matters, hide the rest.
  • Hidden reasoning and injected reminders are counted on the session, never dropped silently.
Sessions list with filters for tools, models, resources and categories, and a Copy button on each row

Read the whole thread.

Open a session to see the conversation, tool calls and results, and the files it changed. Search inside it, add files, export it, or copy it.

ConversationFilesCopy MarkdownExport
Session detail for DevDock architecture review, showing user, assistant and tool messages

Copy a session

One message, sized for the AI you continue in.

Tell the next AI what to do.

Pick where you continue, then what it should do: Continue, Review, Summarize, Debug, or a note of your own.

Choose how much to include. Full, Balanced and Minimal are fixed rules, not a summarizing model, and Hopilo shows the token count against the target's window before you copy.

  • Keys, tokens and emails are flagged and can be masked as [REDACTED: Type].
  • Your own exclusion rules leave files like server.pem out.
  • Combine several sessions into one copy.
Copy session dialog: Continue in Claude, intent buttons, Full, Balanced and Minimal sizes with token counts, and 3 possible secrets found

Compare sessions

Two attempts at the same task, side by side.

See where they split.

Claude Code against Codex on one prompt, or a branch that went down a rabbit hole. Hopilo lines them up by prompt and shows where they diverged.

  • Messages, prompts, replies, tool calls, errors and tokens, bar against bar.
  • Files edited by only A, only B, or both.
  • Copy comparison for AI or Combine both into one copy.
Compare sessions view showing where two sessions diverged at prompt 3, side-by-side stats, and files edited

Browser extension

Web chats join the same library.

Save a chat. Paste one back.

The extension saves ChatGPT, Claude and Gemini chats (DeepSeek, Grok and Perplexity experimentally) and can put a session into a chat box as an unsent draft.

  1. Unzip hopilo-extension-chrome-<version>.zip from the release.
  2. Open chrome://extensions, turn on Developer mode, click Load unpacked.
  3. In Hopilo open Browser › Connect. Firefox: load the Firefox zip from about:debugging.
Browser page: extension connected, Chrome and Brave registered, and per-site support status

Search & commands

Everything is a keystroke away.

⌘K anywhere.

Search titles, folders, tools, models and tags, or run an action: save the clipboard as a session, copy the latest one, import a .hopilo bundle.

This page has one too. Try it.

Command palette with actions and go-to items

Sources

Where Hopilo looks. Files are opened read-only; SQLite stores with SQLITE_OPEN_READ_ONLY.

AgentPaths (macOS; Linux and Windows equivalents are checked too)
Claude Code~/.claude/projects, ~/.config/claude/projects, $CLAUDE_CONFIG_DIR
Codex CLI~/.codex/sessions, ~/.codex/archived_sessions (.jsonl and zstd .jsonl.zst), $CODEX_HOME
Gemini CLI, Qwen Code~/.gemini/tmp, ~/.qwen/tmp
Antigravity~/.gemini/antigravity, antigravity-ide and antigravity-cli brain folders
OpenCode~/.local/share/opencode/opencode.db
CursorCursor/User/globalStorage/state.vscdb
Cursor CLI~/.cursor/chats/*/*/store.db
VS Code Copilot ChatworkspaceStorage/*/chatSessions, globalStorage/emptyWindowChatSessions in Code, Insiders and VSCodium
GitHub Copilot CLI~/.copilot/session-state, ~/.copilot/history-session-state
Cline, Roo Code, Kilo CodeglobalStorage/<extension>/tasks in any VS Code-family editor, ~/.cline/data/tasks
Factory Droid, Pi, Kimi CLI, Goose~/.factory/sessions, ~/.pi/agent/sessions, ~/.kimi/sessions, ~/.local/share/goose/sessions
ZedZed/threads/threads.db
Aider.aider.chat.history.md, imported from Add

Also imports pasted text, ChatGPT and Claude data exports, files, and .handoff archives.

Privacy

Local by design, not by setting.

Read, never changedAgent folders are only read. Your sessions stay where your tools put them.
One local libraryA SQLite file plus an attachments folder addressed by SHA-256, in your app data folder.
Nothing sent for youCopies go to your clipboard. You decide where to paste. No account, sync, analytics or remote AI call.
One network callThe update check you start from Settings › About. Updates are signature-verified before install.

Exports

Take a session anywhere, in four formats.

.md

Readable Markdown with roles, tool calls and file list.

.txt

Plain text for anything that doesn't render Markdown.

.json

Normalized conversation. Local paths are left out.

.handoff

A zip with the conversation, its files and SHA-256 checksums, verified on import.

FAQ

Does Hopilo send my sessions to an AI?

No. Hopilo builds the message on your computer and puts it on your clipboard. You paste it yourself. Even the browser extension only inserts an unsent draft.

Is Balanced a summary written by a model?

No. Full, Balanced and Minimal are fixed rules about which messages and tool output to keep. The same session gives the same copy every time.

Will it change my agent's files?

No. Session files are opened read-only and SQLite stores with SQLITE_OPEN_READ_ONLY. A title you set is stored in Hopilo's own library.

What if a session was only partly readable?

It's marked Partial with the reason, and anything left out (hidden reasoning, system reminders, sub-agent side chains) is counted on the session.

macOS says the app can't be verified.

Go to System Settings › Privacy & Security and click Open Anyway. You only need to do this once.

Where is my library stored?

On macOS, ~/Library/Application Support/io.coreify.hopilo/, or the platform equivalent. Before a schema migration the library is copied to hopilo.db.before-vN.

Build from source

Tauri 2 with a Rust core and a React UI. Rust stable, Node 22+, pnpm 10.

# clone and run the desktop app
git clone https://github.com/kiron0/hopilo
cd hopilo
pnpm install
pnpm --filter @hopilo/desktop tauri dev