gosuki

package module
v1.0.0-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2025 License: AGPL-3.0 Imports: 0 Imported by: 0

README

GoSuki

Multi-browser, standalone, bookmark manager

No subscription or extension required

Demo | Documentation | Website

Install | Feautres

What's this ? Oh, just another bookmark manager. No big deal.

  • Ever feel like your bookmarks are a chaotic mess ?

  • Ever find yourself swapping browsers when they can't keep up with your demands?

  • Have past bookmark managers let you down, vendor locking or abandoning you in your time of need?

  • Maybe you would rather avoid entrusting your bookmarks to cloud companies.

  • Perhaps you keep multiple browser profiles for work, research, streaming, and development?

  • Do you use some "obscure" browser that doesn't support extensions?

  • If you're nodding your head to any of the above, then look no further.

GoSuki is an extension-free, self-contained, real time bookmark tracker and organizer. It packs everything in a single binary and captures all your bookmarks in a portable database.

✨ Features

  • 📦 Standalone: Gosuki is a single binary with no dependencies or external extensions necessary. It's designed to just work right out of the box
  • ⌨️ Ctrl+D: Use the universal shortcut to add bookmarks and call custom commands
  • 🏷️ Tag Everything: Tag with #hashtags even if your browser does not support it. You can even add tags in the Title. Your folders become tags
  • 🔎 Real time: Gosuki keeps track of your bookmarks, spotting any changes as they happen
  • 🖥️ Web UI + CLI Builtin, local Web UI. Also works without Javascript. dmenu/rofi compatible CLI.
  • 🧪 Hackable: Modular and extensible. Custom scripts and actions per tags and folders.
  • 🌎 Browser Agnostic: Detects which browsers you have installed and watch changes in all of them
  • 👤 Profile Support: Also handles multiple profiles for each browser
  • 💾 Buku Compatibility: Gosuki is compatible with the Buku sqlite database, you can use any program that was made for buku
  • 📡 External APIs Consolidate your curated content from external APIs (github, reddit ...)

📸 In Action

Realtime Bookmark Tracker

Marktab Scripts

Note: you can also drop bookmarks in a folder matching an action to execute the script. Folders are tags

CLI - Suki


Full Demo on YT

Installation

Checkout the quick start guide.

Releases

From source
Dependencies:
  • sqlite3 development library
 go install github.com/blob42/gosuki/cmd/gosuki@latest

Gosuki currently supports Linux and MacOSbeta . More platforms are planned.

Running GoSuki

GoSuki is designed to run as a background service for real-time bookmark monitoring. Below are the recommended ways to start and interact with the application.

As a Service

Start GoSuki as a persistent service:

gosuki start

This initializes all configured browsers and begins real-time bookmark tracking.

Terminal UI (TUI)

Launch with an interactive terminal interface for real-time parsing overview:

gosuki --tui start

The TUI displays module status and bookmark processing metrics.

Debugging

Enable detailed logging with:

gosuki --debug=2

note: Avoid using --tui with debug mode.

How does it work ?

Gosuki monitors the browser's internal bookmark files for changes. It uses the native OS event notification system to detect changes as they happen. This allows it to be fast and efficient, without the need for any plugins or extensions.

The application maintains a portable database of all tracked bookmarks, accessible via the built-in web UI or CLI.

Curious for more details on the internals ? Checkout the Architecture file.

Roadmap

  • Archival - Create portable archive format to access any link offline.
  • Linkrot - Automatically identify broken links and replace with web.archive.org alternatives
  • Built-in Sync - Enable secure synchronization between multiple devices
  • Tag Refresh - Automatically clean and update tags/metadata for existing bookmarks
  • Simple Cleanup UI - Intuitive interface for organizing and pruning bookmarks
  • Browser Sync - Push changes back to browsers for consistent bookmark management
  • Platforms - FreeBSD, Windows and other platforms

Support

GoSuki is an open-source project that relies on community support to grow. If you find value in this tool, consider supporting its development through:

  • Financial contributions via GitHub Sponsors or Patreon
  • Reporting issues and suggesting features
  • Contributing code or documentation
  • Sharing the project with others who might benefit

Your support helps maintain existing features and allows me to develop new capabilities for all users.

Contributing

We welcome contributions from the community! To get started:

  1. Fork the repository
  2. Create a new branch for your changes
  3. Submit a pull request with clear documentation
  4. Follow our code of conduct

For bug reports, please provide detailed steps to reproduce the issue.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Bookmark

type Bookmark struct {
	URL    string   `json:"url"`
	Title  string   `json:"metadata"`
	Tags   []string `json:"tags"`
	Desc   string   `json:"desc"`
	Module string   `json:"module"`
}

Bookmark type

Directories

Path Synopsis
browsers
chrome
Chrome browser module.
Chrome browser module.
firefox
TODO: add cli options to set/get options TODO: move browser module commands to their own module packag
TODO: add cli options to set/get options TODO: move browser module commands to their own module packag
cmd
commands related to modules
commands related to modules
gosuki command
Main command line entry point for gosuki
Main command line entry point for gosuki
suki command
Package hooks permits to register custom hooks that will be called during the parsing process of a bookmark file.
Package hooks permits to register custom hooks that will be called during the parsing process of a bookmark file.
internal
api
database
TODO: handle `modified` time sqlite database management
TODO: handle `modified` time sqlite database management
pkg
browsers/mozilla
Package mozilla provides functionality for managing Mozilla-based browser profiles, such as Firefox and LibreWolf.
Package mozilla provides functionality for managing Mozilla-based browser profiles, such as Firefox and LibreWolf.
build
TODO: get runtime build/git info see: https://github.com/lightningnetwork/lnd/blob/master/build/version.go#L66 https://raw.githubusercontent.com/lightningnetwork/lnd/refs/heads/master/build/version.go
TODO: get runtime build/git info see: https://github.com/lightningnetwork/lnd/blob/master/build/version.go#L66 https://raw.githubusercontent.com/lightningnetwork/lnd/refs/heads/master/build/version.go
config
TODO: save config back to file TODO: global config options should be automatically shown in cli global flags
TODO: save config back to file TODO: global config options should be automatically shown in cli global flags
marktab
Package marktab handles reading and parsing of marktab files, inspired by the crontab file format.
Package marktab handles reading and parsing of marktab files, inspired by the crontab file format.
modules
Modules allow the extension of gosuki to handle other types of browsers or source of data that can be turned into bookmarks.
Modules allow the extension of gosuki to handle other types of browsers or source of data that can be turned into bookmarks.
parsing
Tag related parsing functions
Tag related parsing functions
profiles
Package profiles ...
Package profiles ...
Script to generate a json file containg 1000 random bookmark.
Script to generate a json file containg 1000 random bookmark.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL