Skip to content

iblai/os

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2,230 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ibl.ai

ibl.ai/os

The open-source AI agent platform.

Build, deploy, and manage intelligent conversational agents β€” from prototype to production, in minutes. One codebase. Every platform. Your code, your data, any LLM.

Join About Docs License: MIT SOC 2 Type II


⬇️ Get ibl.ai/os

Use it on the Web Β  Download for macOS Β  Download for Windows

Download for iOS Β  Download for Android

Windows ARM64 Β· older builds Β· Linux β†’ all downloads


Watch the demo

β–ΆοΈŽ Watch the demo Β Β·Β  by Miguel Amigot, CTO at ibl.ai


Why ibl.ai/os Β· Every platform Β· Features Β· Case studies Β· Screenshots Β· Quick Start Β· Deployment


SOC 2 Type II Β Β·Β  Universities, enterprises, and governments run on ibl.ai β€” read the case studies β†’


Why ibl.ai/os

πŸ”“ Your code, your data MIT-licensed and self-hostable. No vendor lock-in β€” full ownership of the stack and everything that flows through it.
🧠 Any LLM, your choice Bring OpenAI, Anthropic, Google, Microsoft, Meta, or your own models. Switch providers without rewrites.
πŸ“± Truly everywhere One codebase ships as web, macOS, Windows, Linux, iOS, and Android β€” with near-native performance.
🏒 Enterprise-ready Multi-tenancy, SSO, RBAC, Stripe billing, and whitelabeling built in β€” not bolted on later.

Every platform, one codebase

Most AI apps make you choose a device. ibl.ai/os meets your users wherever they are β€” the same product, native everywhere.

Platform Status
Web 🌐 Live at os.ibl.ai β€” any modern browser
macOS 🍎 Native app β€” download universal .dmg (Intel + Apple Silicon, signed & notarized)
Windows πŸͺŸ Native app β€” download installer (x64 + ARM64)
iOS πŸ“± Native app β€” App Store
Android πŸ€– Native app β€” Google Play
Linux 🐧 Native app β€” build from source

Features

πŸ€– Build & customize

  • AI Agents β€” configurable LLMs, system prompts, tools, and safety filters
  • Projects β€” collaborative workspaces with shared context and goals
  • Canvas / Artifacts β€” generate, edit, and version rich documents alongside chat
  • MCP Servers β€” extend agents with Model Context Protocol tool servers

πŸ“š Ground in your data

  • RAG Training β€” upload docs, connect Google Drive / OneDrive / Dropbox, or crawl sites
  • Web Search β€” ground responses with live web results
  • Deep Research β€” extended multi-step reasoning for complex queries

πŸŽ™οΈ Rich conversations

  • Voice Calls β€” real-time WebRTC voice chat powered by LiveKit
  • Screen Sharing β€” share your screen directly inside a session

🏒 Operate & scale

  • Analytics β€” usage dashboards, topic analysis, transcripts, financial reporting
  • Multi-tenancy β€” full tenant isolation, per-org branding & user management
  • SSO & RBAC β€” OAuth / OIDC / SAML with granular role-based access
  • Stripe Billing β€” subscriptions, free trials, usage-based pricing
  • Embed & API β€” iframe embed mode, custom domains, and API keys
  • Whitelabeling β€” custom branding, logos, and disclaimers

Case studies

Universities, enterprises, and government agencies build on ibl.ai β€” deploying agents on their own infrastructure, with their own models, at a fraction of the cost of closed platforms.

Read the case studies β†’


Screenshots

Agent Configuration

Agent configuration β€” dial in LLMs, prompts, safety filters, and conversation starters



Agent Settings
Agent settings β€” identity, description, and appearance
MCP Connectors
MCP connectors β€” GitHub, Notion, Slack, and more
Memory Settings
Memory β€” knowledge gaps, learning goals, preferences
Agent Discovery
Discovery β€” visibility, access permissions, and LTI

Quick Start

git clone https://github.com/iblai/os.git
cd os
pnpm install

Using Claude Code? Run /setup β€” it walks you through connecting your ibl.ai tenant and configuring .env.local automatically.

Manual setup: Copy .env.example to .env.local, then set NEXT_PUBLIC_MAIN_TENANT_KEY to your org key from login.iblai.app/me.

cp .env.example .env.local   # then edit NEXT_PUBLIC_MAIN_TENANT_KEY
pnpm dev

Open http://localhost:3000. See the full Development Guide for environment variables, scripts, and architecture details.


Deployment

ibl.ai/os is the frontend for the ibl.ai platform. Choose your path based on your backend setup:

Option A: Existing ibl.ai Tenant

If you already have an ibl.ai tenant (organization key):

  1. Configure your tenant

    cp .env.example .env.local

    Update these values with your tenant details:

    NEXT_PUBLIC_TENANT=your-tenant
  2. Deploy with Docker (recommended)

    docker build -t os .
    docker run -p 5000:5000 --env-file .env.local os

    Or deploy standalone:

    pnpm build
    PORT=3000 node server-wrapper.js

    The build emits a self-contained server under .next/standalone/ (Next.js standalone output). next.config.ts pins outputFileTracingRoot to the project directory so the output always lands at .next/standalone/server.js with its static assets alongside it. See Troubleshooting if the app loads to a blank screen.

Option B: Enterprise Deployment

If you need full backend infrastructure:

  1. Get an enterprise license

    Reach out at ibl.ai/contact to get a license of the enterprise platform (full backend codebase).

  2. Deploy with our infra CLI

    If you already have access to our Docker images, deploy them easily via iblai/iblai-infra-cli.

Note: ibl.ai/os requires the ibl.ai backend platform for authentication, AI agent APIs, and data services. The backend is not included in this repository β€” visit ibl.ai to get started.

Desktop & Mobile

See docs/development.md for native app build instructions.

Full deployment docs: Docker & Standalone

Build-Time Configuration

The native (Tauri) app reads two optional build-time flags. Because they're baked in at compile time (Rust's option_env!), you set them as environment variables in the build shell before pnpm exec tauri build β€” so the same codebase can produce differently-configured builds from the same app URL (e.g. one build locked to tenant A, another to tenant B).

Env var Tauri command Default Effect
IBL_TENANT get_locked_tenant β†’ string "" (unlocked) Tenant lock. When set, the app forces every user onto this tenant β€” logging out of any other tenant it finds β€” and hides the tenant switcher. Empty = multi-tenant.
IBL_ALLOW_IN_APP_PURCHASE allow_in_app_purchase β†’ bool false Enables in-app purchase UI. Truthy values: 1, true, yes, on (case-insensitive).
# a build locked to the "acme" tenant with in-app purchase enabled
IBL_TENANT=acme IBL_ALLOW_IN_APP_PURCHASE=true pnpm exec tauri build

In CI, set them as env on the build step. src-tauri/build.rs declares cargo:rerun-if-env-changed for both, so cargo recompiles whenever a value changes between builds. Leaving them unset yields a standard, unlocked build.

Troubleshooting

The app loads to a blank page or stays stuck on the loading spinner (no redirect to login).

Open your browser's DevTools β†’ Network tab and reload. If every request under /_next/static/... and /env.js returns 404/503, the server isn't finding its static assets. Two common causes:

  • A duplicate or stale server is bound to the port. An older node/next process from a previous run can keep listening on :3000 and shadow the new one (a process bound to a specific address such as 127.0.0.1 wins over a wildcard bind). Find and stop strays before starting fresh:

    lsof -nP -iTCP:3000 -sTCP:LISTEN   # list listeners on the port
    kill <PID>                         # stop the stale one
  • The standalone output was nested under an unexpected path. Next.js infers the file-tracing root from the nearest lockfile. A stray lockfile in a parent directory (e.g. ~/package-lock.json) makes it treat your home directory as the workspace root and emit the server at .next/standalone/<path-to-project>/server.js instead of .next/standalone/server.js β€” post-build.sh then copies static assets next to the wrong path and server-wrapper.js can't find the server. This repo pins outputFileTracingRoot in next.config.ts to prevent it; if you still hit nesting, remove the stray parent lockfile and rebuild.


Testing

This project is covered by Playwright end-to-end tests in e2e/. Run the E2E suite for any change so nothing regresses:

make e2e-ui

make e2e-ui launches Playwright in interactive UI mode β€” watch the journeys run, step through them, and re-run individual tests. The first time, install the browsers once:

make e2e-install

Other useful targets:

Command What it does
make e2e Run the full suite headless (all browsers)
make e2e-headed Run with a visible browser
make e2e-chrome Run on Chrome only
make e2e-journey J=01 Run a single journey spec
make e2e-report Open the last HTML report

See e2e/COVERAGE.md for current coverage. Coverage must not regress β€” add or update a journey whenever you change user-facing behavior.


Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines. If you'll be working with AI-assisted tooling, read AGENTS.md first β€” it documents the formatting, lint, and push protocol rules that the husky hooks enforce.


Resources


License

MIT License. See LICENSE for details.


ibl.ai Β· Your organization's AI, under your control.

About

Enables organizations to create and deploy customizable AI agents with support for multiple LLM providers, real-time chat, voice, document training, analytics, user management, SSO authentication, and embeddable widgets. Built with React 19, Redux Toolkit, Radix UI, and Tailwind CSS.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages