NiceTab, an open source tab manager that replaces OneTab and Toby
浏览器插件:OneTab、Toby、N-Tab、SessionBuddy、KepTab 等扩展的升级替代品,功能丰富易用 | A nice, convenient, powerful tab manager serving as an upgraded alternative to OneTab, Toby, SessionBuddy, N-Tab,KepTab...
At a glance
- What is it?
- web-dahuyou/NiceTab is a React and TypeScript browser extension that parks tabs into categories and groups, imports from other managers, hibernates inactive tabs and syncs through Gists or WebDAV. It ships on the Chrome, Edge and Firefox stores under GPL-3.0, and the sync design carries its own caveats around tokens and deleted items.
- Who is it for?
- Adopt NiceTab if you use a Chromium or Firefox browser, want your tab list stored locally rather than in a proprietary account, and need import from OneTab, Toby, SessionBuddy or KepTab to move across. Do not adopt it if you rely on a sync provider that silently prunes deleted items, because the README states a merging push does not diff and delete, so removals have to be made locally and pushed manually.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 4 days ago.
- What is it written in?
- Mainly TypeScript, 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
What NiceTab does with the tabs you are not looking at
NiceTab is an open source browser extension for managing browser tabs, and the README frames it as an upgraded alternative to existing managers such as OneTab, Toby, SessionBuddy, N-Tab and KepTab. It supports Chrome, Firefox, Microsoft Edge and any Chromium based browser, and the homepage is a Chrome Web Store listing.
The core action is sending tabs into the extension. The README lists the selections available in one click: all tabs, all tabs across all windows, the current tab group, current tabs, other tabs, and the tabs on the left or right side of the strip. That granularity is the difference from the simpler managers that only offer a single dump-everything button.
From there the data model has three levels. Categories hold tab groups, tab groups hold tabs, and every level can be created, renamed, reordered by drag and drop, sorted, starred, locked, searched and edited. Locking is the small feature that turns out to matter: a locked category resists accidental operations, which is the safeguard you want on the group holding your work.
Native browser tab groups can be imported into NiceTab and re-opened as native groups, so the extension does not insist on being the only way you look at groups. Tabs also support manual hibernation, which removes them from memory while keeping them visible on the strip, and they reload when you activate them.
The extension also sets a custom new tab page, keeps a recycle bin for deleted tabs, groups and categories, and offers a light and dark theme switch plus a set of preset theme colours.
How the extension is built and how the UI is assembled
NiceTab is written in TypeScript with React on top of the wxt framework, which the README notes provides built-in templates for Vanilla, Vue, React, Svelte and Solid. The interface uses Ant Design, and the package.json pins antd at 5.23.4 with react 18.3.1 and react-dom at the same version.
The interesting dependencies reveal the feature set. Atlaskit pragmatic-drag-and-drop provides the drag and drop behaviour for reordering categories, groups and tabs, along with a hitbox and a React drop indicator package. react-intl handles the multilingual support, currently Chinese, English and Russian, with dayjs for date handling. rc-virtual-list suggests long tab lists are rendered virtually rather than as full DOM trees, hotkeys-js covers the keyboard shortcuts, and mitt is a small event emitter used for cross-component messaging. There is a compare-versions package, which is consistent with the extension checking its own version against the store listing.
The build is driven by wxt, with scripts for a dev mode, a Firefox mode, a build, and a zip step for each. Two steps in the scripts list are worth noting because they are not standard. The postinstall hook runs wxt prepare, and a convert:guide step runs a script called scripts/md2html.js over the Chinese user guide, which is how the in-extension guide is generated from Markdown. There is also a compile script using tsc with noEmit, a test script running vitest, and an eslint configuration over the entrypoints directory.
The repository is a pnpm project with a lock file, and the package.json records the runtime it expects:
"version": "3.0.5"It also carries separate README, GUIDE, ARCHITECTURE and CONTRIBUTING files in English, Chinese and Russian, along with a privacy.html page.
Sync through Gists or WebDAV, and the deletion caveat
Remote sync is the feature with the most moving parts, and the README is unusually specific about a weakness in it.
Two transports are supported. Gists sync sends your data to GitHub or Gitee using a personal access token, and the README notes that the token permissions are checked only against the gists scope, so a token with more access than the feature needs still works. WebDAV sync points at a WebDAV service with a URL, username and password, and multiple WebDAV accounts are supported.
Both transports sync the tab list and the preferences. Auto sync is available, with the frequency and the method configurable.
The caveat is a merge behaviour that can surprise you. The README states that a merging push does not perform a diff-comparison delete. In other words, the merge combines the remote and local data and pushes the result back, so an item deleted on one side is not removed on the other. To get a deletion through, you have to remove the item locally and then manually overwrite the remote.
That is a real design limitation rather than a bug, since the same kind of behaviour appears in the Gist-based sync approaches used by other extensions. It does mean the sync is not a mirror, and if you rely on deletions to stay deleted across two machines, you need to check that behaviour before you trust it.
The Gists route also has a privacy dimension worth naming plainly. Your tab list contains browsing history in the form of URLs and titles, and sending it to a third-party code hosting service stores it there under an account you control but not on infrastructure you control. WebDAV to a server you run yourself keeps that data inside your own boundary, at the cost of running a WebDAV endpoint.
Import, export and the limits of the Firefox build
Migration is the practical entry point for most people, and NiceTab supports import from several formats: its own, OneTab, Toby, SessionBuddy and KepTab. Import supports multiple formats with local file saving, and the list is described as extensible for formats that come up later.
There is a browser-level limitation that the README handles explicitly, and it is the kind of thing that only shows up once you install the extension. Firefox does not allow extensions to open privileged URLs, and the list includes chrome: URLs, javascript: URLs, data: URLs, file: URLs and Firefox's own privileged about: URLs such as about:config, about:addons and about:debugging. Non-privileged about: URLs such as about:blank are allowed.
The consequence is concrete: if a saved tab points at one of those URLs, opening it from NiceTab will not work, and the README tells you to copy the URL manually instead. That is a small annoyance for most users and a real one for administrators who keep a set of internal about pages bookmarked.
A second distribution detail affects upgrade timing. The Edge Add-ons listing may lag behind the Chrome Web Store version because of longer review times, so if you use Edge you may be a release or two behind what is on GitHub.
The release history shows active maintenance with a recent cadence: v3.0.3.2 on 2026-09-07, v3.0.4.1 on 2026-09-27 and v3.0.5 on 2026-10-18, with the last push on 2026-10-19. The version in package.json matches the latest release at 3.0.5.
How NiceTab compares with the managers it replaces
OneTab is the baseline in this category and the comparison is instructive. OneTab does one thing: it takes your tabs out of the strip and puts them in a list you can restore later. It is small, fast and has almost no configuration. NiceTab does the same thing and adds a data model with categories and groups, search, favourites, locking, hibernation, a recycle bin, import from several formats and a configurable new tab page.
The cost of those additions is interface complexity and a dependency set that is much larger. OneTab is a single page; NiceTab is a React application with virtual lists, drag and drop libraries and an internationalisation layer. If all you want is a parking space for tabs, OneTab's simplicity is genuinely hard to beat, and a tab manager that has settings you do not need is its own kind of clutter.
Toby and SessionBuddy sit in between, organising with folders and workspaces and adding session restore across restarts. KepTab is closer to OneTab with some extras. NiceTab's claim against all of them is openness plus breadth: the source is on GitHub under GPL-3.0, and the feature list covers import from each of them, so switching does not mean losing your history.
The licence is the decisive difference for anyone who was going to fork it. GPL-3.0 means a fork that ships must also be GPL-3.0, which is a real constraint for a product team. The MIT and Apache licences common among competing extensions are more permissive. For an individual user that difference is invisible; for anyone planning to build on it, it decides the question.
Editorial conclusion
Adopt NiceTab if you use a Chromium or Firefox browser, want your tab list stored locally rather than in a proprietary account, and need import from OneTab, Toby, SessionBuddy or KepTab to move across. Do not adopt it if you rely on a sync provider that silently prunes deleted items, because the README states a merging push does not diff and delete, so removals have to be made locally and pushed manually. Verify first by installing it from the Chrome Web Store, exporting your current tabs, and confirming that the import format matches before you delete anything from your old manager.
Frequently asked questions
What browsers does NiceTab support and where can I get it?
It is published on the Chrome Web Store, the Microsoft Edge Add-ons site and Firefox Browser Add-ons, and the README states it supports Chrome, Firefox, Microsoft Edge and any Chromium based browser. The Edge listing may lag behind Chrome because of longer review times.
Can I import my tabs from OneTab or Toby into NiceTab?
Yes. The README lists import support for NiceTab's own format, OneTab, Toby, SessionBuddy and KepTab, with multiple formats supported and local file saving available. The format list is described as open to additions.
How does NiceTab sync my data between browsers?
Two transports are supported: Gists sync through GitHub or Gitee with a personal access token checked against the gists scope, and WebDAV sync with a URL, username and password, allowing multiple accounts. Both cover the tab list and preferences, and automatic syncing with a configurable frequency is available.
What is the catch with NiceTab Gists sync and deleted items?
The README states that a merging push does not perform a diff-comparison delete. It merges remote and local data and pushes the result, so deletions are not propagated automatically and have to be removed locally and then manually overwritten on the remote.
Why do some saved tabs not open when I click them in NiceTab under Firefox?
Firefox does not let extensions open privileged URLs, which includes chrome:, javascript:, data: and file: URLs as well as privileged about: pages such as about:config and about:addons. Non-privileged about: URLs like about:blank are allowed, and for the blocked ones the README suggests copying the URL manually.
Official sources
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.
[](https://hysenlabs.com/projects/web-dahuyou-nicetab)Was this useful?