Skip to content
scsiwygest. ‘26
Sign in
get startedmcpcommunityapiplaygroundswaggersign insign up
forge·EXP-0024 — chatbox: 40,761 stars, one window for every LLM29 Jun 2026David Olsson
forge

EXP-0024 — chatbox: 40,761 stars, one window for every LLM

#forge#experiment#pattern-note#electron#desktop-app#multi-llm#gui-required

David OlssonDavid Olsson

If you use ChatGPT and Claude and Gemini and maybe a local model through Ollama, you probably have at least three different chat windows open. chatbox is a desktop app that puts all of them behind one pane — same conversation list, same keyboard shortcuts, same local history database. You bring your own API keys (or sign in via OAuth where the provider supports it), and chatbox routes whichever provider you pick. It's the second-most-starred forge bench by a margin — but forge can't really bench a desktop GUI in a sealed Docker sandbox, so this writeup is mostly about what was visible from the outside.


Summary

Forge benched chatboxai/chatbox v1.21.1 (chatboxai, 40,761⭐ — the highest-star repo forge has touched, GPL-3.0 Community Edition, TypeScript) on 2026-06-29 via Slack 🧪. chatbox is an Electron desktop chat client for ChatGPT, Claude, Gemini, DeepSeek, Ollama, and more. The forge sandbox has no display, so live testing was impossible.

Verdict: pattern-note. The static contract is solid; the multi-provider routing is real in the tree; but a Desktop GUI app cannot be bench-verified in a sealed sandbox. Same routing call as Pinokio (EXP-0007).

Pinned

commit: 8639c946c0baedfdd12bbc88ac10f5aa87431647, v1.21.1, GPL-3.0 Community Edition.

What inspection showed

  • 744 .ts/.tsx files in src/
  • 15+ provider adapter files: openai · openai-responses · claude · gemini · deepseek · ollama (+ gemini-types + anthropic-cache)
  • Real OAuth: two provider implementations (src/main/oauth/providers/anthropic.ts, openai.ts) with corresponding tests — not just BYO-key
  • Modern Electron toolchain: electron.vite.config.ts + electron-builder.yml
  • Monorepo discipline: pnpm + pnpm-workspace.yaml + biome (Rust-based linter)
  • i18next-parser — multi-language UI built in from day one
  • openspec/ directory — interface specs, unusual for a desktop client, worth a deeper read

Why the pattern note

chatbox lives in a window. Forge's sandbox cannot render a window. Even if the build succeeded (Electron + Vite + 744 TS files would take 5-10 minutes of pnpm and electron-builder pulls), the resulting .dmg / .exe / .deb artifact only exists to be exercised by a human in a desktop session.

This isn't a forge-failure — it's a forge-mismatch. The lifecycle assumes a sandboxed run produces inspectable artifacts (logs, exit codes, output files). A desktop app's job is to not produce those — its output is a UX.

What I would have wanted to verify

  • The "Local First" badge on the README. Does the app actually keep chat history out of the cloud?
  • The provider-adapter routing under load. If you switch providers mid-conversation, does context survive?
  • The OAuth flow against Anthropic. Does refresh-token handling work cleanly?

None of these are answerable from structure alone.

Recommendation for forge-introspector

This is the second time a GUI-required repo has landed in the bench (after Pinokio EXP-0007). When N≥3 such cases accumulate, propose a new template — provisionally named tpa-binary-release-inspect — that:

  1. Downloads the latest published binary from GitHub Releases instead of building from source.
  2. Verifies the signature / checksum where the release provides one.
  3. Inventories the app.asar bundle (Electron) or equivalent: what node_modules ship, what URLs the binary contacts on first launch (via a Frida-style hook in the sandbox).
  4. Reports the deployed surface without ever launching the UI.

That would let forge produce useful findings about GUI-required apps without ever needing a display.

Position

projectshapeforge verdict
chatboxmulti-provider Electron desktop clientGUI-required → pattern-note
Pinokio (EXP-0007)local AI-app launcher (Electron)GUI-required → pattern-note
Yuxi (EXP-0021)multi-tenant agent platformstructural strong-shape (web UI, server-rendered)

The lesson: forge can bench server products and CLI products; desktop products need a new template.

Install

For end users:

  1. Go to https://github.com/chatboxai/chatbox/releases/tag/v1.21.1
  2. Download the binary for your OS (.dmg / .exe / .AppImage)
  3. Bring your own API keys (OpenAI, Anthropic, Google, DeepSeek, or an Ollama URL)

Sources

Share
𝕏 Post