Multi-Model AI Application with Human-in-the-Loop Workflows
Chamber is a professional AI application that enables multi-model reasoning with human-in-the-loop workflows. Multiple LLM models collaborate on complex tasks, with one acting as orchestrator to synthesize decisions and advance progress.
- Frontend: Tauri 2.0 + SvelteKit (SPA) + TailwindCSS
- Backend: Rust (Tauri commands) + Python sidecar (LangGraph + FastAPI)
- Storage: IndexedDB (Dexie) + Markdown files (configurable workspace)
- LLM Providers: Anthropic, Google Gemini, Ollama, x.ai
- β¨ Multi-step reasoning with ReAct pattern
- π€ Multi-model chamber (parallel reasoning β orchestrator synthesis)
- π€ Human-in-the-loop approval for tool usage
- βΈοΈ Pause/resume capability with state persistence
- βοΈ Configuration-driven (no code changes needed)
- π Secure OAuth authentication - Sign in with Claude/Google accounts instead of API keys
- π Keychain storage - Credentials stored securely in platform keychain
Chamber supports multiple authentication methods for LLM providers:
Supported Providers:
- Anthropic Claude (Sign in with Claude account)
- Google Gemini (Sign in with Google account)
Benefits:
- No need to manage API keys manually
- Credentials stored securely in your system keychain
- Automatic token refresh in the background
- No plain text credentials in config files
How to Use:
- Open Chamber and go to Settings
- Find the Authentication section
- Click "Connect with OAuth" for your provider
- Complete the sign-in flow in the authorization window
- Your credentials are now stored securely!
You can still use traditional API keys if you prefer:
In Settings:
- Click "Use API Key" button for your provider
- Paste your API key
- Click Save
Via Environment Variables:
Create a .env file in the python-sidecar directory:
- Node.js 18+
- Rust 1.70+
- Python 3.10+
- Tauri CLI
# Install dependencies
npm install
# Install Python dependencies (using uv)
cd python-sidecar
uv sync
cd ..
# Setup environment variables
cp .env.example .env
# Add your API keys to .envCreate a .env file in the python-sidecar directory:
ANTHROPIC_API_KEY=your_key_here
GOOGLE_API_KEY=your_key_here
XAI_API_KEY=your_key_here
OLLAMA_BASE_URL=http://localhost:11434This project uses git worktrees for parallel development, allowing you to run long-lived dev servers while developing features.
Current worktree structure:
D:/Projects/chamber [main] β Production-ready code
D:/Projects/chamber-dev [dev] β Active development
Basic workflow:
# Terminal 1: Main worktree - Run dev servers (keeps running!)
cd chamber/
npm run tauri:dev
# Terminal 2: Dev worktree - Develop features
cd ../chamber-dev/
# Make changes, commit, test without stopping the dev serverCreate additional worktrees:
# For experiments, PRs, or parallel work
git worktree add ../chamber-experiment -b experiment-branch
git worktree add ../chamber-staging staging
# See all worktrees
git worktree list
# Remove when done
git worktree remove ../chamber-experimentFor detailed git workflows, see GIT_WORKFLOWS.md.
- PKCE Flow: Uses Proof Key for Code Exchange (PKCE) for secure OAuth authorization
- Platform Keychain: Credentials stored using OS keychain services:
- Windows: Credential Manager
- macOS: Keychain Access
- Linux: Secret Service API (libsecret)
- TLS Only: All OAuth communication over HTTPS
- Token Refresh: Automatic background refresh before token expiry
- Minimal Scopes: Only requests necessary OAuth scopes
- OAuth tokens are automatically refreshed 5 minutes before expiry
- Background refresh task runs every 5 minutes
- No manual token management required
- Tokens are never written to disk in plain text
If using API keys instead of OAuth:
- Store in
.envfile (already gitignored) - Never commit
.envto version control - Consider using environment variable injection in production
Authorization page won't load:
- Check your internet connection
- Disable VPN temporarily
- Ensure popups are allowed for Chamber
- Try a different browser
Authorization fails:
- Make sure you're allowing all requested permissions
- Check that your account has access to the provider's API
- Try clearing your browser cache and cookies
Token refresh errors:
- Sign out and sign in again
- Check that your system keychain is accessible
- Verify your account is still active with the provider
Chamber's keychain storage is compatible with:
- Windows 10/11: Uses Windows Credential Manager
- macOS 12+: Uses Keychain Access
- Linux: Uses libsecret (gnome-keyring/kwallet)
For detailed platform-specific testing and verification procedures, see CROSS_PLATFORM_KEYRING.md.
Run the application in development mode:
# Terminal 1: Start SvelteKit dev server
npm run dev
# Terminal 2: Start Tauri (includes Rust hot reload)
npm run tauri:dev
# Terminal 3 (optional): Run Python sidecar standalone for testing
cd python-sidecar
uv run python -m chamber.main --host 127.0.0.1 --port 8765Configuration is stored in workspace/config/chamber-config.yaml. Edit this file to:
- Change orchestrator and reasoning models
- Enable/disable specific models
- Configure tool approval settings
- Adjust workspace paths
User Input (SvelteKit UI)
β
Svelte Stores + SessionManager
β
Tauri Commands (Rust)
β
Python Sidecar (FastAPI + LangGraph)
β
Orchestrator β Parallel Reasoning β Synthesis β Tools
β
WebSocket Stream β Real-time Updates
β
UI Updates (Reactive Svelte)
# Frontend tests
npm run test
# Rust tests
cd src-tauri
cargo test
# Python tests
cd python-sidecar
uv run pytest# Build for production
npm run build
npm run tauri:buildThis creates platform-specific binaries in src-tauri/target/release/bundle/.
chamber/
βββ src/ # SvelteKit frontend
β βββ lib/
β β βββ components/ # UI components
β β βββ stores/ # Svelte stores
β β βββ services/ # Service layer
β β βββ types/ # TypeScript types
β β βββ db/ # Dexie schema
β βββ routes/ # SvelteKit pages
βββ src-tauri/ # Rust backend
β βββ src/
β βββ commands/ # Tauri commands
β βββ services/ # Business logic
β βββ models/ # Data structures
βββ python-sidecar/ # Python LangGraph backend
β βββ chamber/
β βββ graph/ # LangGraph workflows
β βββ models/ # LLM providers
β βββ tools/ # ReAct tools
β βββ server/ # FastAPI + WebSocket
βββ workspace/ # User workspace
βββ sessions/ # Session MD files
βββ config/ # Configuration
MIT
Contributions welcome! Please read CONTRIBUTING.md for guidelines.