muxmind-ai
v2.2.0
Published
MuxMind AI - Multi-Provider AI Orchestration Engine with smart routing, failover, voice input, and image generation.
Maintainers
Readme
MuxMind AI — v2.0
Multi-provider AI orchestration: 12 free/paid providers, a smart single- model-per-reply router with automatic failover, persistent local chat history, an image generation studio, full Arabic/English UI (with RTL), in-app password management, and a multi-core Node.js backend.
Quick Start
npm install
cp .env.example .env
npm startThen open http://localhost:8080. First login uses password
muxmind2026 unless you set MUXMIND_PASSWORD in .env before first
boot — either way, change it any time from Settings → Change password
once you're signed in.
How It Works
- API Vault — Click "🔐 API Vault" in the top bar. Add a provider (OpenAI, Anthropic, Groq, Gemini, OpenRouter, Mistral, DeepSeek, xAI, Cohere, Together AI, Cerebras, Perplexity), give it a label, paste your key. The app immediately runs a live health-check (a real completion probe, not just a listing call) and keeps only the models that actually respond — the Smart Token Saver only ever routes to these proven-live models, never a guessed one.
- Keys stay local — Every key is stored exclusively in your browser's
localStorage. Nothing is written to disk on the server (except the hashed login password, see below) and nothing is committed to the repo. - One model per reply — Each answer is streamed start-to-finish from a single chosen model. If that model errors out before producing any text, the router fails over cleanly to the next-best live candidate — answers are never stitched together out of multiple models.
- Chat history — Every conversation is auto-saved to the left sidebar (local browser storage), searchable, renameable by first message, and deletable individually or all at once from Settings.
- Image Studio — Generate images from any OpenAI or Gemini key already in your Vault, from the 🎨 rail icon.
- File attachments —
.js .html .css .py .pdf .txt .png .jpg .json .mdare supported via the 📎 button; click any attached file chip (before or after sending) to open it in the in-app viewer. - Language — Toggle English/Arabic from Settings; Arabic switches the whole UI to RTL.
- TTS — Cycle the 🔇/🔊 button to hear responses read aloud in English or Arabic via the browser's Web Speech API.
Project Structure
muxmind-ai/
├── package.json
├── server.js # Clustered Express backend
├── index.html # App shell markup
├── style.css # Glassmorphism styling (dark/light/RTL)
├── src-client/
│ ├── app.js # Client application logic
│ └── i18n.js # EN/AR dictionary + RTL switcher
└── src/
├── config.js # Provider catalog & fallback chain
├── api-manager.js # Vault health-check logic
├── router.js # Single-model-per-reply routing + failover
├── image-engine.js # Image generation (OpenAI/Gemini)
├── auth.js # Login + in-app password change (hashed)
├── tts-engine.js # Speech job builder (AR/EN)
├── file-parser.js # Upload parsing/validation
└── ui-render.js # Task tracker + SVG status icon helpersNotes
- The server never reads provider keys from
process.envfor chat requests — onlyPORT,MUXMIND_CLUSTER, and the initial login password seed are read from.env. - The login password is stored as a salted hash in a local, gitignored
.muxmind-auth.jsonfile, created on first boot. Changing it from Settings updates that file directly — no restart needed. - Set
MUXMIND_CLUSTER=offin.envto run a single process while debugging.
