К основному содержанию
скилл CX Codex

terminal-title — скилл для Claude Code: заголовок терминала по задаче

Переименовывает окно терминала под текущую задачу, чтобы не путать несколько сессий Claude. Полезно, когда открыто больше одного окна.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add bluzername/claude-code-terminal-title --skill terminal-title -a claude-code
Открыть на GitHub

Что делает terminal-title

Скилл читает первый запрос пользователя, вытаскивает из него суть задачи и ставит короткий заголовок окна — до 40 знаков, в формате «Действие: объект». Дальше он молча вызывает set_title.sh, никаких подтверждений не спрашивает. Заголовок обновляется и при переходе к другой задаче: скажем, с фронтенда на бэкенд или с отладки на новую фичу. Уточнения по той же задаче и мелкие правки заголовок не трогают.

Скрипт пишет escape-последовательность OSC 0 в управляющий терминал /dev/tty, а если терминала нет — в stdout. Заголовок он ещё и сохраняет в ~/.claude/terminal_title, чтобы оболочка могла вернуть его после следующего приглашения. Работает в Terminal.app, iTerm2, Alacritty, Kitty и большинстве xterm-совместимых эмуляторов, включая tmux и screen. К имени задачи скрипт сам добавляет имя текущей папки, обычно репозитория: получается my-project | Build: Dashboard UI. Свой префикс задаётся переменной CLAUDE_TITLE_PREFIX.

Внутри есть и детерминированный вариант: hooks/set-title-hook.sh вешается как хук UserPromptSubmit и берёт заголовок из первой строки каждого запроса, не полагаясь на вызов скилла. Скрипт принимает один аргумент и молча выходит, если его не передали.

Какие задачи решает

  • различить окна, когда открыто несколько сессий Claude
  • понять по заголовку, чем занят конкретный терминал
  • переключиться между фронтендом и бэкендом и не потерять контекст
  • вернуть заголовок окна после сброса оболочкой
  • задать заголовок без вызова скилла, через хук

Примеры запросов агенту

  • Поставь заголовок терминала под текущую задачу
  • Обнови заголовок окна: теперь работаем над миграцией базы
  • Вызови set_title.sh с заголовком «Debug: Auth API Flow»

Как установить terminal-title

1Через Skills CLI (Vercel)

npx skills add bluzername/claude-code-terminal-title --skill terminal-title -a claude-code

2Вручную: положить файлы

~/.claude/skills/terminal-title/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/terminal-title/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о terminal-title

Как установить terminal-title в Claude Code?

Выполните npx skills add bluzername/claude-code-terminal-title --skill terminal-title -a claude-code. Файл скилла окажется по пути ~/.claude/skills/terminal-title/SKILL.md.

Что делает terminal-title?

Ставит заголовок окна терминала по текущей задаче. Заголовок обновляется в начале сессии и при переходе к заметно другой задаче.

Чем хук отличается от самого скилла?

hooks/set-title-hook.sh можно подключить как хук UserPromptSubmit: он берёт заголовок из первой строки каждого запроса и не зависит от того, вызвал ли агент скилл.

Исходный текст

SKILL.md · MIT
---
name: terminal-title
description: Automatically updates the terminal window title to reflect the current high-level task. Use at the start of every Claude Code session when the user provides their first prompt, and whenever the user switches to a distinctly new high-level task. Helps developers manage multiple Claude Code terminals by providing clear, at-a-glance identification of what each terminal is working on.
metadata:
  version: "1.3.0"
---

# Terminal Title

## Overview

Sets a descriptive terminal window title based on the task Claude is working on. Essential for developers running multiple Claude Code instances who need to identify which terminal handles which task.

## When to Use

**Always trigger this skill:**
- At the start of every new Claude Code session (after receiving the first user prompt)
- When switching to a substantially different task (for example from "API Integration" to "Database Migration")

**Trigger on task switches like these:**
- Switching from frontend work to backend work
- Moving from debugging to new feature development
- Changing from one module or component to a completely different one
- Starting work on a different part of the system (for example from auth to payments)

**Do NOT trigger for:**
- Follow-up questions about the same task ("Can you add a comment to that function?")
- Small refinements to current work ("Make it blue instead of red")
- Debugging the same feature you just built
- Clarifications ("What did you mean by X?")
- Iterating on the same component or module
- Mid-task status updates or progress checks

## How It Works

1. **Extract task summary**: identify the high-level task from the user's prompt
2. **Generate title**: create a concise, descriptive title (max 40 characters)
3. **Set title**: run `set_title.sh` with the generated title
4. **No confirmation needed**: this happens silently in the background

## Title Format Guidelines

**Good titles:**
- "API Integration: Auth Flow"
- "Fix: Login Bug"
- "DB Migration: Users Table"
- "Build: Dashboard UI"
- "Refactor: Payment Module"

**Displayed as (the script adds the folder prefix):**
- `my-project | API Integration: Auth Flow`
- `my-project | Fix: Login Bug`

**Bad titles:**
- Too long: "Implementing the new authentication system with OAuth2.0 support"
- Too generic: "Working" or "Coding"
- Too verbose: "The user wants me to help them with..."
- Includes system information: "/Users/john/project: Build feature"
- A full sentence: "I am working on the dashboard component"

**Format pattern:**
```
[Action/Category]: [Specific Focus]
```

Keep titles concise, actionable, and immediately recognizable.

## Implementation

Run the script from the installed skill directory. The personal install path is shown; for a project install use `.claude/skills/terminal-title/scripts/set_title.sh` relative to the project root.

```bash
bash ~/.claude/skills/terminal-title/scripts/set_title.sh "Your Title Here"
```

**Example workflow:**
```bash
# User asks: "Help me debug the authentication flow in the API"
bash ~/.claude/skills/terminal-title/scripts/set_title.sh "Debug: Auth API Flow"

# User asks: "Create a React component for the user profile page"
bash ~/.claude/skills/terminal-title/scripts/set_title.sh "Build: User Profile UI"

# User asks: "Write tests for the payment processing module"
bash ~/.claude/skills/terminal-title/scripts/set_title.sh "Test: Payment Module"
```

## Script Details

`scripts/set_title.sh` writes the OSC 0 escape sequence to the controlling terminal (`/dev/tty`), falling back to stdout when no terminal is attached. It also stores the title in `~/.claude/terminal_title` so shell hooks can re-apply it after each prompt. It is compatible with macOS Terminal.app, iTerm2, Alacritty, Kitty, and most xterm-compatible emulators (including tmux and screen).

The script takes one argument (the title) and exits silently when none is given.

## Automatic Directory Prefix

Every title is prefixed with the current directory name (usually the repo name):

```
my-project | Build: Dashboard UI
another-repo | Debug: Auth API
```

## Optional Custom Prefix

Users can add a custom prefix through the `CLAUDE_TITLE_PREFIX` environment variable:

```bash
export CLAUDE_TITLE_PREFIX="Claude"
```

This produces titles like `Claude | my-project | Build: Dashboard UI`.

**Note:** You do not need to check these variables or change your behaviour. The script handles them.

## Deterministic Alternative

`hooks/set-title-hook.sh` in this skill directory can be wired as a Claude Code `UserPromptSubmit` hook. It sets the title from the first line of every prompt without relying on this skill being invoked. See the project README for the settings snippet.

© bluzername · MIT · bluzername/claude-code-terminal-title

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
setup-matt-pocock-skills Matt Pocock Скилл настраивает репозиторий для инженерных скиллов Matt Pocock: задаёт трекер задач, метки триажа и расположение доменной документации. Запустите его перед первым использованием остальных скиллов. 1 052 851установок ask-matt Matt Pocock Помогает выбрать подходящий скилл или рабочий поток из набора Matt Pocock. Пригодится, когда непонятно, с чего начать задачу: от идеи до разбора бага. 766 587установок to-tickets Matt Pocock Разбивает план, спецификацию или переписку на небольшие сквозные задачи и отмечает, какие из них блокируют остальные. Пригодится, когда нужно согласовать порядок работы до публикации задач в трекере. 711 230установок writing-plans Jesse Vincent Скилл превращает требования к многошаговой задаче в подробный план реализации до начала работы с кодом. Пригодится, когда исполнителю нужно зафиксировать файлы, интерфейсы и проверки. CX Codex 282 859установок caveman-review JuliusBrussee Пишет замечания к коду одной строкой: место, проблема, исправление. Пригодится, когда ревью диффа или PR надо пройти быстро и без воды. CX Codex +1 411 800установок caveman-compress JuliusBrussee Сжимает CLAUDE.md, списки задач и другие текстовые файлы в краткий формат, сохраняя читаемую резервную копию. CX Codex +1 411 500установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой