Skip to content

iblai/os

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,245 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ibl.ai

OS

The open-source AI agent platform.

Build, deploy, and manage intelligent conversational agents — from prototype to production — in minutes.

Website Docs License: MIT Next.js macOS iOS Android Surface

Demo by Miguel Amigot, CTO at ibl.ai

Demo by Miguel Amigot, CTO at ibl.ai

Features · Screenshots · Quick Start · Deployment · Troubleshooting · Testing · Contributing


Features

  • AI Agents — Create custom agents with configurable LLMs, system prompts, tools, and safety filters
  • RAG Training — Upload documents, connect Google Drive, OneDrive, Dropbox, or crawl websites to ground agents in your data
  • Voice Calls — Real-time WebRTC voice chat powered by LiveKit
  • Deep Research — Extended multi-step reasoning for complex queries
  • Canvas / Artifacts — Generate, edit, and version rich documents alongside chat
  • Screen Sharing — Share your screen directly inside a chat session
  • Web Search — Ground responses with live web results
  • MCP Servers — Extend agent capabilities with Model Context Protocol tool servers
  • Analytics — Usage dashboards, topic analysis, transcript viewer, and financial reporting
  • Projects — Collaborative workspaces to group agents with shared context and goals
  • Cross-Platform — Ships as web, desktop (macOS, Windows, Linux), and mobile (iOS, Android)
  • Multi-tenancy — Full tenant isolation with per-org configuration, branding, and user management
  • SSO — Single Sign-On with configurable identity providers (OAuth, OIDC, SAML)
  • RBAC — Granular role-based access control with policies and group-based permissions
  • Stripe Billing — Subscription management, free trials, and usage-based pricing
  • Embed Mode — Embed agents in any website via iframe with custom styling
  • Custom Domains — Host agents on your own domain
  • API Keys — Programmatic access for integrations and automation
  • Whitelabeling — Custom branding, logos, and disclaimers

Available On

Platform Status
Web Production at os.ibl.ai — works on any modern browser
macOS Native desktop app — lightweight, fast, system-integrated
iOS Native mobile app — available on iPhone and iPad
Android Native mobile app — available on phones and tablets
Windows Native desktop app
Linux Native desktop app

One codebase, six platforms. OS runs natively everywhere your users are — lightweight, fast, with near-native performance.


Screenshots

Agent Configuration

Configure agents with LLMs, prompts, safety filters, and explore conversation starters

Agent Settings

Customize agent identity, description, and appearance

MCP Connectors

Connect to external services via Model Context Protocol — GitHub, Notion, Slack, and more

Memory Settings

Manage agent memory with knowledge gaps, learning goals, and user preferences

Agent Discovery

Control agent visibility, access permissions, and LTI integration


Quick Start

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

Using Claude Code? Run /setup — it will walk 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

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: 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

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.jspost-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.

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

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors