GitHub - NiaExperience/PearlOS: Your Interface to Intelligence

13 min read Original article โ†—

PearlOS Logo

Your Intelligent Environment, In Any Browser.

License: PSAL-NC Discord


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.


Why PearlOS?

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.


Features

PearlOS brings a lot to the table. Here's what you can explore:

Conversation & Memory

  • ๐ŸŽค 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

Automation & Tools

  • ๐Ÿค– 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

Intelligence & Flexibility

  • โš™๏ธ 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

Your Stack

  • ๐Ÿ  Runs Locally - Full stack on your machine with your own API keys. No cloud lock-in.

Screenshots

Desktop Interface

PearlOS Desktop

PearlOS desktop with application icons, chat interface, and pixel-art fantasy forest background

Task Management

Task Management

Real-time task tracking with job status, progress indicators, and active work monitoring

Dashboard & Analytics

Visualization for Data Dashboard

Interactive dashboard showing stock performance analysis with Pearl's AI-powered insights

Introducing Your Control Panel

PearlOS Settings at a glance: configure providers, models, launch mode, and channel assignments from one place.


Quick Start

PearlOS ships with setup scripts that handle everything: dependencies, environment files, database seeding, and bot configuration.

Option 1: Interactive Setup Wizard (recommended)

git clone https://github.com/NiaExperience/PearlOS.git
cd PearlOS
bash scripts/new-setup.sh

The 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-interactive

Option 2: Classic Setup Script

git clone https://github.com/NiaExperience/PearlOS.git
cd PearlOS
bash scripts/setup.sh

This runs the full setup in one shot. After it finishes, add your API keys to .env.local and run:

Option 3: Manual Setup

If 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 dev

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


Architecture Overview

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.

The Full Stack Architecture

Frontend :3000 Next.js 14, React, TypeScript Desktop shell, windowed apps, Wonder Canvas, Sprites

Transport Daily.co WebRTC (voice), Pipecat (orchestration), GraphQL + REST (data)

  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚   apps/interface         :3000       โ”‚
  โ”‚   apps/dashboard         :4000       โ”‚
  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
  โ”‚   apps/pipecat-daily-bot :4444       โ”‚
  โ”‚   apps/mesh              :2000       โ”‚
  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
  โ”‚   packages/prism  ยท events           โ”‚
  โ”‚   packages/features ยท redis          โ”‚
  โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
  โ”‚   PostgreSQL ยท Redis ยท Cloudflare    โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Intelligence OpenClaw Gateway, Anthropic Claude, OpenAI (configurable)

Data :2000 Mesh GraphQL API, PostgreSQL (via Prism), Redis pub/sub

Infrastructure RunPod GPU pods, Cloudflare Tunnels

Project structure (monorepo)

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.


Port Map

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

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.

Voice pipeline infographic

Your mic Browser captures audio via Daily.co WebRTC (low-latency upstream)

Pipecat Orchestrates the full pipeline: VAD, turn-taking, interrupt handling

Deepgram STT Real-time streaming speech-to-text conversion

LLM (Brain) Claude, OpenAI, or any compatible model generates Pearl's response

50+ Tools Open apps, edit notes, control canvas, change settings, search the web

PocketTTS Text-to-speech via the Azelma voice model

Audio out Daily.co WebRTC streams Pearl's voice 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.


Desktop Apps

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.


Tools

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.

Categories

  • ๐Ÿ–ฅ๏ธ 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.

Configuration

Each service uses its own .env file. Copy the examples and fill in your keys.

apps/interface/.env.local

# 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

apps/pipecat-daily-bot/.env

# 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

apps/mesh/.env

# Database connection
DATABASE_URL=postgresql://user:password@localhost:5432/pearos

# JWT secret for session validation
JWT_SECRET=your_jwt_secret

# Port (default 2000)
PORT=2000

Project Structure

PearlOS/
โ”œโ”€โ”€ 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

Community

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.


A Quick Note from the Dev Team

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


License

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.