Skip to content

Frequently Asked Questions

Short, honest answers to the questions people actually ask. If something here is wrong or missing, open an issue on GitHub — this page is a living document.

Glassy at a glance

What is Glassy?

Glassy is a quiet web workspace for people who think in 47 tabs, 12 notebooks, and a voice memo they forgot to label. It bundles notes, bookmarks, voice transcription, and on-device AI on one page. Files stay on your disk; nothing about your writing trains a model. The Glassy Capture browser extension is a separate tool that captures into Glassy.

Is there a desktop app?

No. Glassy runs in your browser at app.glassy.fyi. Install it as a PWA for a native-window experience with offline support and a dock icon. See Quick Start for the install steps.

Is there a mobile app?

Not yet. The web app works on mobile browsers and the PWA installs on iOS and Android. A native shell is on the long-term roadmap but is not in active development.

Where does my data live?

  • On the cloud instance (app.glassy.fyi): your notes, bookmarks, and uploads live on a managed SQLite database. Backups are daily and encrypted at rest.
  • On a self-hosted appliance: your data lives on your own machine in the glassy-data Docker volume. Nothing leaves the box unless you ship a backup off-machine.

You always export the same way regardless of where the data lives — Markdown and JSON, never a proprietary format.

Pricing & plans

How much does Glassy cost?

Plan Price What you get
Free $0 Every ability the software has, 10 MB hosted storage, 2 Cloud Sync cycles/hour, no publishing
Pro $17/month or $100/year 200 MB hosted storage, 60 Cloud Sync cycles/hour, publishing, priority support
Clear $80/month or $300/year All of Pro (200 MB), every theme pack, the Clear community, the Pair bundled while active
Zero Reliance Pair $79 one-time Appliance ↔ your own instance; perpetual for beta/v1 buyers; included with Pro yearly and active Clear; permanent for the first 2,000 Clear members
AI packs $10 / $20 / $50 (one-time) 100k / 200k / 500k credits, never expire. No plan includes an AI allowance

Founding membership is limited to the first 2,000 Clear members (any Clear plan). Founding members receive a permanent Pair grant and a member number, and Clear continues to sell after 2,000.

Existing grandfathered $120/year plans remain on the books until cancelled. Existing grandfathered $0 comp plans are not affected. The single source of truth for pricing is the www.glassy.fyi/pricing page.

Can I switch between monthly and yearly?

Yes — upgrade or downgrade from Settings → Billing at any time. Yearly is billed up front and credited on the switch. Monthly changes take effect on the next billing date.

Can I cancel?

Yes, from the same screen. Cancellation is immediate; we don't make you email support to leave. Your data is preserved for 30 days in case you change your mind, then permanently deleted. Export before cancelling if you want a copy.

What about a refund?

Yes — full refund within 14 days of purchase, no questions asked. Email [email protected] from the address on the account.

AI features

Does Glassy use my notes to train AI models?

No. Not for cloud AI, not for on-device AI, not for anything else. Your notes are never used as training data. Cloud AI requests are routed to providers under their standard terms; providers do not retain or learn from your prompts on the plans Glassy uses.

What's the difference between local AI and cloud AI?

  • Local AI runs in your browser via WebGPU using open-weight models (Qwen 2.5, Whisper, MXBai embeddings). Free, no key, nothing uploaded. Latency depends on your hardware.
  • Cloud AI runs on the provider you choose (Gemini, OpenAI, Anthropic) using your own BYOK key, or a credit pack you buy once. No plan includes an AI allowance. It is faster and more capable than the on-device models, and a pack costs credits when you use it.

Local AI is the default. Cloud AI is opt-in. You can mix them per-feature — local for grammar, cloud for a long summary — and switch the default in Settings → AI.

What is BYOK?

Bring Your Own Key. Paste your OpenAI, Anthropic, or Google API key in Settings → AI → Bring Your Own Key and Glassy routes cloud requests through your provider account, so the provider bills you directly.

What are the MCP rate limits?

Tier Tool calls per hour KB queries per hour
Free 120 30
Pro 1,200 300

The hourly window is rolling. Multiple free users behind the same NAT share the same IP-keyed rate limit on KB queries, so consider Pro if you collaborate on a shared network. MCP tool calls are keyed per-user, so each account gets its own quota.

Self-hosting

Can I self-host Glassy?

Yes. The self-hosted appliance is a single-user Docker container that runs Glassy on your own machine. Self-hosting unlocks:

  • Live Obsidian vault sync (the server can reach 127.0.0.1:27124 on the same machine)
  • Local Ollama for on-box AI
  • Agent Gateway (OpenClaw, Hermes)
  • Full data sovereignty

You'll need a free Glassy account — self-hosting is open to every account, Free included. Verification runs about every 30 days with the pairing token you minted; no membership is required. The full setup is in Self-Hosting Glassy; it takes about ten minutes on Linux, macOS, or Docker Desktop on Windows.

What's the difference between self-hosting and Clear?

Cloud (app.glassy.fyi) Self-hosted appliance Clear community instance
Audience Public users One person, their machine The Clear membership community
Notes, AI, capture, Glassy Capture Yes Yes Yes
Live Obsidian sync No Yes No on the hosted Clear instance; a member can run a self-hosted appliance
Multi-user No No (single-owner by design) Yes
Membership required Free works A free account is enough Clear
Commerce / upgrade flow Yes Disabled Clear-tier only

Where do I get the Docker image?

From GitHub Container Registry:

docker pull ghcr.io/0reliance/glassy-dash:v2.58.0

Pull a released version tag (e.g. v2.58.0) — never :latest, which is the hosted build without self-host features. The full docker-compose.yml, .env.example, and the appliance mirror live in 0Reliance/glassy-selfhost.

Is the self-host repo private?

No — the appliance mirror 0Reliance/glassy-selfhost and the GHCR image are public; docker compose up -d pulls anonymously with no GitHub login.

The Glassy Capture extension

What is the Glassy Capture?

The Glassy Capture browser extension lets you capture web content — bookmarks, articles, screenshots, highlights, page elements — directly into your Glassy library. It runs in Chrome, Firefox, Edge, Opera, Brave, and Arc.

What version is current?

v2.20.1, released 2026-09-27 — a correctness release: MCP key-fetch errors classify on the HTTP status code, and the extension reads the public manifest rather than probing per feature. The prior v2.19.0 (2026-09-22) was the companion is a principal release, pairing with glassy-dash v2.40.0: the extension reads the public /api/capabilities manifest with a fail-closed client gate (the self-host/cloud split rule applied to the client), the AI Tools (MCP) section can issue this extension its own NAMED agent key (pinned identity "Companion") on self-host named-keys appliances so everything it saves is attributed, a 🔔 unread agent-notification badge rides the popup header (self-host only; the poller refuses to fetch on cloud), and the 🧠 KB tab surfaces the server's degraded-lane diagnostics. The previous v2.18.1 (2026-09-10) was the bridge reconnect hardening release: the offscreen-document SSE reconnect delay drops 5000ms → 1000ms (initial value + onopen reset), pairing with the server-side heartbeat fix (first ping immediate, heartbeats every 5s) that ships in glassy-dash v2.36.0-beta.28 to close the ~5s bridge subscribe-churn cycle on self-host (0Reliance/glassy#25-F2). The previous v2.18.0 (2026-08-27) was the bridge transport v2 release (Obsidian glass-pane follow-up): the SSE Obsidian bridge now carries raw markdown bodies + request headers (If-Match, Content-Type, Accept) and relays upstream response headers (ETag) back to the server, so vault writes (tap-to-toggle checkboxes, add-under-heading, daily-note append, push-to-vault) succeed over the extension bridge on containerized self-host where only the extension can reach Obsidian. The server gates transport v2 on the version the extension advertises at subscribe (&extv=); companions ≤ v2.17.1 keep the proven v1 (JSON bodies, read-only-over-bridge) semantics. The prior v2.17.1 was the save & sync reliability release (customer release-gate hardening): capture-rule pre-population fixed (Smart Save auto-fill fires again), transient server errors (5xx) no longer log you out, offline-queue pause/drop semantics fixed (auth failures keep queued saves until re-login), popup saves queue offline with a Queued for Sync state, host permissions cover all glassy.fyi subdomains, plus auth/ping timeouts and rate-limit-aware save-all-tabs. The prior v2.17.0 release fixed the save-card image preview — og:image fills the header with object-fit: cover, brand gradient fallback, conditional favicon img, and CSP img-src mirroring connect-src. See the Glassy Capture page for the full release notes.

Where do I download it?

From the latest GitHub release. The release page has both the .zip (Chrome / Edge / Opera / Brave / Arc) and the signed .xpi (Firefox 121+). Or open app.glassy.fyi/#/extension inside Glassy — the authenticated extension page always shows the live download link.

Does Glassy Capture work on my phone?

No. Browser extensions are a desktop feature. On mobile, save URLs through the share sheet using the PWA install, or paste into the Glassy dashboard directly.

Obsidian integration

Does Glassy replace Obsidian?

No — it's a complement. Glassy adds the things Obsidian intentionally doesn't ship: a clean web client, browser capture, semantic search across the vault, and local AI on top. Your vault stays on your disk; Glassy reads it via the Local REST API plugin.

Why doesn't live Obsidian sync work on the cloud?

A network limitation, not a bug. The cloud server at app.glassy.fyi runs on a remote VM and cannot reach 127.0.0.1 on your machine. Live sync requires the Glassy server to live on the same machine as Obsidian — which means self-hosting.

You can still import a vault ZIP on the cloud. Live bidirectional sync is the only feature that requires self-host.

How does the Obsidian Bridge work on Windows + WSL2 + Docker Desktop?

The Glassy Capture extension runs on the Windows host and proxies Obsidian traffic for the containerized Glassy server. The server pushes proxy requests via Server-Sent Events; the extension calls Obsidian on 127.0.0.1:27124 and returns the result. No WSL2 networking workarounds, no port forwarding. Full setup in the Obsidian Vault guide.

Security & privacy

Is my data encrypted?

  • In transit: TLS 1.3 on every cloud endpoint. The self-hosted appliance uses whatever you put in front of it (Caddy, Cloudflare, Tailscale).
  • At rest: Cloud database backups are encrypted (AES-256-GCM). The live database itself is not field-level encrypted; if that matters to your threat model, self-host.
  • API keys: Your BYOK keys are encrypted in the database using API_KEY_ENCRYPTION_KEY.
  • Obsidian: Glassy never sees your vault contents when using the Glassy Capture bridge — the extension holds the API token and returns only the result.

My authenticator code was correct and Glassy still rejected it

On v2.36.0-beta.42 and later this should not happen — see below for the older builds. Work through it in this order:

  1. Try the next code. Glassy accepts one 30-second step either side of the current one, so a code is good for roughly 90 seconds. If yours had a second left on the ring, submit the next one.
  2. Check your phone's clock, not just your reading of it. TOTP is derived from the time, so a device more than ~30 seconds out produces codes Glassy cannot match. Turn on automatic time sync. Google Authenticator also has its own correction tool under Settings → Time correction for codes.
  3. On a self-hosted appliance, check the server's clock too. date -u inside the container host should match a trusted time source. A host minutes out will reject every code from every device, and re-enrolling 2FA will not help.
  4. Only then re-enrol. Disabling 2FA clears your existing backup codes and re-enrolling issues a brand-new set of 10, shown once.

If you are on a build older than beta.42, the rejection may not be your fault at all. Those builds checked the exact current 30-second step only, so a correct code was refused whenever the boundary fell between you reading it and the server checking it — roughly every login landing in the back half of a step. It presented as an intermittent "Invalid verification code" that worked if you just waited. The fix is to upgrade, not to re-sync your authenticator. Full details on the Two-Factor Authentication page.

Can I tell whether an AI agent edited one of my notes?

Yes, since v2.36.0-beta.41. A note changed through the MCP server records MCP agent as its last editor, so an agent's edit is distinguishable from your own. Before that release it was not — an agent could rewrite a note and the row looked exactly as if you had done it.

Publishing is deliberately not attributed this way. Toggling a note's public visibility (yours, or an administrator's moderation takedown) moves the flag without stamping an editor, so a takedown never makes an administrator look like the person who last wrote your note.

Which version should I pin when self-hosting?

The newest released version tag — currently v2.58.0. Never :latest or :main: those are hosted builds and omit the self-host feature flags, so pointing an appliance at them hides MCP, the Second Brain, Agent connections and BYOK, and shows a "You are on the cloud" banner on your own hardware.

GLASSY_TAG=v2.58.0 docker compose up -d

One exception worth knowing: three versions in the changelog have no published image and must never be pinned. v2.36.0-beta.41's tag push landed inside a transient CI outage, and beta.42 contains all of its work plus the 2FA fix. v2.39.0 was prepared as a release and deliberately not launched — its canvas and bulk-ingest work shipped in v2.40.0. v2.40.1 was never tagged; its work shipped in v2.40.2. Each header says so in the changelog itself, and CI now fails a build that adds another untagged version silently. Pin a version the registry actually has — docker pull is the fastest way to find out.

My self-hosted appliance shows a completely blank page

Upgrade to v2.40.2. Every earlier build decided "is this my own site?" from a hardcoded origin allowlist, so an appliance reached on anything other than localhost:3000 or 127.0.0.1:3001 refused to serve its own JavaScript and CSS and rendered an empty <body>. The container is healthy and the HTML loads — the 403s are on /assets/*.js in the browser's network tab, which is how you confirm it.

It reaches custom APP_PORT values, LAN addresses, Tailscale hostnames and real domains. The default install was never affected, which is why it went unnoticed for so long: localhost:3000 happened to be in the allowlist.

If you cannot upgrade immediately, set CORS_ORIGINS (and APP_URL) to the exact origin in your address bar — scheme, host and port. Full diagnosis, the one-command check, and the multi-origin Tailscale/LAN example are in Common Issues → Self-Hosted Appliance Issues.

Can I delete my account?

Yes. Settings → Account → Delete account permanently removes your data. The deletion is irreversible — there is no 30-day undo for account deletion (unlike subscription cancellation). Export first if you want a copy.

Does Glassy have a bug bounty?

Not yet. Report security issues to [email protected] and we'll respond within 48 hours. A formal bug bounty is on the post-beta roadmap.

Getting help

Where do I get help?

Where When to use it
docs.glassy.fyi You're reading it. Reference docs, deep dives, troubleshooting.
learn.glassy.fyi Video lessons and guided tours. Best for first-time setup.
In-app Help Center Searchable answers, context-aware of the screen you're on.
[email protected] Billing, account, anything not covered above.
GitHub Issues Bug reports and feature requests.

Is there a community?

Yes — a private Discord for the Clear membership, plus a public GitHub Discussions board for everything else. The Discord link lives in the footer of your Glassy dashboard.