С первого взгляда терминал выглядит сурово: тёмное окно, мигающий курсор и никаких привычных кнопок. На деле всё прозаичнее. Это прямой способ сказать компьютеру, что сделать: одна команда показывает файлы, другая переводит в нужную папку, третья запускает программу.

Почти все затыки в начале работы с агентом - не про формулировку запроса, а про то, что терминал стоит не в той папке. Поэтому сначала разберёмся с папками и путями, а до команды claude дойдём уже потом. В конце применим всё это к проекту javarush-project, где каждая задача живёт как отдельный проект.

Терминал - прямой способ управлять проектом

Терминал - это окно, в котором вы управляете компьютером текстовыми командами. Вместо поиска нужной кнопки в меню вы точно называете действие: покажи файлы, открой папку, запусти программу.

Мышью быстрее ровно до того момента, когда действие приходится повторить в десятый раз. Вот что терминал даёт взамен:

  • команда делает одно конкретное действие - результат виден в том же окне, гадать не надо;
  • последовательность легко повторить - проверить папку, посмотреть файлы, перейти и запустить;
  • видно состояние, которое прячет интерфейс, - прежде всего текущую папку.

Выбирать что-то одно не нужно. В IDEA удобно находить файлы глазами и открывать их кликом, а в терминале - выполнять точную команду и сразу видеть ответ. На практике оба способа постоянно работают рядом.

Claude Code тоже запускается командой

Когда вы вводите claude, агент начинает работу из текущей директории терминала. Поэтому сначала полезно понять, где находится терминал, и только потом запускать агента.

Терминал и рабочая папка: где запускать Claude Code - 1

Пять команд для повседневной работы

Пять действий. На первое время этого правда хватит. На Windows используем PowerShell, а на macOS и Linux - стандартный терминал. Короткие команды во всех трёх случаях выглядят одинаково.

КомандаРасшифровкаЧто делает
pwdprint working directory - "показать рабочую директорию"Печатает полный путь к папке, в которой сейчас находится терминал.
lslist - "список"Показывает файлы и папки в текущей директории.
cd demo-projectchange directory - "сменить директорию"Переходит в соседнюю папку demo-project.
cd .... означает родительскую директориюПоднимает терминал на одну папку выше.
claudeИмя запускаемой программыЗапускает Claude Code из текущей директории.

В PowerShell короткие команды - просто удобные псевдонимы: pwd вызывает Get-Location, ls - Get-ChildItem, а cd - Set-Location. Пугаться длинных названий не надо, запоминать их сейчас тоже. Но по ним хорошо видно смысл команды.

А теперь короткий прогон для macOS или Linux. Сначала терминал находится в папке projects, затем переходит в demo-project:

Терминал и рабочая папка: где запускать Claude Code - 2

Смотрите на последнюю часть пути: projects сменился на demo-project. Никакой магии. Команда cd не открыла новый файл и ничего не скопировала, она лишь переместила рабочую точку терминала в другую папку.

Клавиши, которые экономят время

Тут есть пара привычек, которые быстро экономят время. Терминал хранит историю ввода и помогает дополнять длинные имена:

  • - показывает предыдущую команду. Нажмите несколько раз, чтобы пройти дальше по истории;
  • - возвращает к более новым командам в истории;
  • Tab - дополняет имя команды, файла или папки. Например, наберите cd dem и нажмите Tab, чтобы получить cd demo-project;
  • и - двигают курсор внутри строки, чтобы исправить одну букву без повторного ввода всей команды;
  • Ctrl+C - обычно останавливает выполняющуюся команду, если вы запустили не то или процесс не заканчивается;
  • Ctrl+L - очищает видимую область терминала, но не удаляет файлы и историю команд.

Чаще всего пригодятся стрелка вверх и Tab. Первая возвращает уже введённую команду, вторая уменьшает количество ошибок в длинных путях.

Папка, директория и путь

Скопировали путь в команду, перешли в другую папку - и та же самая команда больше не работает. Дело не в опечатке: пути бывают двух сортов, и один из них зависит от того, где сейчас стоит терминал. Разберём оба.

Сначала о названиях, тут всё проще, чем кажется. Папка и директория означают одно и то же. В интерфейсе чаще говорят "папка", а в разговоре о терминале - "директория".

Путь - это адрес директории на диске. На Windows, macOS и Linux разделители выглядят по-разному, но логика одна: каждый фрагмент пути ведёт глубже. Сначала диск или корневая директория, затем пользователь, общая папка проектов и, наконец, конкретный проект.

Полный путь и абсолютный путь - это одно и то же, просто два названия. Такой путь начинается от самого верха файловой системы: от буквы диска на Windows или от символа / на macOS и Linux. Он приводит к одному месту независимо от того, в какой директории сейчас открыт терминал.

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

Допустим, внутри проекта лежит такой файл:

demo-project/
└── src/
    └── index.html

Терминал открыт в корне demo-project. Вот два способа добраться до одного и того же index.html:

СистемаПолный, или абсолютный путьОтносительный путь от demo-project
WindowsC:\Users\student\projects\demo-project\src\index.html.\src\index.html
macOS/Users/student/projects/demo-project/src/index.html./src/index.html
Linux/home/student/projects/demo-project/src/index.html./src/index.html

Точка . означает "текущая директория". Поэтому .\src\index.html и ./src/index.html читаются как "из текущей папки войти в src и взять index.html". Точку часто опускают: src\index.html и src/index.html означают то же самое.

Если подняться из demo-project в общую папку projects, прежний относительный путь уже не сработает. От нового места понадобится .\demo-project\src\index.html на Windows или ./demo-project/src/index.html на macOS и Linux. Полный путь при этом не изменится.

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

cd "C:\Users\student\My Projects\demo-project"

Почему важна текущая директория

Терминал всегда находится в какой-то директории, даже до первой команды. Её называют текущей или рабочей директорией. От неё команды начинают искать файлы и вычислять относительные пути.

Мышкой вы уже выбираете папку

Вам нужно скопировать файл из "Downloads" в "Секреты бухгалтерии" внутри "Documents". Вы копируете файл, проходите весь путь до нужной папки и только там жмёте "Вставить". Файл записывается на диск по одному конкретному адресу. Никто не вставляет файл "куда-то в Documents" - вы каждый раз доходите до точного места, просто делаете это мышкой и не задумываетесь.

В терминале работа та же, только вместо окна проводника - строка пути. Директорию по-прежнему выбираете вы, и уже из неё начинает работать агент.

Открыть терминал в корне диска C:\ технически можно. Хорошая ли это идея? Нет. И дело не в том, что Claude Code бросится читать каждый файл на диске - не бросится. Дело в том, что вы выбрали плохую исходную точку:

  • у агента нет ясной границы одного проекта - рядом системные файлы, пользовательские папки и другие ваши проекты;
  • относительные пути начинаются не там, где вы ожидаете - src внезапно уже не тот src;
  • по самому пути не понять, с каким проектом вы работаете сейчас.

Есть ещё одна мелочь, на которой легко споткнуться: открытый файл IDEA и текущая директория терминала - разные состояния. Вы можете смотреть файл одного проекта, а терминал всё ещё будет находиться в другом. Переключение вкладки редактора не переносит уже открытый терминал.

Точка старта

Корень проекта - это верхняя папка, внутри которой лежат связанные файлы одного проекта: код, настройки, документация и другие нужные материалы. Формальное определение можно не зубрить. Проще смотреть на роль: эта папка собирает один проект целиком.

Например, общая папка projects может хранить несколько независимых проектов:

projects/
├── demo-project/
│   ├── README.md
│   └── src/
└── calculator/
    ├── README.md
    └── src/

В этом дереве projects - контейнер. Корень первого проекта находится в demo-project, второго - в calculator. Запускать агента из общей папки можно технически, но полезного контекста там меньше: рядом лежат два несвязанных проекта.

На практике правило короткое: найдите верхнюю папку именно того проекта, который хотите изменить, откройте терминал там и запускайте инструменты из неё. Тогда команды, файлы и проектные инструкции оказываются в одной понятной области.

Слишком широкая папка размывает границы задачи

Агент изучает структуру и файлы вокруг задачи, чтобы понять контекст. Если запустить его слишком высоко, рядом окажутся и другие проекты. При нечётком запросе агент может решить, что они тоже связаны с задачей, и по ходу изменить то, что менять не просили.

В потоке работы легко увидеть ожидаемый результат и пропустить дополнительные правки в соседнем проекте. Поэтому правильная рабочая директория - не формальность, а понятная граница для агента.

Как устроен javarush-project

А теперь тот самый случай с JavaRush. Плагин IDEA загружает задачи в одно большое дерево javarush-project. Снаружи оно выглядит как один проект, но внутри есть важный поворот: каждая задача - отдельный проект.

Не один файл в общей куче, а свой проект: со своей папкой, своими файлами и собственными правилами для агента в .claude. Сколько задач, столько и проектов. буквально.

Упрощённо дерево выглядит так:

javarush-project/
└── src/en/javarush/claude/course/level01/
    ├── task05/
    │   ├── .claude/          # правила агента для task05
    │   └── arkanoid.html     # файл этой задачи
    └── task09/
        ├── .claude/          # отдельные правила для task09
        ├── arkanoid.html
        ├── clicker.html
        └── tictactoe.html

Те самые кабинеты из аналогии выше, только теперь с номерами на дверях: task05 и task09. У каждого свои документы и свои правила, а javarush-project - это здание целиком. Позвать помощника в холл недостаточно, нужно назвать кабинет, где лежит текущая работа.

Соседняя задача не дополняет контекст текущей. Файлы task05 не нужны для решения task09, а правила из одной папки не заменяют правила другой. Поэтому для работы с JavaRush корнем проекта становится папка конкретной задачи, не общий javarush-project.

Одна задача - один запуск

Решаете task09 - открывайте терминал в task09 и запускайте claude там. Общий корень курса для этого слишком широк.

Запускаем агента в папке задачи

Хорошая новость: длинный адрес руками печатать не придётся. IDEA может открыть терминал сразу в выбранной папке.

Ниже именно ручной способ. Да, Claude Code умеет сам переходить между директориями и запускать команды в нужной папке. Но разобраться один раз всё равно стоит: вы не зависите от подсказки агента и сразу видите границы текущей задачи.

  1. Найдите нужную taskXX в дереве проекта.
  2. Нажмите на папку задачи правой кнопкой мыши.
  3. Выберите Open In - Terminal.
  4. Проверьте текущую директорию командой pwd.
  5. Проверьте файлы командой ls.
  6. Убедитесь, что путь заканчивается нужной taskXX, затем выполните claude.
Терминал и рабочая папка: где запускать Claude Code - 3

IDEA иногда показывает вложенные package-папки одной строкой с точками, например en.javarush.claude.course.level01. Не перепечатывайте эту строку как путь на диске. Проще открыть терминал через Open In - Terminal или скопировать настоящий путь через Copy Path/Reference.

Если терминал уже открыт в javarush-project, можно перейти вручную:

cd src/en/javarush/claude/course/level01/task09
pwd
ls
claude

Новая задача - новая рабочая директория

Перешли с task05 на task09? Открытая сессия агента сама за вкладкой IDEA не переедет. Завершите её командой /exit, откройте терминал в новой задаче, снова проверьте путь и запустите claude.

Одна сессия - одна задача

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

Почему контекст сессии так важен и как им управлять, разберём дальше по курсу. Пока держитесь простого правила: новая задача - новая сессия.

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

Если агент запущен слишком высоко

Путь заканчивается на C:\, домашней папке или javarush-project вместо taskXX? Остановите сессию, перейдите в папку задачи и запустите агента заново. Сначала исправляем адрес, потом продолжаем работу.

Как это работает в связке с Claude Code

Соберём всё в одну картину. Терминал даёт Claude Code не только команду запуска, он ещё задаёт стартовую точку для структуры проекта, относительных путей и локальных инструкций. Текущая директория показывает, откуда начинается работа, а корень одного проекта даёт агенту связанный набор файлов без соседнего шума.

Дальше работают два следствия, о которых легко забыть в потоке. Открытая вкладка IDE не меняет директорию уже запущенной сессии, поэтому переход к другой задаче - это и новая директория, и отдельная сессия. А в javarush-project корень одного проекта лежит не сверху дерева, а на уровне конкретной taskXX.

На практике перед командой claude хватает трёх быстрых проверок:

  1. Посмотрите путь через pwd.
  2. Посмотрите файлы через ls.
  3. Убедитесь, что видите один нужный проект, и только потом запускайте агента.

И всё. Терминал здесь не усложняет работу, а делает невидимую настройку видимой: вы точно знаете, где находитесь и какой проект отдаёте агенту.