PearlOS is an intelligent environment that runs in your browser. The AI isn't an app you open, it IS the interface. Talk to it, tap it, let it handle things. Phone, tablet, laptop, whatever. Pearl has memory, awareness, and control of your visual and audio experience, spins up swarms of intelligence for complex tasks, and gets better the more you use it.
Most AI lives inside a chat window. You type, it responds, you close the tab, it forgets you existed. That is not a relationship, it is a vending machine.
PearlOS is what happens when AI has a home: persistent memory, a real desktop, voice conversations that pick up where you left off, and teams of agents that keep working while you do not. The code is open because trust requires transparency. Your data stays yours because that was never negotiable. We are building the AI experience people actually deserve.
PearlOS brings a lot to the table. Here's what you can explore:
- π€ Voice Companion - Full voice conversations via PearlOS, like talking to a friend who actually helps
- π€ Conversation Etiquette - Knows when to talk and when to shut up. Reactions over noise
- π§ Persistent Memory - Remembers across sessions. Daily logs, long-term memory, cross-session sync
- β¨ Actual Personality - Opinions, humor, warmth, and zero "I'd be happy to help!" energy
- π¬ Multi-Channel Chat - Discord, Telegram, Signal, WhatsApp, iMessage, Slack, IRC, all from one brain
- π Cross-Session Awareness - Discord me knows what voice me just did. One entity, many surfaces
- π Memory Search - Semantic search across all memory files for instant context recall
- π€ Sub-Agent Swarms - Spawn background workers for heavy tasks, get pinged when they finish
- π Node Control - Camera snaps, screen recording, location, and remote commands on paired devices
- β° Cron & Reminders - Schedule anything: one-shot reminders, recurring jobs, timed agent runs
- π Research & Act - Search the web, fetch content, then do something with it: build, email, summarize, deploy
- π₯οΈ Browser Automation - Full browser control for scraping, testing, or navigating complex sites
- π» Shell Access - Run commands, manage processes, deploy services, debug live systems
- π File Operations - Read, write, edit files across the workspace by Voice. Git commits included
- πͺ Frontend Design - Build production-grade web UIs from descriptions, mockups, screenshots, or vibes
- πΊ Real-Time Desktop Content - Weather, news, visuals, and interactive scenes rendered live on the PearlOS desktop
- π§ Email - Send emails directly, no app switching required
- βοΈ Skill System - Skills for weather, image gen, transcription, coding agents, and more. She uses them and builds new ones herself
- π¨ Image Generation - Create images from prompts (e.g. via local ComfyUI or nano banana pro), built into the environment
- πΌοΈ Image Analysis - Vision model for analyzing screenshots, photos, diagrams, whatever
- π Model Flexibility - Sonnet for quick stuff, Opus for heavy lifting, swap on the fly
- β€οΈ Proactive Heartbeats - Checks on its own: emails, services, calendar, anything worth flagging
- π‘οΈ Service Health Monitoring - Auto-detect downed PearlOS services and restart them
- π Runs Locally - Full stack on your machine with your own API keys. No cloud lock-in.
PearlOS Settings at a glance: configure providers, models, launch mode, and channel assignments from one place.
π§ Pearl Mind
|
π‘ Channel Models
|
ποΈ Credentials
|
PearlOS ships with setup scripts that handle everything: dependencies, environment files, database seeding, and bot configuration.
git clone https://github.com/NiaExperience/PearlOS.git
cd PearlOS
bash scripts/new-setup.shThe wizard walks you through preset selection (full, minimal, or custom), installs all dependencies (Node, Python, Poetry, uv), creates .env files with API key placeholders, seeds the database, and configures the voice bot. It works on Linux, macOS, and Windows (via Git Bash/WSL).
You can also run it non-interactively:
bash scripts/new-setup.sh --preset full --non-interactivegit clone https://github.com/NiaExperience/PearlOS.git
cd PearlOS
bash scripts/setup.shThis runs the full setup in one shot. After it finishes, add your API keys to .env.local and run:
npm run start:allIf you prefer doing things by hand, PearlOS is a monorepo. You will need Node.js 20+, Python 3.11+, and npm (this repo uses npm workspaces, not pnpm).
git clone https://github.com/NiaExperience/PearlOS.git
cd PearlOS
npm install
# Set up environment variables
cp apps/interface/.env.example apps/interface/.env.local
cp apps/pipecat-daily-bot/.env.example apps/pipecat-daily-bot/.env
cp apps/mesh/.env.example apps/mesh/.env
# Set up the Python voice bot
cd apps/pipecat-daily-bot
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cd ../..
npm run devOnce running, open http://localhost:3000. Click the microphone icon (or just start talking) and say hello to Pearl.
Note: You will need API keys for Deepgram, Daily.co, an LLM provider, and PocketTTS before the voice pipeline will work. See Configuration.
PearlOS is an AI-native desktop: the browser is the shell, the voice pipeline is the assistant, and the GraphQL mesh is the shared brain. Three services do the heavy lifting: the interface (what you see and click), the voice bot (what you talk to), and the mesh (where state, config, and tools meet). The UI and the bot both talk to the mesh over HTTP; real-time voice runs over Daily.co WebRTC so latency stays low.
What this means in practice: Pearl can open apps, run tools, and remember context because the interface and the bot share the same GraphQL API and event system. Change a setting in the dashboard or over voice, and both sides stay in sync.
|
Frontend Transport Daily.co WebRTC (voice), Pipecat (orchestration), GraphQL + REST (data) |
|
Intelligence OpenClaw Gateway, Anthropic Claude, OpenAI (configurable) Data Infrastructure RunPod GPU pods, Cloudflare Tunnels |
The repo is a single npm workspace. All runnable apps and shared packages live under apps/ and packages/. Scripts, config, and docs sit at the root.
| Layer | Path | Purpose |
|---|---|---|
| Apps | apps/interface |
Next.js desktop UI (port 3000). Features live under src/features/<Name>/. |
apps/dashboard |
Next.js admin dashboard (port 4000). | |
apps/mesh |
GraphQL API server (port 2000). Resolvers, REST content API, Postgres/Prism. | |
apps/pipecat-daily-bot |
Voice pipeline: Node server, Python bot (Pipecat), and React UI. Port 4444. | |
apps/chorus-tts |
Optional local TTS (Chorus). Not in root npm workspaces. | |
apps/web-base |
Docker base image for web apps. | |
| Packages | packages/prism |
Data access client. Use this instead of querying storage directly. |
packages/events |
Event descriptors and codegen. Event-driven UI/bot behavior. | |
packages/features |
Feature flags. Descriptors and generated runtime. | |
packages/redis |
Redis pub/sub types and utilities for cross-process messaging. | |
| Root | scripts/ |
DB, env, Chorus, Cypress, and one-off automation scripts. |
config/ |
Example configs (Cloudflare, Redis, etc.). | |
pearl-docs/ |
Architecture, development, voice, and operations docs. | |
tests/ |
E2E (Cypress), load tests, visual regression, smoke, shared mocks. |
Rule: packages/* must not import from apps/*. The interface and dashboard consume Prism, events, and features; the mesh and bot use them on the server side.
| Service | Directory | Port | Description |
|---|---|---|---|
| Interface | apps/interface |
3000 | Next.js desktop UI |
| Dashboard | apps/dashboard |
4000 | Next.js admin dashboard |
| Mesh | apps/mesh |
2000 | GraphQL API and shared state |
| Voice Bot | apps/pipecat-daily-bot |
4444 | Pipecat + Daily.co voice pipeline |
Pearl's voice pipeline is the core of the real-time conversation experience. Audio flows left to right through seven stages, from your microphone back to your speakers.
Pipecat ties the whole chain together so the conversation feels immediate and natural. Tool calls execute on the mesh/interface side; results feed back into the pipeline before TTS.
PearlOS ships with a set of built-in apps that Pearl can open, control, and interact with on your behalf:
| App | Description |
|---|---|
| Wonder Canvas | AI-generated visual content, images, and rich displays |
| Notes | Markdown notes with full Pearl read/write access |
| YouTube | Embedded YouTube player with voice control |
| Soundtrack | Ambient and contextual music player |
| Sprite Overlay | Animated character system with expressive poses |
| Settings | Feature flags, preferences, and system config |
| Task Manager | Running processes and tool execution status |
Apps are rendered as draggable, resizable windows within the desktop shell. Pearl can open any app, bring it to focus, resize it, or close it using the tool system.
Pearl has access to 50+ tools organized into functional categories. These tools are what give Pearl genuine agency over the desktop environment rather than just answering questions.
- π₯οΈ Desktop and Window Management Open, close, focus, resize, and arrange app windows. Control the taskbar and desktop layout.
- πͺ Wonder Canvas Generate and display visual content. Set canvas modes, push images, control transitions.
- π Notes Create notes, read notes, edit content, search across notes, delete notes.
- πΊ YouTube Search YouTube, queue videos, play, pause, skip, seek, control volume.
- π΅ Soundtrack Select ambient tracks, adjust volume, fade in/out, pause, resume playback.
- π Sprite System Set sprite poses, expressions, and animations. Show or hide the overlay character.
- π© Feature Flags Enable or disable feature flags at runtime without redeployment.
- β‘ System and UI Send notifications, update status displays, navigate between views, trigger UI events.
- π¬ Conversation and Memory Read session context, set reminders, recall prior topics, manage conversation state.
- π External Integrations Fetch web content, query external APIs, retrieve structured data.
Each service uses its own .env file. Copy the examples and fill in your keys.
# API endpoint for the voice bot
NEXT_PUBLIC_BOT_URL=http://localhost:4444
# GraphQL mesh endpoint
NEXT_PUBLIC_MESH_URL=http://localhost:2000/graphql
# Optional: YouTube Data API key for search
YOUTUBE_API_KEY=your_youtube_api_key
# Optional: feature flag defaults
FEATURE_WONDER_CANVAS=true
FEATURE_SPRITES=true
FEATURE_SOUNDTRACK=true# Daily.co (WebRTC rooms)
DAILY_API_KEY=your_daily_api_key
# Deepgram (speech-to-text)
DEEPGRAM_API_KEY=your_deepgram_api_key
# LLM provider (choose one or configure multiple)
OPENAI_API_KEY=your_openai_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
# PocketTTS (text-to-speech, voice: Azelma)
POCKET_TTS_URL=http://your-pockettts-server:port
POCKET_TTS_VOICE=Azelma
# Interface callback URL (for tool results)
INTERFACE_URL=http://localhost:3000# Database connection
DATABASE_URL=postgresql://user:password@localhost:5432/pearos
# JWT secret for session validation
JWT_SECRET=your_jwt_secret
# Port (default 2000)
PORT=2000PearlOS/
βββ apps/
β βββ interface/ # Next.js desktop UI (port 3000)
β β βββ app/ # App router pages
β β βββ components/ # Desktop shell, windows, apps
β β β βββ desktop/ # Taskbar, window manager
β β β βββ apps/ # Notes, YouTube, Canvas, etc.
β β β βββ sprites/ # Animated overlay system
β β βββ lib/ # Shared utilities, hooks
β β βββ public/ # Static assets
β β βββ .env.local.example
β β
β βββ pipecat-daily-bot/ # Voice pipeline (port 4444)
β β βββ bot.py # Main bot entrypoint
β β βββ tools/ # 50+ Pearl tool definitions
β β βββ pipeline/ # Pipecat pipeline config
β β βββ tts/ # PocketTTS integration
β β βββ requirements.txt
β β βββ .env.example
β β
β βββ mesh/ # GraphQL API (port 2000)
β βββ schema/ # GraphQL schema definitions
β βββ resolvers/ # Query and mutation resolvers
β βββ prisma/ # Database schema and migrations
β βββ .env.example
β
βββ packages/ # Shared packages (types, utils)
βββ package.json # npm workspaces root
βββ .github/CONTRIBUTING.md
βββ README.md
PearlOS is open source and built in the open. Contributions, issues, and ideas are welcome.
- Contributing: Read CONTRIBUTING.md before opening a PR.
- Issues: Use GitHub Issues for bugs and feature requests.
- Discussion: Join the community on Discord.
Built by Nia Holdings and the PearlOS community.
PearlOS is a self-evolving operating system. You talk to Pearl in PearlOS, she builds, creates, informs, learns, evolves. This is an open source browser-based, voice and touch desktop environment powered by an intelligent learning companion named Pearl. Pearl has full awareness and control of your visual and audio experience inside PearlOS in real time, so you can think out loud, ask for anything, and watch your desktop respond. She is not an assistant embedded in a UI. She is the UI. Over time she improves understanding how you work and adapts.
We're a small team (NiaXP) and this is a very early access. We want you to help us grow Pearl together. She still has rough edges everywhere. But she is full of possibility. Plus something we believe is a first: Whenever you encounter a bug in our OS, you tell her what you wanted her to do instead. Immediately Pearl dispatches the swarm intelligence to investigate, improve, and evolve the OS code to adapt to you. Our hope is that by making it incredibly easy to build on this open source experience, anyone and everyone can become contributors to a code base run by people all over the world.
Our stack is fully open source: Next.js frontend, OpenClaw agent framework, Pipecat voice pipeline (Deepgram STT, PocketTTS running locally), Daily.co WebRTC. 70+ tools. Everything runs local first with your own keys. The reason this matters: we're at a moment where AI is already being used against the public to benefit a small group of powerful individuals. PearlOS is a complete reimagining of how the same technology which can be used to exploit humanity can instead be used to liberate us. This isn't a product demo or a research paper; it's a working canvas for people all over the world to build just by using their voice.
The goal isn't just transparency. We intend to grow a community of developers, designers, creators, scientists, artists, and innovators who take this foundation and make the power of good intelligence accessible to all.
More info: https://pearlos.org
PearlOS is released under the PearlOS Source-Available License (PSAL-NC).
Copyright Β© 2026 Nia Holdings, Inc. All rights reserved.
You can: Use it, modify it, fork it, evolve it, experiment with it, research with it, build with it, learn from it, create culture with it.
You cannot monetize it, sell it, host it commercially, package it into products, build SaaS on it, or extract value from it commercially β without a commercial license.
PearlOS is distributed under a dual-license model:
- Non-Commercial License (PSAL-NC) β free for personal, research, and non-commercial use
- Commercial License β separate contract required for commercial use
See LICENSE for full terms.








