nbl.status-line
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesenbl.status-line
nbl.status-line
一键安装自定义 Claude Code 状态行。
一键安装自定义 Claude Code 状态行。
安装
安装
AI执行方式:按步骤分步执行 Bash 脚本。遇到需要用户确认的场景,使用 AskUserQuestion 工具询问用户,不要在 Bash 中使用 read 命令。
AI执行方式:按步骤分步执行 Bash 脚本。遇到需要用户确认的场景,使用 AskUserQuestion 工具询问用户,不要在 Bash 中使用 read 命令。
步骤 1:复制 statusline.sh 并检测配置状态
步骤 1:复制 statusline.sh 并检测配置状态
将以下脚本作为Bash工具直接执行:
bash
undefined将以下脚本作为Bash工具直接执行:
bash
undefined检查 jq
检查 jq
if ! command -v jq >/dev/null 2>&1; then
echo "错误: jq 未安装"
echo "Windows (Git Bash): 通常已预装"
echo "Ubuntu/Debian: sudo apt install jq"
echo "macOS: brew install jq"
exit 1
fi
if ! command -v jq >/dev/null 2>&1; then
echo "错误: jq 未安装"
echo "Windows (Git Bash): 通常已预装"
echo "Ubuntu/Debian: sudo apt install jq"
echo "macOS: brew install jq"
exit 1
fi
定位源文件:尝试多个可能的路径
定位源文件:尝试多个可能的路径
SOURCE_FILE=""
for dir in
"$HOME/.claude/plugins/marketplaces/nbl-dev/skills/nbl.status-line"
"$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"; do if [ -f "$dir/statusline.sh" ]; then SOURCE_FILE="$dir/statusline.sh" break fi done
"$HOME/.claude/plugins/marketplaces/nbl-dev/skills/nbl.status-line"
"$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"; do if [ -f "$dir/statusline.sh" ]; then SOURCE_FILE="$dir/statusline.sh" break fi done
if [ -z "$SOURCE_FILE" ]; then
echo "错误: 找不到 statusline.sh 源文件"
exit 1
fi
TARGET_DIR="$HOME/.claude"
TARGET_FILE="$TARGET_DIR/statusline.sh"
SOURCE_FILE=""
for dir in
"$HOME/.claude/plugins/marketplaces/nbl-dev/skills/nbl.status-line"
"$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"; do if [ -f "$dir/statusline.sh" ]; then SOURCE_FILE="$dir/statusline.sh" break fi done
"$HOME/.claude/plugins/marketplaces/nbl-dev/skills/nbl.status-line"
"$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"; do if [ -f "$dir/statusline.sh" ]; then SOURCE_FILE="$dir/statusline.sh" break fi done
if [ -z "$SOURCE_FILE" ]; then
echo "错误: 找不到 statusline.sh 源文件"
exit 1
fi
TARGET_DIR="$HOME/.claude"
TARGET_FILE="$TARGET_DIR/statusline.sh"
复制文件
复制文件
mkdir -p "$TARGET_DIR"
cp -f "$SOURCE_FILE" "$TARGET_FILE"
chmod +x "$TARGET_FILE"
echo "已复制 statusline.sh"
mkdir -p "$TARGET_DIR"
cp -f "$SOURCE_FILE" "$TARGET_FILE"
chmod +x "$TARGET_FILE"
echo "已复制 statusline.sh"
检测配置状态并输出标记供 AI 判断
检测配置状态并输出标记供 AI 判断
SETTINGS_FILE="$TARGET_DIR/settings.json"
if [ ! -f "$SETTINGS_FILE" ]; then
echo "::CONFIG_STATUS=no_settings"
exit 0
fi
if ! jq . "$SETTINGS_FILE" >/dev/null 2>&1; then
echo "错误: settings.json JSON 格式无效"
exit 1
fi
EXISTING_CMD=$(jq -r '.statusLine.command // ""' "$SETTINGS_FILE")
if [ -z "$EXISTING_CMD" ]; then
echo "::CONFIG_STATUS=no_statusline"
elif [ "$EXISTING_CMD" = "~/.claude/statusline.sh" ]; then
echo "::CONFIG_STATUS=correct"
echo "安装完成! statusline.sh 已更新,请重启 Claude Code 生效"
else
echo "::CONFIG_STATUS=different"
echo "当前配置路径: $EXISTING_CMD"
fi
undefinedSETTINGS_FILE="$TARGET_DIR/settings.json"
if [ ! -f "$SETTINGS_FILE" ]; then
echo "::CONFIG_STATUS=no_settings"
exit 0
fi
if ! jq . "$SETTINGS_FILE" >/dev/null 2>&1; then
echo "错误: settings.json JSON 格式无效"
exit 1
fi
EXISTING_CMD=$(jq -r '.statusLine.command // ""' "$SETTINGS_FILE")
if [ -z "$EXISTING_CMD" ]; then
echo "::CONFIG_STATUS=no_statusline"
elif [ "$EXISTING_CMD" = "~/.claude/statusline.sh" ]; then
echo "::CONFIG_STATUS=correct"
echo "安装完成! statusline.sh 已更新,请重启 Claude Code 生效"
else
echo "::CONFIG_STATUS=different"
echo "当前配置路径: $EXISTING_CMD"
fi
undefined步骤 2:根据配置状态决定下一步
步骤 2:根据配置状态决定下一步
根据步骤 1 输出的 值:
::CONFIG_STATUS| CONFIG_STATUS | AI 操作 |
|---|---|
| 直接执行下方"更新配置"脚本(先创建 settings.json) |
| 直接执行下方"更新配置"脚本 |
| 无需操作,安装完成 |
| 使用 AskUserQuestion 询问用户是否将配置路径更新为 |
根据步骤 1 输出的 值:
::CONFIG_STATUS| CONFIG_STATUS | AI 操作 |
|---|---|
| 直接执行下方"更新配置"脚本(先创建 settings.json) |
| 直接执行下方"更新配置"脚本 |
| 无需操作,安装完成 |
| 使用 AskUserQuestion 询问用户是否将配置路径更新为 |
更新配置脚本
更新配置脚本
当需要写入 statusLine 配置时,执行:
bash
SETTINGS_FILE="$HOME/.claude/settings.json"
[ ! -f "$SETTINGS_FILE" ] && echo "{}" > "$SETTINGS_FILE"
TEMP_SETTINGS=$(mktemp)
jq '. + {
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}' "$SETTINGS_FILE" > "$TEMP_SETTINGS" && mv "$TEMP_SETTINGS" "$SETTINGS_FILE"
echo "已更新 statusLine 配置"
echo "安装完成! 请重启 Claude Code 使状态行生效"当需要写入 statusLine 配置时,执行:
bash
SETTINGS_FILE="$HOME/.claude/settings.json"
[ ! -f "$SETTINGS_FILE" ] && echo "{}" > "$SETTINGS_FILE"
TEMP_SETTINGS=$(mktemp)
jq '. + {
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}' "$SETTINGS_FILE" > "$TEMP_SETTINGS" && mv "$TEMP_SETTINGS" "$SETTINGS_FILE"
echo "已更新 statusLine 配置"
echo "安装完成! 请重启 Claude Code 使状态行生效"卸载
卸载
手动操作:
- 删除
~/.claude/statusline.sh - 从 中删除
~/.claude/settings.json配置statusLine
手动操作:
- 删除
~/.claude/statusline.sh - 从 中删除
~/.claude/settings.json配置statusLine