A simple yet powerful command-line tool for managing directory navigation by setting bookmarks (marks) to frequently used folders.
- Quick Directory Marking: Bookmark any directory with a memorable name
- Fast Navigation: Instantly retrieve full paths to your marked directories
- Beautiful CLI Output: Colorful and intuitive command-line interface
- TypeScript: Written in modern TypeScript for reliability and performance
- Lightweight: Minimal dependencies, fast startup
npm install -g @thenovatasha/markergit clone https://github.com/thenovatasha/marker.git
cd marker
npm install
npm run build
npm linkFor even faster navigation, you can create shell aliases or functions:
Add to your ~/.bashrc or ~/.zshrc:
# Quick navigation to marks
goto() {
local path=$(marker get "$1" 2>/dev/null)
if [ $? -eq 0 ]; then
cd "$path"
else
echo "Mark '$1' not found"
return 1
fi
}Usage:
marker mark work # Mark current directory as 'work'
goto work # Navigate to 'work' markAdd to your ~/.config/fish/config.fish:
function goto
set path (marker get $argv[1] 2>/dev/null)
if test $status -eq 0
cd $path
else
echo "Mark '$argv[1]' not found"
return 1
end
endMark the current directory with a memorable name:
marker mark work
# ✓ Mark 'work' created successfully
# → /home/user/projects/work-stuffReplace an existing mark:
marker mark work --replace
# ✓ Mark 'work' updated successfully
# → /home/user/new-work-locationView all your saved directory marks:
marker ls
# 📍 Found 3 marks:
#
# work → /home/user/projects/work-stuff
# docs → /home/user/documents
# temp → /tmp/scratchDelete a bookmark when you no longer need it:
marker rm work
# ✓ Deleted mark 'work'
# Path was: /home/user/projects/work-stuffRetrieve the full path to a marked directory:
marker get work
# /home/user/projects/work-stuffThis is particularly useful for shell navigation:
cd $(marker get work)
# or
cd `marker get work`| Command | Description | Options |
|---|---|---|
marker mark <name> |
Mark the current directory | --replace, -r - Overwrite existing mark |
marker ls |
List all marks | |
marker get <name> |
Get the full path to a mark | |
marker rm <name> |
Remove a mark |
- Node.js 18+
- TypeScript
git clone https://github.com/thenovatasha/marker.git
cd marker
npm installnpm run buildnpm link
marker --helpISC License - see LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Import/export marks to/from files
- Cloud synchronization across machines
- Mark categories and tags
- Auto-completion for mark names
- Integration with popular file managers
Made with ❤️ by Nova Tasha