Skip to content

thomasguillot/bookmarkr

Repository files navigation

Bookmarkr

License: GPL-3.0

Minimal Chrome extension that exports a backup of your bookmarks to your computer. Changelog.

Features

  • Export as HTML – download a Netscape-format bookmark file (re-importable into any browser) to your Chrome Downloads folder
  • Export as Markdown – download a hierarchical Markdown version of your bookmarks
  • Follows your system light/dark theme

Install

Option A – Download a release (no build)

  1. Go to Releases and download the latest bookmarkr-*.zip.
  2. Unzip the file. You should get a folder containing manifest.json, a build folder, an icons folder, and _locales.
  3. In Chrome, open a new tab and go to chrome://extensions.
  4. Turn on Developer mode (toggle in the top-right).
  5. Click Load unpacked and choose the unzipped folder (the one that contains manifest.json).
  6. The extension is installed. Pin it from the puzzle icon in the toolbar if you like.

Option B – From source

  1. Clone the repo, then from the project root: npm install and npm run build.
  2. Open Chrome → ExtensionsManage extensionsLoad unpacked
  3. Select the bookmarkr folder (the one containing manifest.json).

Usage

Click the extension icon, then click Export as HTML or Export as Markdown. The file is saved to your Chrome Downloads folder with a timestamped name like bookmarks-YYYY-MM-DD-HH-MM-SS.html or .md.

Build

The popup is built with Vite + React + Tailwind + shadcn (src/bookmarkr.html + src/bookmarkr.tsx). The background logic (message handling, bookmark serialization) lives in src/service-worker.ts. Both are built into build/ by Vite.

npm install
npm run build

Then load or reload the extension from the project root (the folder containing manifest.json).

To rebuild only the icons after editing icons/icon.svg:

npm run build:icons

To create a release zip locally (e.g. for manual upload):

npm run release

This builds the extension and creates bookmarkr-<version>.zip (from manifest.json). Unzip it and use Load unpacked on the folder, or upload the zip to a GitHub Release; if you publish a release, the Release workflow runs and attaches the zip automatically.

To type-check and lint:

npm run typecheck
npm run lint
npm run lint:fix   # auto-fix ESLint issues

Platform

Default behavior is tuned for Mac (Downloads folder). The same extension works on Windows; Chrome uses the system's default download location.

Translations

The UI and manifest use Chrome's built-in i18n. Strings live in _locales/<locale>/messages.json. English (en) and French (fr) are included. Chrome picks the locale from the browser language. To add a language, add a folder _locales/<code>/messages.json with the same keys as _locales/en/messages.json.

License

GPL-3.0-only. See LICENSE.

About

Minimal Chrome extension that exports a backup of your bookmarks. Choose to save to your computer (Downloads) or to Google Drive.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors