Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Claude Reader Suite

English | 中文

A local, offline, zero-dependency (Python standard library only) tool to read — and continue — your Claude Code conversations right in your browser. It reads the conversation logs already on your disk under ~/.claude/projects and renders them as a clean, searchable single page. Everything runs on 127.0.0.1; nothing is ever uploaded, and the tool never phones home.

The suite ships in three tiers, from a pure read-only viewer up to a full chat-and-approve console with phone notifications. Pick the smallest tier that does what you need.

🧭 New here? Just download everything and try it. Click the green < > Code → Download ZIP (the whole repo is tiny and all three tiers come bundled), unzip, and open the folder you want — then double-click its .bat:

  • Just want to read past sessions?ClaudeReader
  • Want to chat & branch in the browser?ClaudeDeck
  • Want phone push + remote approval too?ClaudeDeck-ProMax

Not sure? Start with ClaudeDeck-ProMax — it includes everything, and push / remote approval stay off until you switch them on, so out of the box it behaves exactly like ClaudeDeck.

Three tiers

Tier What it is Pros Cons
Claude Reader (./ClaudeReader) Pure read-only viewer of ~/.claude/projects JSONL No in-page command execution — read-only; the only actions are user-clicked (open a terminal, or send a file to the Recycle Bin); simplest; closest to cross-platform; safe to share View only — no chat, branch, approval, or push
ClaudeDeck (./ClaudeDeck) Reader + in-page chat + 分支对话 branch dialogue + capability-based smart approval, fully local Chat & branch off any session in-browser; safe read-only ops auto-approve; no network/push surface Windows + Edge + Claude Code CLI required; approval is static-scan, not a sandbox; single machine
ClaudeDeck Pro Max (./ClaudeDeck-ProMax) Everything + phone push (WxPusher) + remote approval Get notified on your phone; approve commands remotely while away — something a plain terminal Claude Code session can't do Largest surface; needs WxPusher setup; remote approval runs shell commands — localhost + shared-secret only

⚠️ In-page (browser) chat is not a full terminal. It runs claude -p headless and CANNOT use: Workflow / multi-agent orchestration, the ultracode/max-effort multi-agent paths, ToolSearch / deferred tools, background scheduling (cron/loops), or external-link tools. It also cannot run JS scripts — only shell commands you approve. When a task needs any of those, click ▶ 在终端中继续对话 (Continue in terminal) to open a real Claude Code terminal on that session.

Screenshots

Claude Reader — pure read-only viewer

Read, search, and jump around any past Claude Code session in your browser.

Claude Reader main view

ClaudeDeck — in-page chat + branch dialogue

Chat with a session right in the page, with capability-based smart approval.

ClaudeDeck

分支对话 (branch dialogue) — spin off a clean new topic from any past session, choosing which earlier messages to carry over (so a long thread doesn't dilute the model's focus):

Branch dialogue

ClaudeDeck Pro Max — phone push + remote approval

ClaudeDeck Pro Max

When a command needs approval, you get a WxPusher push on your phone; reply yes <N> in WeChat to approve it and let the session continue — even while you're away from your computer:

WxPusher push notification    Approve from WeChat with 'yes N'

📸 Push and remote approval are off by default — the shots above show them after you opt in and add your own WxPusher token.

Requirements

  • All tiers: Python 3.7+ (standard library only — nothing to pip install).
  • Tiers 2 & 3 (ClaudeDeck / Pro Max), additionally:
    • Windows
    • Microsoft Edge
    • The Claude Code CLI (claude) installed and on your PATH

Quick start

python claude_reader.py

(Windows users can also just double-click the launcher inside the tier folder — ClaudeReader.bat, ClaudeDeck.bat, or ClaudeDeck-ProMax.bat.)

The server starts on 127.0.0.1 and opens your browser at:

http://127.0.0.1:8765/

Run it from inside the tier folder you want (ClaudeReader, ClaudeDeck, or ClaudeDeck-ProMax).

Configuration

Tiers that support configuration read an optional config.json from the tier folder. To create one, copy the bundled example and edit your copy:

cp config.example.json config.json

config.example.json is committed as a template; your real config.json is gitignored so your tokens never get committed.

Common keys (all configurable tiers)

Key Meaning
port Port the local server listens on (default 8765).
default_cwd Working directory used when you start a brand-new chat. Use "" to default to your home directory.
browser Which browser to open: "edge", "default", or "none" (don't auto-open).
auto_approve_roots List of directories where in-workspace deletes are auto-approved. Keep this tight.
protected_paths Paths that must never be auto-approved, even inside an auto_approve_roots directory.

Pro Max additional keys

{
  "push": {
    "enabled": false,
    "wxpusher": {
      "app_token": "AT_xxxxxxxxxxxxxxxx",
      "uids": ["UID_xxxxxxxxxxxx"]
    }
  },
  "remote_approve": {
    "enabled": false,
    "shared_secret": "choose-a-long-random-string"
  }
}
Key Meaning
push.enabled Master switch for phone push. Default false.
push.wxpusher.app_token Your WxPusher application token.
push.wxpusher.uids List of WxPusher user IDs (UIDs) that should receive the push.
remote_approve.enabled Master switch for remote approval. Default false.
remote_approve.shared_secret A private secret shared between the server and your relay bot. Keep it secret.

To get a free WxPusher app_token / UID: go to wxpusher.zjiecode.com, sign in with WeChat, create an application to obtain its appToken, then follow/scan to register and read off your UID.

🔒 Push and remote approval are OFF by default. Nothing is ever sent anywhere until you set enabled: true and fill in your own tokens. Out of the box, Pro Max behaves like ClaudeDeck with no network surface.

Remote-approval bot contract + security

Pro Max does not talk to WeChat (or any other chat app) directly. Instead, a separate bot that you run — for example a small WeChat relay — bridges your phone and the local server. The contract is simple HTTP on 127.0.0.1:

  • When you reply on your phone with yes <N> (where <N> is the pending request's token), your bot calls:

    POST /api/remote/approve
    Content-Type: application/json
    
    {"token": "<N>", "secret": "<your shared_secret>"}
  • Your bot can discover what's waiting and what finished by polling:

    GET /api/remote/pending     # commands currently awaiting approval
    GET /api/remote/done        # recently completed approvals

🔒 SECURITY WARNING: the /api/remote/approve endpoint executes approved shell commands. The server binds to 127.0.0.1 only. Never expose it to your LAN or the public internet without your own authentication in front of it, and keep shared_secret private. The shared secret is the only thing standing between a local request and command execution.

Limitations of in-page chat

⚠️ In-page (browser) chat is not a full terminal. It runs claude -p headless and CANNOT use: Workflow / multi-agent orchestration, the ultracode/max-effort multi-agent paths, ToolSearch / deferred tools, background scheduling (cron/loops), or external-link tools. It also cannot run JS scripts — only shell commands you approve. When a task needs any of those, click ▶ 在终端中继续对话 (Continue in terminal) to open a real Claude Code terminal on that session.

This is why the effort dropdown stops at 5 levels and excludes ultracode. The ultracode / maximum-effort mode relies on multi-agent orchestration, which the headless claude -p path used by in-page chat cannot drive. Rather than offer a level that would silently fail or degrade, the dropdown only exposes the effort levels that genuinely work in-browser. If you need the full multi-agent, max-effort behavior, continue the session in a real terminal.

Continue in terminal vs in-page chat

Use in-page chat for quick, interactive turns: ask a follow-up, branch a conversation, run and approve simple shell commands — all without leaving the browser. Reach for ▶ 在终端中继续对话 (Continue in terminal) the moment a task needs anything the headless path can't do — multi-agent orchestration, ultracode/max-effort, ToolSearch / deferred tools, cron/background loops, external-link tools, or running JS scripts. The button hands the exact same session off to a real Claude Code terminal, so you lose no context — you just gain the full toolset.

The reverse is also true — some things only the in-page chat can do. Phone push (WxPusher) and remote approval (approve a command from your phone by replying yes <N> while you're away) are built into ClaudeDeck Pro Max's local server and work only through its in-page chat — a plain claude terminal session (including the one opened by Continue in terminal) has no way to ping your phone or accept a remote approval. So: reach for the terminal when you need the heavy multi-agent toolset; stay in Pro Max's in-page chat when you want to be reachable on your phone and approve commands on the go.

Privacy & security notes

  • Localhost-only bind. The server listens on 127.0.0.1:8765 and is not reachable from other machines by default.
  • No per-request auth. The tool surfaces all of your local Claude conversations over 127.0.0.1:8765 with no per-request authentication. This is fine on a single-user machine, but it means anyone with access to that loopback interface can read your sessions — don't run it on a shared or multi-user host.
  • Never phones home. No telemetry, no analytics, no uploads. Your conversations stay on your disk.
  • Secrets stay out of git. Your real config.json (with WxPusher tokens and your shared secret) is gitignored; only config.example.json is committed.

Credits / disclaimer

Not affiliated with, endorsed by, or sponsored by Anthropic. "Claude" is a trademark of Anthropic. This is an independent, community tool for reading your own local Claude Code conversation files.

About

本地、离线、零依赖的浏览器工具,用来阅读并「续聊」你的 Claude Code 历史对话。三档可选:纯只读查看器 / 页内对话(分支对话 + 按能力智能批准)/ Pro Max(手机微信推送 + 远程批准)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages