TIP: Checkout related projects of this suite
Warning
Beta Version available, not fully tested !
| Dark theme | Light theme |
|---|---|
![]() |
![]() |
This tool provides a terminal-based user interface (TUI) for managing and organizing shell commands. It allows users to:
- Save frequently used shell commands as bookmarks
- Categorize commands with tags
- Search through saved commands quickly
- Execute saved commands directly from the interface
The application uses the Bubbletea framework to create an interactive terminal UI with features like:
- Tab-based navigation
- Keyboard shortcuts
- Focus management between different UI components
- Command organization and filtering
- Persistent storage using SQLite for saving bookmarks and tags
- Shell integration (Bash/Zsh) for easy command execution
- Open source under the MIT License
This tool is part of a larger suite of Bash productivity tools designed to enhance shell workflows and command management.
- Bookmark Commands: Save frequently used shell commands for quick access.
- Tagging System: Organize commands with tags for easy categorization.
- Search Functionality: Quickly find commands using a search bar.
- Command Execution: Execute saved commands directly from the interface.
- Keyboard Shortcuts: Use keyboard shortcuts for efficient navigation and command execution.
- Persistent Storage: Save bookmarks and tags to a SQLite database for persistence across sessions.
- Shell Integration: Easily paste commands into the shell prompt using
keyboard shortcuts.
- see doc/shell-integration.md for more details.
- Cross-Platform Compatibility: Works on any terminal that supports the Bubbletea framework.
- Open Source: Licensed under the MIT License, allowing for free use and modification.
- slog is logging system
- Bubbletea A powerful little TUI framework.
- Not a library, but a lot of snippets, ui logic and design have been taken from PUG - A terminal user interface for terraform power users.
- snippets from Brandon Fulljames
go install golang.org/x/tools/cmd/goimports@latestThis repository uses pre-commit software to ensure every commits respects a set
of rules specified by the .pre-commit-config.yaml file. It supposes pre-commit
software is installed in your environment.
You also have to execute the following command to enable it:
pre-commit install --hook-type pre-commit --hook-type pre-pushNow each time you commit or push, some linters/compilation tools are launched automatically
go install github.com/securego/gosec/v2/cmd/gosec@latest
go install github.com/OpenPeeDeeP/depguard/cmd/depguard@latest
go install golang.org/x/tools/cmd/goimports@latest
go install github.com/go-delve/delve/cmd/dlv@latest
go install github.com/dkorunic/betteralign/cmd/betteralign@latest
go install github.com/go-critic/go-critic/cmd/go-critic@latest
go install -v github.com/go-critic/go-critic/cmd/gocritic@latestgo install golang.org/x/tools/cmd/deadcode@latest
deadcode -filter "github.com/fchastanet/shell-command-bookmarker" ./app/main.goFormatting is managed exclusively by pre-commit hooks.
.build/build-docker.sh.build/build-local.sh.build/test.sh.build/coverage.sh.build/run.sh.build/clean.shRun the project
HISTFILE=~/.bash_history go run -tags "sqlite_fts5" ./app/main.go -d
