An off or stolen drive — the data on disk is unreadable without your password.
A browser for synthesis — for people who keep many pages open because they're building something out of them.
Hit a bug or want a feature? Share feedback →
A live walkthrough of the interface — switch workspaces, pick pages, open the AI panel from the spark button.
Ply is a real Chromium browser — every site renders exactly as it does in Chrome — wrapped in an interface designed for people who research, write, and build using dozens of pages at once. Instead of one ever-growing tab strip, your pages live inside workspaces, your saved material collects in a searchable library called Stuff, and you draw it together in a writing surface called Canvas.
Everything stays on your device. No account, no cloud, no telemetry — Ply makes no network connection you didn't initiate.
Ply is a desktop application for macOS and Windows. It is not trying to be a casual phone browser or a lightweight tab-flipper — it's built for sustained work in a window you keep open all day. If your browsing is mostly one page at a time, Ply isn't aimed at you; if you routinely have twenty pages open across three different things you're working on, it is.
The left rail holds your workspaces — one per project. Click a workspace and its pages appear as a vertical list, grouped Pinned · Today · Yesterday · Older. Because the list scrolls, it keeps working at forty pages where a horizontal tab strip falls apart at twelve. Pin the pages you always want at the top; drag any page to another workspace to move it.
A background page untouched for your chosen interval (default 10 minutes, set in Settings ▸ Behavior) goes to sleep: its tab is fully unloaded so it stops using memory, CPU, audio, and network. Click it and it reloads. The active page in every workspace stays awake, so switching projects never loses your place.
The Session panel at the bottom of the rail shows live memory use and how many pages are open, awake, and asleep. Asleep pages are a good thing here — they're the ones giving your memory back.
Give any workspace its own isolated cookie & login jar (its settings panel). Sign in to the same site with two different accounts side by side — work and personal — fully separated. A container wears a colored ring so you always know which is which; deleting it erases its jar.
Save a whole workspace — its Stuff, Canvas, snips, and a copy of your display settings — to one portable file, and import it on another machine as a new workspace. Import only ever brings display preferences; it can never change your privacy or security settings.
Switching pages never reloads them: scroll position, half-typed forms, and playing video stay exactly as you left them. Pinned pages are exempt from sleep. Your whole session is restored on the next launch — Ply has no concept of losing your tabs on quit.
Press ⌘K for the command bar. It's one input that does everything: type a URL to navigate, a search term to search the web, or any text to search across your open pages, your whole history, your saved Stuff (including the text inside highlights, notes, and snip captions), and your canvases. Pick a result and Ply takes you straight there.
⌘K · navigate, search the web, or search everything you've kept
A most-recently-used list of pages across every workspace. Hold it down to flip back to what you were just looking at, wherever it lives.
The address bar belongs to the page in front of you, not the whole window. Focus it with ⌘L. It only ever produces an http/https navigation — anything else falls back to a search.
Stuff is Ply's library, organised as a table of contents rather than one long list. Each kind of thing you save gets its own section with a running count:
ext badge so you can see where they came from.Alongside Stuff, the rail gives you full History and Downloads views — searchable, with bulk select and clear-on-quit options if you want them.
Each workspace has a Canvas: a proper rich-text editor where you write up what you've found. You see your formatting as you type — headings, bold and italic, lists, quotes, links, dividers. Drag a highlight or a snip from Stuff straight onto the Canvas and it drops in as an attributed blockquote with a backlink to the source, so the path from your write-up back to the original page stays live. Select several saved items and Ply scaffolds a starter document — a heading per source, a bullet per item. Export any canvas to Markdown or PDF.
Select text and highlight it; the quote is saved to Stuff and re-applied to the page every time you return — even if the markup shifted, Ply re-locates the passage by its surrounding text. A highlight's backlink jumps the source page straight to the exact spot.
Jot a thought about whatever you're reading from the toolbar. It's saved to Stuff, tied to that page, and shows up in the page's backlinks panel and your Canvas.
Strip a page to clean prose. Runs entirely on-device — nothing is fetched — and highlighting from the clean view captures tidier quotes.
Put two live pages side by side in the same workspace. Drag the divider to set the ratio; each pane keeps its own page without remounting when you focus the other.
Every page also has a backlinks panel that gathers your highlights and notes for that page in one place, where you can edit a highlight's margin note inline.
Ply has no built-in AI service and sends nothing to one. AI is off until you turn it on in Settings ▸ AI, where you point Ply at a model you control — a local server like Ollama, LM Studio, or vLLM, or an OpenAI-compatible or Anthropic endpoint with your own key. Plain http is allowed only for local hosts; remote endpoints must be https.
Once enabled, the spark button in the toolbar opens the AI panel with three jobs:
Ask across your open pages. Sends the titles, URLs, and workspace names of your open tabs to your model — nothing more.
Summarise the current page. Sends that one page's text, title, and URL. Keep the result and it files under AI summaries in Stuff.
Searches your own history, notes, highlights, links, and Canvas on this device. You can then ask your model about the results — and only the snippets you surfaced are ever sent, never your whole library.
⛉ The library is always searched locally — AI only ever receives the specific text you choose to send, and never without a click.
This is the one rule that governs AI in Ply: it is invoked, scoped, and explicit. There is no ambient sidebar, no auto-summary above articles, no suggestions you didn't ask for.
Click the shield in the address bar for a per-site panel where every protection is a one-line row you can expand for details and exceptions. The defaults do the work; the controls are there for the sites that break.
Blocks ad and tracker network requests using EasyList + EasyPrivacy, and hides on-page ad slots so you don't get blank gaps. Refreshed lists; Settings ▸ About flags them if they ever go stale.
Third-party cookies blocked by default. Container workspaces add full per-workspace cookie isolation on top.
Canvas, audio, WebGL, and WebGPU readouts are randomised so you don't present a stable fingerprint. An opt-in strict mode shows every site one uniform en-US identity to blend you in with other Ply users.
Ply skips AMP wrappers (loading the publisher's own page) and strips link-tracking redirectors from Facebook, Reddit, Google, YouTube, and Steam so a middleman doesn't log the click.
Spots common dark patterns and defuses them: greys out guilt-trip decline buttons (still clickable) and fake countdown timers, and flags sign-up boxes that were pre-checked for you.
Camera, microphone, location, and the rest are asked for once per site in plain language, then remembered for the session — no repeat pestering on every page.
Turn on encryption in Settings ▸ Encryption (off by default) and your workspaces, history, Stuff, notes, links, Canvas, and snip images are stored encrypted on this device — so they can't be read from a powered-off or stolen drive. You can optionally unlock automatically with your system keychain.
An off or stolen drive — the data on disk is unreadable without your password.
A computer that's already on and unlocked. Pair it with full-disk encryption (FileVault / BitLocker) for complete coverage. A forgotten password can't be recovered.
Sync in Ply has no account and no cloud. Pair two devices once by confirming a 6-digit code on both screens; after that, a paired device can pull updates with a click, and you review exactly what will be added before anything lands. Pairing and the transfer are end-to-end encrypted and never leave your local network.
This version syncs your history and your notes, highlights, and links. Snip images, Canvas documents, and workspaces aren't synced yet. Sync is off by default — open the Devices · sync tab in the sidebar to set it up, where you can also fix a specific port or pull from a specific address if your network reassigns one.
Install any extension from a folder via Stuff ▸ Extensions; each runs in a locked-down sandbox. Extensions can request network access only to specific declared domains, shown in the Extensions list — everything else stays blocked. Some extensions are openable as mini-apps with the Open button, and anything an extension saves to your library is labelled with an ext badge.
Ply does not ship a marketplace or bundled demo extensions. The model is: you bring what you trust, Ply sandboxes it.
Light, dark, or auto to match your system. Dark is a true black that looks right on OLED.
Warm orange, amber, clay, moss, slate, or plum. The Ply mark in the sidebar takes on your accent.
Compact, comfortable, or spacious — scales the address bar and the spacing between split panes too.
Click any shortcut in Settings ▸ Shortcuts and press the keys you want. Conflicts are flagged; reset any one, or all, to default.
Shown for macOS. On Windows, ⌘ is Ctrl.
| Command bar | ⌘K |
| Focus address bar | ⌘L |
| Quick switcher | ⌘E |
| New page | ⌘T |
| Close current page | ⌘W |
| Reopen closed page | ⌘⇧T |
| Find in page | ⌘F |
| Highlight selection to Stuff | ⌘⇧H |
| Reader mode | ⌘⇧R |
| Note on this page | ⌘⇧N |
| Reload page | ⌘R |
| Open settings | ⌘, |
.dmg (arm64 + x64), signed with a Developer ID and notarized by Apple. Drag Ply to Applications — no Gatekeeper workaround needed. Download (Apple Silicon).npm install then npm start — esbuild precompiles the renderer, then Electron launches.Stuff library · AI panel · Privacy shield · Device sync