书签cli
Mac/Linux 在终端书签目录CLI 和MCP 对较大场景进行渲染期间已观察到该故障。
特徴
- 🔖 简单书签:
bmc add立即注册目录 - 🚀 高速移动:
bmc go中所述的工具,调整墙的布局和几何形状 - 🎯 交互UI:
bmc ui的fzf 使用直观的操作 - 🎨 彩色输出:通过颜色和图标可视化显示成功/错误/信息
- 🤖 MCP対応: LLM(Claude Code等)可编程操作
- ⚙️ 灵活的设置:配置文件XDG Base Directory、支持环境变量
- 🔒 数据保护:重复检查、备份和锁定文件功能
安装
标准安装(建议)
sudo不需要,易于安装:
# フルインストール (CLI + MCP + エイリアス + XDG対応)
curl -sSL https://raw.githubusercontent.com/code-retriever/bookmark-cli/main/install.sh | bash -s -- --with-mcp --alias-bm --alias-tp --xdg
# エイリアス付きインストール (bm と tp)
curl -sSL https://raw.githubusercontent.com/code-retriever/bookmark-cli/main/install.sh | bash -s -- --alias-bm --alias-tp
# 基本インストール
curl -sSL https://raw.githubusercontent.com/code-retriever/bookmark-cli/main/install.sh | bash安装到: ~/.local/bin/bmc
全系统安装(可选)
用于所有用户:
# まずリポジトリをクローン
git clone https://github.com/code-retriever/bookmark-cli.git
cd bookmark-cli
# sudo でインストール
sudo ./install.sh --prefix=/usr/local --with-mcp --alias-bm --alias-tp --xdg安装到: /usr/local/bin/bmc
⚠️ 注意: curl | sudo bash 不建议使用,因为存在安全风险。
卸载
# 標準インストールのアンインストール
./install.sh --uninstall
# システムワイドインストールのアンインストール
sudo ./install.sh --uninstall --prefix=/usr/local使用方法
重要:初回设定
安装后,请重新启动壳或执行以下操作:
# Bashの場合
source ~/.bashrc
# Zshの場合
source ~/.zshrc
# または新しいターミナルを開く可选的壳补充设置
使用制表符完成功能,命令输入变得格外方便:
bmc g # ブックマーク一覧を表示
bmc g sam # 'sample-project' に補完
bmc list --tag # タグ一覧を表示Bash
~/.bashrc 添加:
# bookmark-cli completion
source ~/.local/share/bookmark-cli/completions/bmc.bash反映设置:
source ~/.bashrc原有的质量
~/.zshrc 添加:
# bookmark-cli completion
fpath=(~/.local/share/bookmark-cli/completions $fpath)
autoload -Uz compinit && compinit反映设置:
source ~/.zshrc鱼
符号链接完成文件:
mkdir -p ~/.config/fish/completions
ln -s ~/.local/share/bookmark-cli/completions/bmc.fish ~/.config/fish/completions/Fish将在下次启动时自动装入完成。
确认完成功能
设置后,测试如下:
bmc # 全コマンドを表示
bmc g # ブックマーク一覧を表示
bmc g sam # 'sample-project' に補完
bmc list --tag # タグ一覧を表示基本命令
# ブックマークを追加
bmc add project # 現在のディレクトリを 'project' として登録
bmc add work ~/work # 指定パスを 'work' として登録
bmc add proj -d "My project" -t work,dev # 説明とタグ付きで登録
# ブックマークに移動
bmc go project # 'project' ブックマークへ移動
# ブックマーク一覧
bmc list # 登録済みブックマークを表示
bmc list --tag work # 'work' タグのブックマークのみ表示
# タグ管理
bmc tags # すべてのタグを一覧表示
# インタラクティブUI
bmc ui # fzf で選択して移動(説明・タグをプレビュー表示)
# ブックマーク削除
bmc remove project # 'project' ブックマークを削除注意:bmc go在工作空间的边缘bmc将条目添加到文档注册表。安装程序会自动设置,但手动安装时source /path/to/bmc.sh中所述修改相应参数的值。
tp(Teleport)别名
tp 啊 bmc 在的短别名中,所有命令都可用:
# tp で同じ操作が可能
tp add project # ブックマークを追加
tp go project # 'project' へ移動
tp list # ブックマーク一覧
tp ui # インタラクティブUI
# さらに短いコマンド組み合わせ
tp g work # 'work' へ移動
tp a newproj # 新規ブックマーク追加
tp ls # 一覧表示安装:
./install.sh --alias-tp注:壳补充功能包括:特征/外壳完成PR 合并后 tp 命令也可以使用。彩色输出功能
bookmark-cli显示带有彩色图标的消息:
# カラー出力の例
bmc add myproject # ✓ 成功メッセージ(緑色)
bmc add myproject # ✗ エラーメッセージ(赤色)
bmc list # ℹ 情報メッセージ(青色)禁用颜色
如果不需要彩色输出,可以通过多种方式禁用:
# 方法1: NO_COLOR環境変数(推奨)
NO_COLOR=1 bmc list
export NO_COLOR=1
# 方法2: --no-colorオプション(グローバル)
bmc --no-color add project
# 方法3: --no-colorオプション(コマンドレベル)
bmc add --no-color project
# 方法4: 設定ファイル(後述)
echo "COLOR_ENABLED=false" > ~/.config/bookmark-cli/config自动无效化:使用管道或重定向时,将自动禁用颜色:
bmc list | grep project # カラーなし
bmc list > output.txt # カラーなし元数据功能(说明、标记)
# 説明(description)を追加
bmc add myproject -d "重要なプロジェクト"
bmc add work --description "仕事用ディレクトリ"
# タグ(tags)を追加(カンマ区切り)
bmc add proj1 -t work,important
bmc add proj2 --tags personal,hobby,2024
# 説明とタグを同時に追加
bmc add fullproj -d "フルメタデータのプロジェクト" -t work,dev,test
# タグでフィルタリング
bmc list --tag work # 'work' タグを持つブックマークのみ表示
bmc list --tag important # 'important' タグを持つブックマークのみ表示
# すべてのタグを一覧表示
bmc tags # タグ一覧と各タグのブックマーク数を表示高级功能
# 名前変更(メタデータも保持)
bmc rename old_name new_name
# ファイル編集
bmc edit # $EDITOR でブックマークファイルを開く
# インポート・エクスポート(メタデータ対応)
bmc export backup.json # JSON形式でエクスポート(説明・タグ含む)
bmc import backup.json # JSON形式でインポート(説明・タグ復元)书签验证和诊断
# 検証
bmc validate # 全ブックマークの有効性をチェック
bmc check # validate のエイリアス
# クリーンアップ
bmc clean # 無効なブックマークを削除
bmc clean --dry-run # 削除プレビュー(実際には削除しない)
# 診断
bmc doctor # 健全性診断とレポート表示履历・频度追迹
# 最近使用したブックマーク
bmc recent # 最近使用した10件を表示
bmc r # recent のエイリアス
# 頻繁に使用するブックマーク
bmc frequent # 使用頻度の高い順に表示
# 統計情報
bmc stats # 使用統計を表示
# 履歴から選択
bmc go # 引数なしで履歴からfzfで選択别名
命令_别名 |----------|------------| | bmc | bm, tp (需要安装)| | bmc add | bmc a | | bmc go | bmc g | | bmc list | bmc ls | | bmc ui | bmc browse, bmc fz | | bmc remove | bmc rm, bmc del | | bmc rename | bmc mv | | bmc edit | bmc e | | bmc import | bmc imp | | bmc export | bmc exp | | bmc validate | bmc check | | bmc recent | bmc r | | bmc help | bmc h |
设定
配置文件
bookmark-cli可在配置文件中自定义行为:
配置文件位置
按以下顺序查找配置文件:
$BM_CONFIG环境变量中指定的路径(首选项)$XDG_CONFIG_HOME/bookmark-cli/config(XDG准据)~/.config/bookmark-cli/config(默认值)
设置文件的写法
KEY=VALUE简单的格式语法:
# ~/.config/bookmark-cli/config
# カラー出力の有効/無効
COLOR_ENABLED=true
# デフォルトエディタ
DEFAULT_EDITOR=vim
# コメントと空行も使用可能
# スペース付きの値はクォートで囲む
CUSTOM_MESSAGE="Hello World"可用设置
|设置项目|说明|默认值| |---------|------|-------------| | COLOR_ENABLED |启用颜色输出| true | | NO_COLOR |禁用颜色输出|未设置| | DEFAULT_EDITOR 默认编辑器 $EDITOR 或 vi |
注意:环境变量优先于配置文件。
环境变数
BM_FILE:将书签文件保存到(默认值:~/.bm/bookmarks)BM_HISTORY:将历史文件保存到(默认值:~/.bm/history)BM_CONFIG:配置文件路径EDITOR:bmc edit中使用的编辑器NO_COLOR:禁用颜色输出(可选设置)COLOR_ENABLED:启用/禁用颜色输出(true/false)
XDG Base Directory 対応
# XDG対応でインストール
./install.sh --xdg
# 環境変数が自動設定されます
export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
export BM_FILE="$XDG_DATA_HOME/bookmark-cli/bookmarks"
export BM_HISTORY="$XDG_DATA_HOME/bookmark-cli/history"
# デフォルト保存先
# - ブックマーク: $HOME/.local/share/bookmark-cli/bookmarks
# - 履歴: $HOME/.local/share/bookmark-cli/historyXDG支持的优点:
- 分离配置文件和数据文件
- 符合系统标准目录结构
- 易于备份和迁移
MCP (Model Context Protocol) 対応
LLM 对较大场景进行渲染期间已观察到该故障
# Claude Code での例
{{#tool bookmarks.List}}
{{/tool}}
{{#tool bookmarks.Add}}
{"name": "project", "path": "/path/to/project"}
{{/tool}}依存关系
必须
- POSIX 外壳
- 基本的Unix命令(
cat,grep,awk等)
选项
fzf:交互UI用jq: JSON処理用- Node.js: MCP 服务器用
开発
# テスト実行
npm test
# または
bats tests/
# コードフォーマット
shfmt -w cli/bmc.sh
# 静的解析
shellcheck cli/bmc.sh许可证
MIT许可证
著作権
版权所有(c)2025中扎藤新一
MIT License - 了解更多信息 许可证 浏览文件
貢献
Issue 啊Pull Request 日语和英语都欢迎。
- 分叉此存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add amazing feature') - 推送分支(
git push origin feature/amazing-feature) - Pull Request 创建
