DEV Community

Cover image for I built a native macOS companion app for Claude Code in a weekend
Leo Cardz
Leo Cardz

Posted on

I built a native macOS companion app for Claude Code in a weekend

The problem

If you use Claude Code, all your sessions are stored locally as JSONL files. There's no built-in way to go back and browse them, search through old conversations, check what files were changed, or revisit commands you ran.

I kept opening JSONL files manually, and it wasn't a great experience.

The solution

I built Poirot. A native macOS app that reads your local Claude Code data and gives you a proper interface for everything.

What it does

  • Session browser: All your sessions grouped by project, with timestamps, token counts, and model info
  • Rich conversation view: Markdown rendering, syntax highlighting, collapsible tool blocks, code diffs
  • Extended thinking: See Claude's reasoning process in collapsible blocks
  • Fuzzy search (⌘K): Search across all sessions, commands, skills, and configs
  • Config dashboard: Browse your slash commands, skills, MCP servers, models, sub-agents, plugins, and output styles
  • One-click open: Open any file in VS Code, Cursor, Xcode, or Zed. Copy or re-run any Bash command in your terminal

No login. No tracking. No analytics. No API key needed. No extra cost. Runs fully offline. Under 6 MB.

Poirot code diff view showing a TranscriptParser refactor from completion handlers to async/await, with red/green inline diff highlighting
Poirot MCP Servers dashboard showing configured servers like Figma, GitHub, Notion, Playwright, and Perplexity with their connection details and available tools

The tech stack

  • Swift 6 with strict concurrency
  • SwiftUI with @Observable (no ObservableObject)
  • @MainActor default isolation
  • Protocol-driven DI via SwiftUI EnvironmentValues
  • MarkdownUI + HighlightSwift for rendering
  • Swift Testing for tests
  • Custom JSONL parser and real-time file watching with GCD

The story

The whole thing was vibe-coded in a weekend using Claude Code itself. What started as "I wonder if I can build a companion app for Claude Code using Claude Code" turned into a real tool that I use daily.

Named after Hercule Poirot, Agatha Christie's detective because every investigation needs the right tools.

Try it

Open source (MIT). Feedback and contributions welcome.

Top comments (0)