Thunderbolt is a full-stack, cross-platform AI chat and agent client built by Mozilla Thunderbird. It ships as a React/Vite web app, a Tauri desktop shell (macOS/Windows/Linux), native iOS/Android apps, and a Bun-based CLI. The system provides chat with multiple LLM providers (OpenAI-compatible, Anthropic, custom Tinfoil enclave), a skills system for user-defined slash-command instructions, voice mode with STT/TTS, MCP tool integration, ACP (Agent Client Protocol) remote agent support, and a widget system for rich chat outputs (weather, maps, citations, document previews, link previews). The backend is an Elysia/Bun server handling OIDC/SAML/OTP auth, an inference usage ledger with signed receipts, a CORS-bypassing proxy with streaming, and PowerSync sync coordination. Data flows from local SQLite (wa-sqlite/bun-sqlite) through an E2E-encrypted PowerSync pipeline to PostgreSQL, with device registration, envelope key storage, and canary proof-of-possession for recovery. The CLI provides a separate agent harness with iroh P2P transport, device-grant auth, and a workspace jail for safe file operations. The repo also contains a substantial AI evaluation framework (scenario-based scoring with Wilson confidence intervals), a Pulumi/K8s/Docker deployment stack, and a marketing/docs site in Astro. While the dominant character is clearly an application, it has a notable data-engineering flavor in its inference usage tracking, eval harness, and telemetry pipelines.
Chatbox is a cross-platform desktop AI chat client (Windows/macOS/Linux) built with Electron, React, and TypeScript. It supports 30+ AI providers (OpenAI, Claude, Gemini, DeepSeek, Ollama, etc.) via a unified provider registry and model abstraction layer. The application features agent mode with tool use, sandboxed code execution, MCP server integration, knowledge base RAG, web search, image generation, and a skills marketplace. It uses a hexagonal architecture with ports/adapters in a core package (`@chatbox/core`) that is host-agnostic, and React bindings in `@chatbox/react`. The renderer uses TanStack Router, Zustand/Jotai for state, and Mantine/MUI for UI. The main process handles IPC, OAuth flows, file system sandbox, and analytics. The codebase is large and well-tested (Vitest unit tests, integration tests, contract tests) with a focus on offline-first, local storage, and cross-platform compatibility (desktop, web, mobile via Capacitor). The application is actively maintained with a commercial 'Pro' version that shares code with this open-source Community Edition. Notable engineering patterns include a clean port/adapter separation, in-memory test doubles for all repositories, a session write coordinator that serializes updates and cancels stale queries, a draft tokenization system with web workers, and a provider registry that allows dynamic model discovery. The codebase has some technical debt: multiple UI libraries, legacy migration paths, and commented-out code, but overall demonstrates strong craftsmanship and reusability of its core abstractions.
Talkio is a local-first desktop (Windows/macOS/Linux via Tauri 2) and Android application for multi-AI group chat. Unlike a conventional ChatGPT wrapper, it orchestrates conversations where multiple AI models — OpenAI Chat Completions, OpenAI Responses, Anthropic Messages, plus DeepSeek/Groq/Ollama via compatible endpoints — converse together in one thread, each bound to a configurable persona/identity with its own system prompt and model selection. Core features include streaming SSE generation, an MCP (Model Context Protocol) client with both stdio subprocess (desktop) and custom streamable-HTTP transports, a tool-call loop supporting iterative tool execution, automatic conversation context compression, chat branching/regeneration, file attachment parsing (PDF/Word/Excel/images), and export to Markdown/PDF. All data is local: conversations persist in SQLite via the Tauri SQL plugin, while providers, identities, MCP servers, and settings live in localStorage.