# README
🔖 GoMarks
Simple cli tool for manage your bookmarks 🚧 WIP
[!WARNING] This repo is a work in progress! Needing both cleaning up and documenting.
✨ Features
- Support multiple
databases
- Restore
deleted
bookmarks - Import
bookmarks
fromfirefox
based browsers priority - Import
bookmarks
fromchromium
based browsers priority - Fetch
title
anddescription
from added URL - Check bookmark
status
(http status) - Support for
NO_COLOR
env variable. - Configure
keybinds
inmenu
mode withyaml
file. - Migrate items from one database to another
- Encrypt database priority
- Add
docker|podman
support priority - ...
📦 Installation
git clone "https://github.com/haaag/gm" && cd gm
# build using make
make
# or build using `go build`
go build -o ./bin
This will create a ./bin/gm
binary in your current directory.
📖 Usage (🚧WIP)
This must be simplified a bit.
$ gm --help
Simple yet powerful bookmark manager for your terminal
Usage:
gm [flags]
gm [command]
Available Commands:
add add a new bookmark
bk backup management
db database management
help Help about any command
import import bookmarks from browser
restore restore deleted bookmarks
version print version information
Flags:
--color string output with pretty colors [always|never] (default "always")
-c, --copy copy bookmark to clipboard
-e, --edit edit with preferred text editor
-f, --field string output by field [id|url|title|tags]
--force force action | don't ask confirmation
-H, --head int the <int> first part of bookmarks
-h, --help help for gm
--json output in JSON format
-m, --menu menu mode (fzf)
-M, --multiline output in formatted multiline (fzf)
-n, --name string database name (default "bookmarks.db")
-O, --oneline output in formatted oneline (fzf)
-o, --open open bookmark in default browser
-q, --qr generate qr-code
-r, --remove remove a bookmarks by query or id
-s, --status check bookmarks status
-t, --tag strings list by tag
-T, --tail int the <int> last part of bookmarks
-v, --verbose verbose mode
Use "gm [command] --help" for more information about a command.
🔑 Supported Env Vars
Name | type | Description | Status |
---|---|---|---|
GOMARKS_HOME | str | Path to database/yaml | done |
GOMARKS_EDITOR | str | Preferred text editor | done |
GOMARKS_BACKUP_MAX | int | Maximum number of backups (def: 3) | done |
NO_COLOR | int | Disable all colors | done |
📜 Menu support
Single/multiple selection for open, copy, edit, delete, check status.
https://github.com/user-attachments/assets/b8d8f0fa-e453-421b-b27d-eebb3da7f51f
⚙️ Configuration
-
$GOMARKS_HOME/menu.yml
file
YAML file structure
prompt: " Gomarks> "
header: true
preview: true
keymaps:
edit:
bind: ctrl-e
description: edit
enabled: true
hidden: false
open:
bind: ctrl-o
description: open
enabled: true
hidden: false
preview:
bind: ctrl-/
description: toggle-preview
enabled: true
hidden: false
qr:
bind: ctrl-k
description: QRcode
enabled: true
hidden: false
toggle_all:
bind: ctrl-a
description: toggle-all
enabled: true
hidden: true
yank:
bind: ctrl-y
description: yank
enabled: true
hidden: false
⏳ TODO
TODO
❗ Priority
- Use a ORM
- Add multiple databases option (default.db, work.db, client.db)
- Add
Sync
to remote repo???
XDG
- Store
db
inXDG_DATA_HOME
- Store
menu config
inXDG_CONFIG_HOME
(WIP: for now inXDG_DATA_HOME
)
📦 Packages
-
terminal
package -
color
package -
files
package
🟨 Redo
- Backups
- Databases
⛓️ Import
- From firefox
- From
chromechromium
♻️ Misc
- Add a logging library
- Support
NO_COLOR
env var. no-color
# Packages
No description provided by the author