This repository has been archived on 2026-04-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
2026-02-03 17:20:06 -05:00
2026-02-03 17:20:06 -05:00
2026-02-03 17:20:06 -05:00
2026-02-03 17:20:06 -05:00
2026-02-03 17:20:06 -05:00
2026-02-03 17:20:06 -05:00
2026-02-03 17:20:06 -05:00
2026-02-03 17:20:06 -05:00
2026-02-03 17:20:06 -05:00

🔀 Chat Switchboard

A sleek, OpenAI-compatible chat interface with per-conversation model switching, collapsible thinking blocks, and full chat history management.

Features

  • Multi-Model Support: Switch models per-chat via quick selector
  • Thinking Blocks: Collapsible <thinking> tags with distinct styling
  • Streaming Responses: Real-time token streaming with stop button
  • Chat History: Persistent storage with export (Markdown/JSON/Text)
  • Keyboard Shortcuts: Enter send, Shift+Enter newline, Esc stop, Ctrl+B sidebar, Ctrl+, settings
  • Code Highlighting: Syntax-aware code blocks with copy buttons
  • Regenerate: Re-run last response with one click
  • Dark Theme: Easy on the eyes

Quick Start

Standalone (No Build Required)

# Build the single-file version
./build.sh

# Open in browser
xdg-open standalone/index.html
# or
python3 -m http.server 8080 --directory standalone

Development

# Serve src/ directory for development
python3 -m http.server 8080 --directory src

Project Structure

chat-switchboard/
├── build.sh              # Builds standalone HTML
├── standalone/           # Built single-file output
│   └── index.html
├── src/                  # Source files
│   ├── index.html
│   ├── css/
│   │   └── styles.css
│   └── js/
│       ├── storage.js    # LocalStorage utilities
│       ├── state.js      # State management
│       ├── api.js        # API calls
│       ├── ui.js         # UI rendering
│       └── app.js        # Main application
├── server/               # Backend (future)
│   ├── main.go
│   ├── handlers/
│   ├── models/
│   └── middleware/
├── migrations/           # PostgreSQL schemas
│   └── 001_initial.sql
├── docker-compose.yml    # Local dev environment
└── docs/                 # Documentation

Backend (Planned)

The project is structured to support a full backend with:

  • Go server with Gin/Echo
  • PostgreSQL for persistent storage
  • User authentication (optional)
  • API key management per user
  • Chat syncing across devices

Database Schema

See migrations/001_initial.sql for the initial PostgreSQL schema.

Running with Docker

docker-compose up -d

Configuration

Settings are stored in localStorage:

Key Description
chatSwitchboard_settings API endpoint, model, parameters
chatSwitchboard_models Cached model list
chatSwitchboard_chats Chat history

API Compatibility

Works with any OpenAI-compatible API:

  • OpenAI
  • Anthropic (via proxy)
  • Ollama (http://localhost:11434/v1)
  • LM Studio
  • LocalAI
  • vLLM
  • Together AI
  • OpenRouter
  • And more...

License

MIT

Credits

Originally inspired by various chat interfaces, enhanced with multi-model switching and thinking block support.

Description
No description provided
Readme Apache-2.0 23 MiB
v0.9.9 Latest
2026-04-03 20:11:58 +00:00
Languages
Go 52.1%
JavaScript 34.6%
CSS 5.5%
Shell 3.8%
HTML 2%
Other 1.9%