MCPcopy Index your code
hub / github.com/mbnuqw/sidebery

github.com/mbnuqw/sidebery @v5.5.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v5.5.2 ↗ · + Follow
1,697 symbols 3,083 edges 147 files 55 documented · 3% updated 15d agov5.5.2 · 2026-04-15★ 4,618826 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Sidebery

Firefox extension for managing tabs and bookmarks in sidebar.

screenshot-003screenshot-002screenshot-005screenshot-009screenshot-011

Mozilla Add-on Users Mozilla Add-on Downloads Mozilla Add-on Stars

Install

Stable (v5.5.0): Release page | Addon page | Install (reviewed by Mozilla)
Nightly (v5.5.0.3): Install

[!NOTE] Nightly release is a signed build created via github actions. It supports an auto-updates and is designed for testing new features. A few previous nightly releases can be found in the Assets section of the latest release notes.

If you're manually updating an already installed Sidebery version you also need to open the Add-ons Manager (about:addon) and click on the 'Update Now' button in the Sidebery card or restart the browser.

About

Sidebery is a highly configurable sidebar with panels of different types. Some of the key features:

  • Vertical tabs panels with tree or flat layout
  • Bookmarks panels
  • History panel
  • Search in panels
  • Customizable context menu
  • Customizable styles
  • Snapshots (saved windows/panels/tabs)
  • ...and more

Incompatibility with other addons

Sidebery may conflict with addons that handle position of new tabs (e.g. Tree Style Tabs) or addons that move/sort tabs, which may result in unexpected behavior or broken tabs state at initialization. To avoid potential issues, please, disable such addons in Add-ons Manager page (about:addons).

How to hide native tabs?

Option 1 (Activating native vertical tabs)

Enable native vertical tabs. This can be done in one of the following ways: - Right-click on the free space of the toolbar or tab-bar and click on the "Turn on Vertical Tabs". - Open about:config and enable these settings: sidebar.revamp, sidebar.verticalTabs.

Then resize the native sidebar (with the vertical tabs) to its minimum.

Optionally, you can round the corner of the web page area by enabling sidebar.revamp.round-content-area in about:config.

gui

This will save vertical space, but the native tabs will still be showed and Firefox's sidebar header will take some space from Sidebery.

You can also try to hide vertical native tabs and sidebar: Right-click on the free space of the native sidebar, then in the "Sidebar settings" section enable "Vertical tabs" and "Hide tabs and sidebar" settings, then open Sidebery. But due to a Firefox bug this setting might be ignored on the next browser start or on the opening a new window.

Option 2 (Using userChrome.css)

  • Learn how to comment/uncomment parts of your CSS.
  • Enable toolkit.legacyUserProfileCustomizations.stylesheets in about:config.
  • In 'Profile Directory' (Firefox Menu > Help > Troubleshooting Information > Profile Directory) create folder chrome with file userChrome.css.
  • Paste, edit (to your needs) and save this code in userChrome.css file:

```css /* * Hide sidebar-panel-header (sidebar.revamp: true) / #sidebar-panel-header { display: none; }

/ * Dynamic styles * * Choose when styles below will be activated (comment/uncomment line) * - When Sidebery set title preface "." * - When Sidebery sidebar is active / #main-window[titlepreface="."] { / #main-window:has(#sidebar-box[sidebarcommand="3c078156-979c-498b-8990-85f7987dd929-sidebar-action"][checked="true"]) { */

/* Hide horizontal native tabs toolbar */
#TabsToolbar > * {
  display: none !important;
}

/* Hide top window border */
#nav-bar {
  border-color: transparent !important;
}

/* Hide new Firefox sidebar, restyle addon's sidebar */
#sidebar-main, #sidebar-launcher-splitter {
  display: none !important;
}
#sidebar-box {
  padding: 0 !important;
}
#sidebar-box #sidebar {
  box-shadow: none !important;
  border: none !important;
  outline: none !important;
  border-radius: 0 !important;
}
#sidebar-splitter {
  --splitter-width: 3px !important;
  min-width: var(--splitter-width) !important;
  width: var(--splitter-width) !important;
  padding: 0 !important;
  margin: 0 calc(-1*var(--splitter-width) + 1px) 0 0 !important;
  border: 0 !important;
  opacity: 0 !important;
}

/* Update background color of the #browser area (it's visible near the
rounded corner of the web page) so it blends with sidebery color with 
vertical nav-bar. */
/* #browser {
  background-color: var(--lwt-accent-color) !important;
  background-image: none !important;
} */

/* Hide sidebar header (sidebar.revamp: false) */
#sidebar-header {
  display: none !important;
}

/* Uncomment the block below to show window buttons in Firefox nav-bar 
(maybe, I didn't test it on non-linux-tiled-wm env) */
/* #nav-bar > .titlebar-buttonbox-container,
#nav-bar > .titlebar-buttonbox-container > .titlebar-buttonbox {
  display: flex !important;
} */

/* Uncomment one of the lines below if you need space near window buttons */
/* #nav-bar > .titlebar-spacer[type="pre-tabs"] { display: flex !important; } */
/* #nav-bar > .titlebar-spacer[type="post-tabs"] { display: flex !important; } */

} ```

  • Restart the browser
  • Optionally, try to turn on/off native vertical tabs to know how it changes the color of the browser toolbar.

Result:

111

  • Optionally, add some bells and whistles (add to Sidebery styles editor):

Rounded corner for vertical nav bar

```css / Do not apply the border from Firefox theme / .Notifications + .main-box .central-box { height: calc(100% - var(--general-margin)); margin-top: var(--general-margin); } .NavigationBar { box-shadow: none; } .NavigationBar.-vert { padding: var(--nav-btn-margin) 0 0 } #root[data-pinned-tabs-position="left"]:not([data-nav-layout="horizontal"]) .PinnedTabsBar, #root[data-pinned-tabs-position="right"]:not([data-nav-layout="horizontal"]) .PinnedTabsBar { padding: var(--general-margin) 0 calc(var(--tabs-margin) * 2); } #root[data-pinned-tabs-position="left"][data-nav-layout="left"][data-drag="true"] .PinnedTabsBar, #root[data-pinned-tabs-position="right"][data-nav-layout="right"][data-drag="true"] .PinnedTabsBar { padding: var(--general-margin) 0 16px }

/ Rounded transition between Sidebery nav-bar and Firefox toolbar / .main-box { --rounding: calc(var(--general-border-radius) + var(--general-margin)); } #root[data-nav-layout="left"] .main-box:before { content: ''; position: absolute; top: 0; left: var(--nav-btn-width); width: var(--rounding); height: var(--rounding); z-index: 1000; pointer-events: none; background-image: radial-gradient( circle at 100% 100%, #00000000, #00000000 var(--rounding), var(--toolbar-bg) calc(var(--rounding) + 0.5px), var(--toolbar-bg) ); } ```

222

Full width pinned tabs

```css #root.root {--tabs-pinned-height: 32px;} #root.root {--tabs-pinned-width: 36px;}

#root.root .PinnedTabsBar .tab-wrapper { width: auto; flex-grow: 1; } #root.root .PinnedTabsBar .tab-wrapper .Tab { --tabs-activated-shadow: inset 0 0 0 1px #fff2; --tabs-activated-bg: #fff2; width: 100%; min-width: var(--tabs-pinned-width); } #root.root .PinnedTabsBar .tab-wrapper .Tab .body { --tabs-normal-bg: #ffffff0f; } #root.root .PinnedTabsBar .tab-wrapper .Tab[data-discarded="true"] .body { --tabs-normal-bg: #ffffff06; } ```

screenshot-2025-11-11 23-45-26

That's basically all custom styles I use myself. I'll try to keep this userChrome snippet updated (relative to the beta version of Firefox).

For more features and other styling options/themes check out these resources:

  • https://github.com/search?q=sidebery+language%3ACSS&type=repositories&s=stars&o=desc
  • https://www.reddit.com/r/FirefoxCSS/search?q=sidebery&restrict_sr=on&sort=relevance&t=all
  • https://trickypr.github.io/FirefoxCSS-Store.github.io/index.html

Build

Prerequisites: latest LTS Node.js version

  1. Install dependencies: npm install
  2. Build all parts of Add-on: npm run build
  3. Create Add-on archive in ./dist: npm run build.ext

After creating the Add-on archive, you can then use the version in Firefox as follows:

  1. Open Firefox
  2. Go to about:debugging
  3. Go to "This Firefox"
  4. At "Temporary Extensions" click on "Load Temporary Add-on..."
  5. Select the .zip file in the dist directory.
  6. Close the settings tab
  7. Your Firefox now always runs with the development version
  8. For updating: Repeat all steps.

Development

Prerequisites: latest LTS Node.js version

Install dependencies: npm install
Build and watch for changes: npm run dev
Run browser with Add-on: npm run dev.run -- <firefox-executable>

Donate

You can donate to this project, which will motivate me to answer questions, fix reported bugs, implement requested features and generally will speed up development process.

You can also donate to resolving a specific issue (feature request or bug report). To do this, message me to maxbadryzlov@gmail.com, we discuss the issue and its possible resolution, and I'll spend my time on that issue after donation.

To purchase cryptocurrency you can use any exchange services, e.g.: buy.coingate.com, www.coinbase.com, www.binance.com, www.kraken.com, etc...

Thank you.

Bitcoin (BTC)

bc1q2drx3x5pfl0c68urwztvjrwgksg9u3l7mn4g4m

btc-bc1q2drx3x5pfl0c68urwztvjrwgksg9u3l7mn4g4m

Ethereum (ETH), USDT (ERC20), USDC (ERC20)

0x11667D20AB328194AEEc68F9385CCcf713607929

eth-0x11667D20AB328194AEEc68F9385CCcf713607929

Tron (TRX), USDT (TRC20), USDC (TRC20)

TJEdp1TnsN7Jfhfi9Db8yXKDK8NEUovCZb

TJEdp1TnsN7Jfhfi9Db8yXKDK8NEUovCZb

Litecoin (LTC)

ltc1qpv4c4kaahdzhcwzj8yyrwlvnfcw2hw5qpxqr62

ltc1qpv4c4kaahdzhcwzj8yyrwlvnfcw2hw5qpxqr62

Solana (SOL)

GdWipUmnhdDa7kqkF3SJm5jTYqp3UsTdbcGCC1xLbVJf

GdWipUmnhdDa7kqkF3SJm5jTYqp3UsTdbcGCC1xLbVJf

TON

UQAxwOfvZQz1YR4qieiE-J4wHiz3zrMXAyxDiRJQQXIDX8MH

UQAxwOfvZQz1YR4qieiE-J4wHiz3zrMXAyxDiRJQQXIDX8MH

License

MIT

Extension points exported contracts — how you extend this code

ThemeColors (Interface)
* https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme#colors
src/types/web-ext.d.ts
FuncCtx (Interface)
(no doc)
src/utils.ts
ConfirmDialog (Interface)
(no doc)
src/types.ts
TabPreviewInitData (Interface)
(no doc)
src/injections/tab-preview.ts
HistoryReactiveState (Interface)
(no doc)
src/services/history.fg.ts
Tab (Interface)
(no doc) [1 implementers]
src/types/tabs.ts
DragEventParseResult (Interface)
(no doc)
src/utils.ts
BookmarksFolderSelection (Interface)
(no doc)
src/types.ts

Core symbols most depended-on inside this repo

translate
called by 239
src/dict.ts
get
called by 229
src/types/web-ext.d.ts
set
called by 112
src/types/web-ext.d.ts
add
called by 62
src/services/ippc.page.ts
delete
called by 56
src/services/ippc.addon.bc.ts
addMPanel
called by 54
src/defaults/mocks.sidebar.fg.ts
create
called by 53
src/services/ippc.addon.bc.ts
addMTTab
called by 51
src/defaults/mocks.tabs.fg.ts

Shape

Function 1,318
Interface 283
Enum 38
Method 38
Class 20

Languages

TypeScript100%

Modules by API surface

src/services/sidebar.fg.ts98 symbols
src/utils.ts92 symbols
src/services/tabs.fg.ts88 symbols
src/types/web-ext.d.ts85 symbols
src/services/bookmarks.fg.ts79 symbols
src/services/keybindings.fg.ts63 symbols
src/services/ipc.ts48 symbols
src/types.ts44 symbols
src/services/selection.fg.ts42 symbols
src/services/drag-and-drop.fg.ts42 symbols
src/services/search.fg.ts33 symbols
src/services/menu.fg.ts32 symbols

Dependencies from manifests, versioned

@vitejs/plugin-vue6.0.6 · 1×
@vue/compiler-sfc3.5.32 · 1×
@vue/language-plugin-pug3.2.6 · 1×
esbuild0.28.0 · 1×
eslint10.2.0 · 1×
eslint-plugin-vue10.8.0 · 1×
globals17.5.0 · 1×
jsdom29.0.2 · 1×
prettier3.8.3 · 1×
pug3.0.4 · 1×

For agents

$ claude mcp add sidebery \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact