Skip to content
View openensemble's full-sized avatar

Block or report openensemble

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
openensemble/README.md

OpenEnsemble

A self-hosted AI assistant with your choice of local or cloud models. Start with one assistant, then add specialist agents, connected services, dashboards, or open-hardware voice devices. Each user has their own workspace.

Get your first reply

On Linux, with Git installed:

git clone --depth 1 https://github.com/openensemble/openensemble.git
cd openensemble
./install.sh
  1. Keep the one-time first-run credential printed by the installer.
  2. Open https://<your-server-ip>:3739. Check that it is your server before accepting the installer's self-signed certificate warning.
  3. Create the owner account, or restore a backup, using that credential.
  4. Open Settings → Providers, connect one chat provider, and enable it.
  5. Choose Create Your Assistant, pick its model, save, and send a greeting.

New accounts use Single assistant mode. To add specialists later, switch Settings → Agents → Agent setup to Agent ensemble. Cortex provides internal reasoning and retrieval; your assistant still needs a chat provider.

Requirements: Linux (Debian-family systems are the main install path), Node.js 22.12 or newer, and the build/media/sandbox tools checked by the installer. macOS is a local-development option with different feature support. The installer can install missing dependencies and a systemd user service. Shallow clones support normal in-app updates.

Installation and Docker · First-run walkthrough · Complete user guide · Troubleshooting

Run oe bootstrap on the server if you lose the credential before setup is complete. HTTP localhost on port 3737 is also available from a browser running on the OE host; remote first-run setup uses HTTPS.

OpenEnsemble demo

What you can add

Goal Read next
Use one assistant or specialists with different models Single assistant and ensembles, Providers
Keep separate chats and ongoing projects Saved chats, Project spaces
Connect mail and Google Calendar Email & calendar
Control home devices and saved action sequences Home Assistant, Routines
Schedule work, reminders, and monitoring Tasks & scheduler
Work with files, media, research, and code projects Documents & sharing
Create skills and connect external tools Skill Builder, MCP
Manage a remote machine and its services Nodes, Service profiles
Learn preferences and prepare useful drafts Personalization
Inspect background work and recover a job Run Inspector, Resumable jobs

Display dashboards

Build up to 32 dashboards per profile, each with a stable address. Combine Home Assistant controls, calendar, email, node status, and custom-skill widgets. Customize portrait and landscape layouts, colors, and page elements; swipe between displays on a tablet.

A customized OpenEnsemble dashboard

Dashboard addresses use the signed-in profile and require normal OE login. Use a dedicated profile with limited access for an unattended display. Dashboard guide.

Voice devices (beta)

Pair a Seeed reSpeaker XVF3800 + XIAO ESP32-S3, say “Hey Ensemble,” and talk to your assistant. The browser flash wizard uses Chrome or Edge; prebuilt firmware is included. Supported features include household wake-word routing, conversation mode, AirPlay, and device-side alarms.

Voice processing follows your provider choices: remote STT receives recordings, cloud chat receives transcript/context, and remote TTS receives reply text. Configure local STT, chat, and TTS for local voice processing, and check other integrations separately. Voice setup · Model and privacy choices · Open firmware.

Run and maintain your server

For development, npm ci --ignore-scripts installs dependencies without the model download; npm start uses the launcher. Local tests belong in ignored tests/. Follow AGENTS.md and documentation maintenance when contributing.

License

GNU Affero General Public License v3.0 or later. In plain English:

  • Allowed: running OpenEnsemble yourself or for any commercial purpose, modifying it, redistributing it, and offering it as a hosted service.
  • Required: if you modify OpenEnsemble and let anyone else use it (including over a network — hosting it for users counts), you must offer them the source of your modifications under the same AGPL-3.0 license.
  • Required: preserve the copyright and license notices.

See LICENSE for the full text. For organizations that want to embed OpenEnsemble without the AGPL's copyleft obligation, a separate commercial license is available — get in touch.

Popular repositories Loading

  1. openensemble openensemble Public

    Self-hosted multi-user AI assistant with agents, memory, scheduler, ESP32 voice satellites, and a built-in dashboard. Works with Claude, OpenAI, Ollama, LM Studio, and more.

    JavaScript 11 1

  2. voice-device-firmware voice-device-firmware Public

    ESP32-S3 + XVF3800 firmware for OpenEnsemble voice satellites — on-device wake words, far-field capture, streamed TTS, AirPlay, OTA

    C 6 2

  3. AI-Roundtable AI-Roundtable Public

    A local shared roundtable for Claude Code, OpenAI Codex, and Grok Build

    Python 1

  4. awesome-local-ai awesome-local-ai Public

    Forked from janhq/awesome-local-ai

    An awesome repository of local AI tools

  5. awesome-ai-agents awesome-ai-agents Public

    Forked from e2b-dev/awesome-ai-agents

    A list of AI autonomous agents

  6. browser-extension browser-extension Public

    OpenEnsemble Bridge browser extension for Chrome and Edge

    JavaScript