Open-source project
V-IOLE-T/tab-harbor avatar
V-IOLE-T/tab-harbor

Tab Harbor turns the Chrome new tab into a workspace for tabs, sessions and todos

一个更安静的新标签页工作台,把打开中的标签、快捷链接、待读和轻量待办收进同一个顺手的空间里。

647 stars30 forksJavaScriptMIT

At a glance

What is it?
Tab Harbor is a Manifest V3 Chrome extension that groups open tabs by domain, keeps saved sessions and quick links, and holds a small todo list, with everything in chrome.storage.local and no backend. It suits people whose browser has become the place where their work actually happens.
Who is it for?
Adopt Tab Harbor if you want your new tab page to show the work you already have open rather than a search box, and if you are comfortable loading a Manifest V3 extension unpacked. Do not adopt it expecting sync or multi device access, because there is no backend and no account, and do not install it from the store if your organisation restricts extensions.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 45 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The new tab page shows your open tabs, not a wallpaper

Tab Harbor describes itself as a calmer Chrome new tab dashboard for open tabs, quick links, saved sessions and lightweight todos, and the pitch is that you immediately see what is already open, what should be saved for later, and what still needs your attention. That is a different starting point from the usual one. Most new tab pages are a search box, a wallpaper or a speed dial, and the project says so directly, positioning itself as closer to a lightweight browser control room. The reasoning behind that framing is also stated. It keeps the messy reality of browsing visible, but turns it into something calmer and more actionable. The audience is not everyone, and the project is clear about who it is for. It is for people who treat the browser as the main workspace, where the number of open tabs is a working state rather than a symptom, and who want that state to be legible at a glance instead of hidden behind a list of tabs you have to scan.

Domain grouping is automatic, manual grouping is the override

The organising mechanism has two layers, and the automatic one runs first. Tabs are automatically organized by domain, and homepage-style tabs are moved into a dedicated Homepages group, so the point of the page is quickly seeing what you are actually working on rather than a flat list of sites. On top of that, you can organize things around your own workflow, creating manual groups, keeping common quick links around, and jumping back to the right section from the top icon rail. There is also a cleanup affordance, since you can remove duplicate tabs with one click. The design decision here is that the automatic grouping never fights the manual one. A tool that silently regrouped your tabs would be hostile, so the automatic pass is a starting arrangement, and the manual groups are where you put things that the domain heuristic cannot know about. That is also why the top icon rail exists, since a rail of sections is a much cheaper way to move around a large set of groups than scrolling.

Saved tabs behave like sessions rather than a bookmark list

The saved tabs feature is the part that goes furthest beyond a new tab page. Pages you do not need right now can be saved as sessions, added to an existing session, restored later, or kept collapsed for a quieter overview. The framing in the project documentation is that saved tabs now behave more like sessions, which is a useful distinction. A bookmark is a permanent address to a document. A session is a temporary set of pages that made sense together at one moment, and the ability to add a tab to an existing session, to restore a whole group, and to collapse the group when it is not needed, is a workflow rather than a storage list. The collapse behaviour is worth noting because it is what keeps the overview quiet. Without it, a session that has been saved a few times accumulates into a wall of entries, and the page stops being calm. The trade-off is that the state lives on your machine only, so a session is not a backup, it is a convenience you can rebuild by hand if the machine is lost.

The search field is the fast path, and it reads your open tabs

The search behaviour is where the tool earns its place in a real working day. The search field focuses itself whenever the Tab Harbor tab comes to the front, so the sequence of new tab, type, Enter needs no click at all. Once you start typing, inline suggestions appear drawn from open tabs, quick links, saved sessions and your recent history. Picking an open tab switches to it, with Ctrl or Cmd-click opening a duplicate in a new tab instead, and picking any other suggestion opens it in a new tab. Keyboard arrows, Enter and Escape all work as you would expect, and the panel stays quiet until you type. There is a second search engine option, separate from this one. In Desk settings under Features you can choose the search engine for the search bar, with browser default, Google, Bing, Baidu, Sogou, DuckDuckGo, Brave, Yandex or a custom URL available. So the page has two search behaviours layered on top of each other, one that searches the web and one that searches what you have already opened, and it is the second that no generic new tab page can offer.

Everything is stored locally, and the extension needs tab access

The data model is the simplest part of the design and also the one with the most consequences. Tab Harbor runs entirely inside the extension. Open tabs come directly from Chrome, and saved sessions, todos, quick links, theme preferences and layout state stay on your machine through chrome.storage.local. There is no backend, no sync account and no extra application to open. The privacy statement in the documentation puts it plainly: if you publish this repository for other people, they get the code and assets, not your personal browsing data. The important qualification is that this is a local storage story, not a no data story. An extension that shows your open tabs needs the tabs permission, and an extension that groups them by domain needs to read their URLs. The repository carries a PRIVACY.md and a privacy.html at the top level alongside the extension/ directory, the manifest.json, the dist/ directory and the docs/, which suggests the project is explicit about what it collects. Anyone deploying this inside an organisation should read those files and check the manifest permissions against what their policy allows, because a new tab page extension by definition has visibility into every site you visit.

Installing it unpacked avoids the store review delay

Three installation routes are documented, and they differ in how much friction you take on. The first is the Chrome Web Store, where you open the Tab Harbor listing, install it, and open a new tab, with a note that because of package review the actual version may appear a little later. The second is to hand the repository to a coding agent and ask it to install the extension. The third is manual, and it is the one that says the most about the project. You clone the repository:

bash
   git clone https://github.com/V-IOLE-T/tab-harbor.git

Then you open chrome://extensions, turn on Developer mode, click Load unpacked, and select the extension/ folder in Chrome, or the repo root in Edge, before opening a new tab. The Edge variant is a small detail that suggests the project has been tried there. The manual route is also the one that tells you what kind of project this is. The documentation describes it as a Manifest V3 Chrome extension with a plain frontend stack and no build step required to use it, and says you can clone it, load it and start using it without npm, without a dev server, and without standing up anything else. That is a genuinely unusual property for an extension in 2026, and it is what makes the project pleasant to fork.

Where a new tab page extension is the wrong answer

The boundary here is simple to state. If your browsing spans several devices and you want your sessions and todos to follow you, this is the wrong tool, because there is no backend and no sync account, and that is a deliberate choice rather than a missing feature. If your organisation restricts what you can install in Chrome, the Web Store route is a normal extension and the manual route is a developer mode load, and both may be blocked. And if your actual problem is that you have too many tabs because you have not closed anything, no new tab page fixes that, because the tool shows the mess rather than removing it. The alternative approaches differ in kind. A speed dial or bookmark manager optimises for getting back to a known address, and Tab Harbor optimises for making the current, messy set of tabs legible. A session restore feature built into the browser optimises for restoring a saved window, while Tab Harbor treats a session as a list you can add to, restore from, and collapse, with todos layered on top so that a session carries a task attached to it. If you want the browser to remember where you were, use the browser. If you want to see what you have open and what it is for, this fits.

Editorial conclusion

Adopt Tab Harbor if you want your new tab page to show the work you already have open rather than a search box, and if you are comfortable loading a Manifest V3 extension unpacked. Do not adopt it expecting sync or multi device access, because there is no backend and no account, and do not install it from the store if your organisation restricts extensions. Before you rely on it, load it unpacked from a clone, confirm that the Chrome permissions it requests match what you expect, and read PRIVACY.md, since your saved sessions and todos are stored locally but the extension does read your open tabs.

Frequently asked questions

What is Tab Harbor?

It is a Manifest V3 Chrome extension that replaces the new tab page with a dashboard for open tabs, quick links, saved sessions and lightweight todos. Tabs are grouped automatically by domain, with homepage-style tabs moved into a dedicated Homepages group, and you can add manual groups on top.

Where does Tab Harbor store my data?

Everything stays on your machine in chrome.storage.local. There is no backend, no sync account and no extra application, so saved sessions, todos, quick links, theme preferences and layout state never leave the browser.

How do I install Tab Harbor without the Chrome Web Store?

Clone the repository, open chrome://extensions, turn on Developer mode, click Load unpacked, and select the extension/ folder in Chrome or the repo root in Edge. The project is a Manifest V3 extension with no build step required, so no npm install or dev server is needed.

What are the saved sessions in Tab Harbor for?

They are temporary sets of pages that made sense together, rather than permanent bookmarks. You can save pages as a session, add tabs to an existing session, restore them later, and keep a session collapsed so it does not clutter the overview when you do not need every tab in front of you.

Can Tab Harbor search my open tabs?

Yes. The search field focuses itself when the Tab Harbor tab comes to the front, and inline suggestions are drawn from open tabs, quick links, saved sessions and recent history. Choosing an open tab switches to it, with Ctrl or Cmd-click opening a duplicate instead. The web search engine for the search bar is a separate setting under Desk settings, offering browser default, Google, Bing, Baidu, Sogou, DuckDuckGo, Brave, Yandex or a custom URL.

Official sources

  1. Issues
  2. License: MIT
  3. README
  4. Releases
  5. V-IOLE-T/tab-harbor on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/v-iole-t-tab-harbor.svg)](https://hysenlabs.com/projects/v-iole-t-tab-harbor)

Was this useful?