Import and export
TabControl's storage is local and private by default. If you want a copy outside that — a backup, a transfer to another Mac, or a document you can share — use export.
Export everything as JSON
Section titled “Export everything as JSON”Settings → Import/Export → Export sessions
TabControl serializes every session (and optionally, everything in trash) into a single JSON file. Save it wherever you'd save any backup.
What's in the JSON
Section titled “What's in the JSON”Each session includes the fields you'd expect, plus the full tab snapshot:
{ "exportedAt": "2026-04-24T15:30:00Z", "version": 5, "sessions": [ { "id": "4a7f9b2e-...", "name": "Q2 research — long-tail SEO", "capturedAt": "2026-04-10T14:22:11Z", "tabCount": 24, "windowCount": 2, "isLocked": false, "displayOrder": 3, "category": "Research", "snapshot": { "windows": [ { "focused": true, "incognito": false, "isPrivate": false, "tabs": [ { "title": "How Google ranks long-tail keywords in 2026", "url": "https://example.com/article", "pinned": false, "active": true, "discarded": false, "muted": false, "index": 0 } ] } ] } } ]}The export is plain UTF-8 JSON. Any editor can open it. Any script can parse it.
Export a single session as Markdown
Section titled “Export a single session as Markdown”Right-click a session in the popup → Copy as Markdown. TabControl puts a formatted list on your clipboard:
# Q2 research — long-tail SEO
_24 tabs · 2 windows · captured Apr 10, 2026_
## Window 1- [How Google ranks long-tail keywords in 2026](https://example.com/article)- [SEO trends — 2026 benchmarks](https://example.com/benchmarks)...Perfect for pasting into a doc, a shared note, or a meeting agenda.
Import a JSON export
Section titled “Import a JSON export”Settings → Import/Export → Import sessions
Pick the JSON file you exported. TabControl validates the schema, then merges the sessions into your existing list.
What happens on merge
Section titled “What happens on merge”- New sessions — added.
- Existing sessions with the same ID — skipped. TabControl doesn't overwrite sessions by default.
- Invalid sessions — skipped with a warning shown at the end of the import.
If iCloud sync is on, imported sessions are pushed to iCloud on the next sync cycle, so they'll appear on your other Macs too.
Import from other extensions
Section titled “Import from other extensions”TabControl can import from a couple of popular tab manager exports:
- OneTab (text list of URLs) — Settings → Import/Export → Import from OneTab, paste the exported text.
- Session Buddy (JSON) — use Import sessions with the Session Buddy JSON file. TabControl will map fields it recognizes and skip the rest.
Migration is covered in more detail on the Migration page on the site.
Headless backups
Section titled “Headless backups”You can back up the entire database file directly if you prefer. It's a single SQLite file inside the App Group container:
~/Library/Group Containers/group.com.marsolab.TabControl/Copy the sessions.sqlite file from there (while TabControl isn't actively writing to it — easiest just after a restart). To restore, quit TabControl, drop the file back in, and relaunch. This bypasses the JSON format entirely and is the fastest way to replicate a full state.
- Tab suspend — how it works — the other half of TabControl: freeing memory without closing tabs.