✅ Настроил удобную statusline под себя. Добавил:⌗

  • текущую папку (проект, в котором работаю). Удобно при параллельной работе над несколькими проектами.
  • Git-ветку или worktree. Удобно при параллельной работе над несколькими фичами/багфиксами.
  • Процент использования контекста. Об этом уже писал в предыдущем посте.

💻 Получился вот такой скрипт:⌗

#!/usr/bin/env bash
input=$(cat)
cwd=$(echo "$input" | jq -r '.workspace.current_dir // .cwd // empty')
used=$(echo "$input" | jq -r '.context_window.used_percentage // empty')

# Determine git branch and worktree status
worktree_branch=$(echo "$input" | jq -r '.worktree.branch // empty')
in_worktree=$(echo "$input" | jq -r 'if .worktree then "yes" else "no" end')

if [ -n "$worktree_branch" ]; then
  branch="$worktree_branch"
elif [ -n "$cwd" ]; then
  branch=$(git -C "$cwd" --no-optional-locks symbolic-ref --short HEAD 2>/dev/null)
fi

# Build branch segment
branch_segment=""
if [ -n "$branch" ]; then
  if [ "$in_worktree" = "yes" ]; then
    branch_segment="  [worktree: $branch]"
  else
    branch_segment="  [$branch]"
  fi
fi

# Assemble output
if [ -n "$used" ]; then
  printf "%s%s  |  Context: %.0f%% used" "$cwd" "$branch_segment" "$used"
else
  printf "%s%s" "$cwd" "$branch_segment"
fi

💾 Сохрани его в ~/.claude/statusline.sh и укажи в настройках Claude ~/.claude/settings.json:⌗

{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh"
  }
}

🤖 Также сам Claude Code может помочь собрать status line под твои нужды, если в Claude Code выполнить команду⌗

/statusline <твои пожелания тут>

Например, можно попросить выводить название текущей выбранной модели и включен ли Vim-режим.