Arc Is Shutting Down. I Took Its Sidebar and Moved It to Chrome
On December 22, 2026, Arc stops launching. Not "stops getting updates" — stops working. The Browser Company announced it on October 22 and pointed everyone to Dia, its AI browser.
I didn't need AI from Arc. I needed the sidebar: Spaces, each with its own folders and pinned tabs, and every bookmark opening in its own tab instead of spawning the tenth copy of Jira. Over a few years I'd built up 10 Spaces and 834 pinned tabs. Chrome bookmarks didn't change at all in that time.
In one evening I built an extension that brings that sidebar back to Chrome. The code is open: github.com/kirsantov/spacessidebar. Below: what turned out to be easy, what didn't, and where the extension hits the browser's wall.
The panel: Chrome already has it
No separate window, no content-script hack. Chrome has the Side Panel API: the extension declares side_panel.default_path in its manifest, and a regular HTML page lives next to any tab. That's how wallet and translator side panels work.
Inside is a page with no build step and no framework: one JS file holding the state, a folder tree, drag-and-drop. State lives in chrome.storage.local; nothing leaves the machine.
A bookmark that remembers its tab
The main difference between an Arc pinned tab and a bookmark is that it doesn't open a new tab every time. First click opens the page, the next click takes you back to the same tab.
That's a table of "bookmark → tab id". On click: if the bookmark's tab is alive, switch to it; if not, look for a tab in the window with the same URL; if none, open a new one and remember it. The table lives in chrome.storage.session and dies with the browser session, because tab ids are different after a restart.
That's the first honest limitation: after a restart, a bookmark recognizes its tab only by an exact URL match. Arc owned its tabs and could keep them as long as it liked. An extension doesn't own tabs; it only watches them through chrome.tabs.
Spaces on top of someone else's tab strip
The second wall: an extension can't hide Chrome's tab strip. In Arc, switching Spaces swapped the whole set of tabs. Here the panel switches, and up top it's the same forty tabs.
The workaround turned out to be tab groups. In "tabs by Spaces" mode, each Space gets its own group, named and colored like the Space. Switch Spaces — that Space's group expands, the others collapse. Click a tab from another group — the panel moves to its Space. Drag a tab into a different group by hand — the extension treats it as moved. It's not Arc, but the tab strip stops being a dump.
The mode is off by default: an extension that reshuffles my tabs into groups without asking is one I'd uninstall myself.
Import: the format is simple, getting to the file isn't
Arc stores the sidebar in a single file, StorableSidebar.json, in ~/Library/Application Support/Arc. The format is quirky but readable:
sidebar.containersis an array; the container you want is the one that hasspacesanditems;spacesanditemsare flat arrays where id strings alternate with objects;- a Space's
newContainerIDsholds a pair — thepinnedmarker, then a container id — which is the root of its pinned tabs; - from there it's a plain tree via
childrenIds: a tab hassavedURLandsavedTitleindata.tab, a folder hasdata.list.
My file is 4.6 MB and 2,136 items. Parsing it takes under a hundred lines.
The hard part is elsewhere. An extension from the store can't read a file by path: sandbox. A native messaging host would mean "please install another program," which is too much for a one-time import. So one manual step remains: drag the file onto the panel. The empty panel shows the path and an open -R command that highlights the file in Finder. Arc users are mostly developers; one terminal command won't stop them.
What went wrong
Two things, both mine.
The first version of import didn't work for me, and the extension said nothing. The parser wasn't the problem: on the same file outside the browser it ran fine. I had tested the logic against a Chrome API stub, not in Chrome. Since then, import is tested in a real browser on a real file, every error is shown on screen, and if the format isn't recognized the extension hands over diagnostics — the file's structure only, no URLs or titles.
The second was icons. Space icons in Arc are names like star or construction, and the first version replaced them with emoji. I can't stand emoji. Now there's a set of line SVG icons, and Arc's names map onto it.
What's not there
- Sync across devices. There's JSON export and import.
- Unpinned tabs from Today and Arc themes: I deliberately didn't carry them over.
- Split View: those tabs come over as regular bookmarks.
Bottom line
Arc showed that a browser can be used differently. But a sidebar of bookmarks isn't the thing you need a separate browser for. It fits into an extension of about a thousand lines with zero dependencies.
If you're moving off Arc before December 22 too — copy StorableSidebar.json now, while Arc still launches: checking the import is easier with the original open next to it.