Tiling desktop browser
Your logged-in apps,
side by side.
Splitser tiles real Chromium views in one window. Every pane is a whole browser -- its own history, its own zoom, its own find -- and every site it loads is a first-party tab, not an iframe borrowing cookies that are about to disappear.
Free and local. No installer yet -- it builds from source in two commands.
The tiling UI had to become a browser
This started as the Split Screen browser extension, and that extension works -- it tiles sites today. But an extension can only ever put other people's pages in an iframe, and that comes with four problems it can't engineer its way out of.
It only works by rewriting the web
To put a site in an iframe at all, the extension has to intercept traffic and strip the headers -- X-Frame-Options and CSP frame-ancestors -- that the site set to say no.
Nothing gets rewritten. A pane is a top-level Chromium view, so a site loads exactly the way it loads in any other browser, headers and all.
And some sites say no in JavaScript
A page that checks top !== self blanks itself or escapes the frame regardless of which headers you stripped. There's no rule you can write to stop it.
There is no frame to bust out of. Those pages just work.
And the hack has a deadline
A framed site is a third-party context, so a framed login leans on third-party cookies -- which every browser is in the middle of killing. When they go, embedded logged-in apps go with them.
Panes are first-party. Your logins are ordinary first-party cookies, so nothing about that deprecation touches them.
And it can never fill your password
An extension tiling other people's sites has no way to autofill a login into them. Not "not yet" -- structurally cannot.
This can. The built-in vault fills the matching login straight into a pane. It is the cleanest reason the tiling UI had to become a browser.
What it does today
Everything on this page is built and working. What isn't built is listed just as plainly.
Panes that are really browsers
Each pane carries its own toolbar -- back, forward, reload, favicon, address bar, bookmark star, split, close -- and its own navigation history. Not a viewport onto one page. A browser.
Drag to resize
Panes lay out as resizable columns. Grab the gutter between two of them and drag. Add a pane with the + or Ctrl+T, close it with the × or Ctrl+W.
Links open as panes
A target=_blank link or a window.open popup opens a new pane beside the one you clicked from -- not a new OS window stacked on top of your work.
Real find in page
Ctrl+F runs Chromium's native find: actual highlighting, an actual match count, next and previous. Not a script crawling the DOM and guessing.
Shortcuts that fire anyway
Keyboard shortcuts reach the shell even while a page has focus -- they're forwarded from the main process, so a page can't swallow them.
Per-pane zoom and mute
Ctrl+= / − / 0 zooms one pane without touching the others. Ctrl+M mutes it, and any pane making noise grows a speaker button.
An address bar that remembers
Type, and matches from your own browsing history drop down -- arrow keys and Enter to pick. Ranked by how often you actually go there.
Bookmarks and downloads
Star a page with Ctrl+D and reopen it from the ★ panel. Downloads land in your OS Downloads folder, with a ↓ panel tracking progress.
Session restore
Close it with six panes open, reopen it to the same six panes. On a fresh install it starts you with GitHub next to your Stripe dashboard.
Permission prompts that mean it
Camera, microphone, geolocation and notifications raise a real allow/deny dialog. The harmless permissions are granted quietly instead of nagging you.
Settings, and your data stays put
Set your home page and search engine; clear history, bookmarks or session. Everything lives in plain files on your machine.
No server, no account, no telemetry
There is no backend to sign in to and nothing phones home. The app has no network dependency of its own -- only the sites you point it at.
Keys that reach the shell
Shortcuts are forwarded from the main process, so they fire even while a page has focus. A page can't eat your Ctrl+T.
- Ctrl+T Split -- new pane
- Ctrl+W Close pane
- Ctrl+L Focus the address bar
- Ctrl+R Reload the pane
- Ctrl+F Find in page
- Ctrl+D Bookmark the page
- Ctrl+K Open the vault
- Ctrl+M Mute the pane
- Ctrl+= Zoom in
- Ctrl+− Zoom out
- Ctrl+0 Reset zoom
The one an extension can't have
A password vault that actually fills the box
Because panes are real top-level views, Splitser can put your login into the page. Press Ctrl+K.
- Your master password and the key it derives are never stored -- not hashed, not kept. Only ciphertext is written to disk, as
vault.enc. - A wrong master password fails the GCM authentication tag on decrypt. That is the check -- there is no password hash sitting on disk to attack.
- The derived key exists only in the isolated interface process while the vault is unlocked -- never inside a web page, never in the main process. Main is a dumb ciphertext store.
- Idle auto-lock after 15 minutes. Copying a password auto-clears your clipboard about 25 seconds later.
- Autofill puts the matching login into a pane, with a chooser when more than one matches. Capture a login from the page you are on, generate a new one, or import a CSV out of your old browser.
The interface is sandboxed
contextIsolation: true, nodeIntegration: false, sandbox: true. The UI reaches the main process only through a narrow preload bridge.
Every pane is treated as hostile
Web content gets no privileged bridge and no reach into the shell. It is the open web, and it is handled like the open web.
Your data is local files
History, bookmarks, session and settings are plain JSON in the app data directory, alongside the encrypted vault. Yours to read, back up, or delete.
What it needs from your machine
electron. No native modules, so nothing compiles per platform~/.config/splitser · ~/Library/Application Support/splitser · %APPDATA%\splitserThere's no installer yet.
No packaged build, no code signing, no auto-update -- that work hasn't happened, so this page isn't going to hand you a download button. What it will hand you is two commands that genuinely work right now.
Build and run it