Glass by Pickle

A privacy-first desktop AI assistant that sees your screen, hears your meetings, and turns live context into structured summaries—without sending a single byte to the cloud.

7.5Kstars
1.1Kforks
GNU GPLv3
JavaScript

Glass by Pickle is a local-first, open-source desktop AI assistant built on Electron and Next.js. It runs entirely on your machine, passively observing your screen and audio to build a live context buffer—then answers your questions and generates meeting summaries using that accumulated knowledge. No persistent recording, no cloud uploads, no third-party data brokers: your digital activity stays yours.

What makes Glass distinctive is its multi-layer AI abstraction. You can route queries through OpenAI, Google Gemini, Anthropic Claude, or a fully offline stack powered by Ollama for LLMs and Whisper for speech-to-text. Switch providers without changing any workflow; Glass exposes a unified interface regardless of what runs underneath. Acoustic echo cancellation—compiled from Rust to WebAssembly—separates your microphone from system audio in real time, ensuring clean transcription even during speaker-heavy video calls.

Glass also ships a dual-database architecture. When you are offline or unauthenticated, all data lands in a local SQLite database. Authenticate and everything syncs to Firebase Firestore automatically, enabling access to your session history from a companion web dashboard. Encryption is applied by default to all sensitive fields—API keys, transcripts, summaries—before any cloud write.

The project is actively maintained under GPL-3.0 and welcomes contributors. A CONTRIBUTING guide, detailed design-patterns documentation, and a modular feature structure make it approachable for developers who want to extend or self-host it.

What You Get

  • Real-Time Meeting Summaries - Automatically transcribes and summarizes live audio during calls, producing structured notes and action items the moment a meeting ends.
  • Context-Aware AI Querying - Ask anything and Glass answers using the entire accumulated history of your screen interactions and audio from the current session.
  • Local LLM and STT Support - Run Ollama models and local Whisper for fully air-gapped, private AI processing with no API keys required.
  • Multi-Provider AI Flexibility - Switch between OpenAI GPT-4.1, Gemini 2.5 Flash, Claude, and local models from a single settings panel without reconfiguring workflows.
  • Invisible Desktop Presence - The app never appears in screenshots, screen recordings, or the system dock, and never maintains a persistent audio capture stream.
  • Dual-Database Sync - Session history lives in local SQLite offline and automatically syncs to Firebase Firestore when authenticated, accessible via a web dashboard.
  • Acoustic Echo Cancellation - A WebAssembly-compiled Rust AEC module separates microphone audio from system playback for clean transcription on any platform.
  • Cross-Platform Support - Ships for macOS (signed and notarized), Windows (with beta label), and Linux via Electron’s multi-platform build pipeline.

Common Use Cases

  • Live meeting facilitation - A product manager lets Glass run silently during a stakeholder call, then retrieves a structured summary with decisions and action items immediately after the meeting ends.
  • Privacy-sensitive research - A journalist transcribes interviews and extracts quotes using an entirely local Ollama + Whisper stack, with no audio ever leaving their laptop.
  • Developer knowledge capture - A software engineer runs Glass during a debugging session to automatically log steps, error messages, and code snippets visible on screen for later review.
  • Async knowledge retrieval - A consultant asks Glass ‘what did we agree on pricing last Tuesday?’ and gets an answer synthesized from past session transcripts stored in local SQLite.
  • Remote team notetaking - A distributed team member uses Glass to generate shareable session summaries that sync via Firebase to colleagues who missed the call.
  • Regulated industry documentation - A healthcare professional uses the fully offline mode to document patient consultations without any data leaving a secure workstation.

Under The Hood

Architecture Glass follows a well-structured Service-Repository pattern inside the Electron main process, with a deliberate and enforced boundary between the renderer (UI) and main process layers. All data persistence logic is centralized in the main process; renderer views and the embedded Next.js web UI are forbidden from touching databases directly. A factory-and-adapter pattern in each repository dynamically selects SQLite or Firebase Firestore depending on authentication state, making calling services completely agnostic about the underlying store. A centralized EventEmitter event bridge synchronizes state across the Electron IPC layer, an embedded Express API server, and the Next.js frontend simultaneously. Feature directories encapsulate their own services, repositories, and views, while shared concerns (auth, encryption, AI routing) live in a common module.

Tech Stack Glass is an Electron 30 desktop application embedding a Next.js 14 TypeScript frontend statically built and served by an Express server running inside the main process. The Electron layer itself is JavaScript. Multi-provider AI runs through a factory pattern supporting OpenAI GPT-4.1, Anthropic Claude, Google Gemini 2.5 Flash, Deepgram, and Ollama for fully local LLM inference. Speech-to-text providers include Whisper (local), Deepgram, and Gemini Live. Local persistence uses better-sqlite3 for synchronous SQLite access; cloud sync uses Firebase Firestore with encrypted converters. Acoustic echo cancellation is a Rust-compiled WebAssembly module embedded in the renderer. Keytar provides OS-level keychain storage for API credentials.

Code Quality The codebase is well-organized and follows documented architectural conventions captured in DESIGN_PATTERNS.md, making onboarding straightforward for new contributors. The Next.js frontend uses TypeScript with strict mode, but the Electron main process is entirely JavaScript, leaving a significant surface area without static type checking. No unit or integration test files were found anywhere in the repository. Error handling is present throughout but inconsistent—some service methods use structured try/catch with meaningful recovery, while others log and swallow errors silently. A Prettier formatter and ESLint for the web subpackage exist, but no project-wide linting or CI configuration was observed.

What Makes It Unique Glass occupies an unusual position by combining a passive context engine—one that never records, yet accumulates session knowledge—with the ability to run the entire AI pipeline offline using Ollama and local Whisper. Most desktop AI tools are either cloud-dependent or require explicit recording consent; Glass does neither. The dual-database repository with automatic provider switching means the same codebase delivers full offline-first SQLite operation for unauthenticated users and seamless Firestore sync for authenticated ones without a single conditional in the service layer. The Rust-to-WebAssembly acoustic echo cancellation gives cross-platform AEC without native addon complexity, and the unified AI provider factory makes adding a new LLM backend a single-file addition.

Self-Hosting

Glass is released under the GNU General Public License v3.0. This is a strong copyleft license: you are free to use, modify, and distribute the software commercially, but any derivative work you distribute must also be released under the GPL-3.0. For internal self-hosting where you do not distribute the modified software externally, copyleft obligations generally do not apply—but legal review is advisable before embedding Glass in a product you ship to others.

Self-hosting Glass means running an Electron app directly on end-user desktops rather than on a server. There is no centralized service to operate, but each installation requires Node.js 20.x and platform-specific build tooling (Visual Studio Build Tools on Windows). The Firebase backend is optional but recommended for cross-device sync—you would need to provision your own Firebase project and update the configuration. Ollama must be separately installed for local LLM inference. Updates are handled by electron-updater, which can be pointed at a self-hosted update server. There is no managed upgrade path beyond what you build yourself.

Compared to Pickle’s hosted offering (pickle.com/glass), self-hosting gives you full data sovereignty and the ability to run completely air-gapped, but you absorb all operational responsibility: managing the Firebase project, rotating API keys, handling Electron app distribution and updates across a fleet, and ensuring the local SQLite databases are backed up per device. There is no enterprise SLA, no managed high-availability configuration, and no dedicated support channel beyond the public Discord and GitHub Issues. Teams evaluating Glass for regulated or sensitive workloads should weigh these trade-offs carefully.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack

No spam. Unsubscribe anytime.

Join 750+ subscribers
No spam. Unsubscribe anytime.

Search