Skip to content
← Back to portfolio

Independent · Creator · Last commit 27 Sep 2026

PearlGPT

A themed local web interface for Claude Code, built on the Claude Agent SDK, with a companion Android app.

AINode.jsExpressClaude Agent SDKCapacitor

Overview

PearlGPT is a localhost web UI that feels like a Honkai: Star Rail terminal, styled after Interastral Peace Corporation and voiced by Pearl of the Ten Stonehearts. Underneath it is the real Claude Code harness, driven through the Claude Agent SDK, so your CLAUDE.md files, skills and tools all work. It uses your existing Claude Code credentials. It is a fan project and is not affiliated with HoYoverse or Anthropic.

The problem

I wanted quality-of-life tools I was missing, like instant chat history and switching profiles quickly.

What I did

  • Built the Node backend on Express 5 and ws, with one streaming Agent SDK session per browser tab, a permission bridge, and model, mode and effort controls.
  • Added a server-side session hub so sessions survive page reloads, replay anything missed, and auto-resume after a server restart.
  • Rendered the SDK message stream in vanilla JS: streaming markdown, tool cards, Edit and Write diffs, todo checklists, collapsible thinking and nested subagent activity.
  • Mirrored the CLI's permission prompts and plan-mode approvals, with keyboard shortcuts, and Shift+Tab to cycle permission modes.
  • Added slash commands, @file autocomplete, image paste, a sidebar of past sessions that restores their transcripts, and a context meter with cost and Markdown export.
  • Designed three themes with original SVG and CSS artwork, plus an optional Pearl persona.
  • Set up a Windows launcher, a background startup script and a shortcut installer. The server binds to localhost only and rejects foreign hosts and origins.
  • Built PearlGPT Mobile, a Capacitor Android app with the same look that calls the Claude API directly.

Stack

  • Node.js 18+ with ES modules and no build step
  • Express 5 and ws WebSockets
  • Claude Agent SDK (@anthropic-ai/claude-agent-sdk)
  • Vanilla JavaScript, HTML and CSS, with marked, DOMPurify and highlight.js served locally
  • Capacitor and esbuild for the Android app

Outcome / impact

  • A working localhost app with a Windows launcher. The Android APK is checked into the repo.
  • Repo history starts 27 Sep 2026, with 12 commits so far.
  • I use it day to day. It is for personal use only.

The PearlGPT web interface with its Stoneheart theme