Claude Code умеет жить не только у вас в терминале, но и в репозитории: упоминаете @claude в задаче или пул-реквесте — агент разбирает код, вносит правки и пушит коммиты. Настраивается это одной командой, но у настройки есть неочевидные места, из-за которых чаще всего «не отвечает».
Что понадобится
- Права администратора репозитория — без них не установить приложение и не добавить секрет.
- Способ аутентификации — API-ключ Anthropic либо токен подписки. Второй генерируется командой
claude setup-tokenи работает на планах Pro, Max, Team и Enterprise. - GitHub CLI для быстрой установки: поставить и выполнить
gh auth login. Claude Code проверяет его наличие и предупреждает, если не находит.
1. Быстрая установка
В репозитории, который подключаете, запустите claude и выполните:
/install-github-app
Дальше агент делает всё сам: ставит приложение Claude на GitHub, заводит секрет для аутентификации, пушит ветку с файлами рабочих процессов и открывает браузер с готовым пул-реквестом. Остаётся создать его и влить.
Секрет сохраняется под именем ANTHROPIC_API_KEY для ключа или CLAUDE_CODE_OAUTH_TOKEN для токена подписки.
После установки приложения агент спросит, продолжать ли настройку рабочих процессов. Можно ответить «пока пропустить» — тогда установится только приложение, а вернуться к остальному получится повторным запуском той же команды.
2. Ручная установка
Если /install-github-app недоступен или нужен полный контроль над файлами:
- Поставить приложение Claude на репозиторий. Действию нужны три его разрешения: Contents, Issues и Pull requests — все на чтение и запись.
- Добавить секрет —
ANTHROPIC_API_KEY(ключ из консоли Anthropic) либоCLAUDE_CODE_OAUTH_TOKEN(токен подписки). В файле процесса они передаются в разные поля:anthropic_api_keyиclaude_code_oauth_tokenсоответственно. - Положить файл процесса в
.github/workflows/.
Минимальный рабочий процесс выглядит так:
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
jobs:
claude:
if: contains(github.event.comment.body, '@claude')
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
actions: read
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
Что здесь не шаблонное: id-token: write нужен для аутентификации приложением; actions: read позволяет агенту читать результаты сборки в пул-реквесте; условие if не даёт запускать раннер на каждом комментарии подряд.
3. Два режима, и они переключаются сами
Действие определяет режим по наличию поля prompt в конфигурации:
Интерактивный — поля prompt нет. Агент ждёт упоминания @claude в комментарии к задаче или пул-реквесту, в ревью либо в теле новой задачи. Ответ и ход работы он публикует комментарием там же.
Автоматический — поле prompt есть. Агент запускается сам, на любом событии GitHub, включая расписание. По умолчанию результат уходит в журнал запуска, а не в комментарий; чтобы он писал в пул-реквест, это нужно указать в самом задании.
4. Понять, кто может его запускать
Место, где чаще всего ломаются ожидания. Перед стартом действие проверяет инициатора двумя проверками, и любая из них останавливает запуск:
- Право записи. На событиях задач и пул-реквестов у пользователя должно быть право записи в репозиторий. Исключения задаются параметром
allowed_non_write_users— вместе со своимgithub_token. - Живой человек. На любом событии бот отклоняется, если не перечислен в
allowed_bots. Это защита от зацикливания. Проверка распространяется и на запуски по расписанию: GitHub приписывает их пользователю, который последним менял расписание, — и если это бот, его придётся внести в список.
ОсторожноУстанавливая приложение Claude, вы соглашаетесь на весь его набор разрешений — GitHub не позволяет принять часть. В набор входят Actions, Checks, Contents, Discussions, Issues, Members, Metadata, Pull requests, Repository hooks, Statuses и Workflows. Если организации нужны только те три, что реально использует действие, придётся сделать своё приложение GitHub — но тогда автоматическое ревью и веб-исправления работать не будут.
5. Что этим обычно делают
Задача → пул-реквест. Комментарий вида «@claude реализуй по описанию из задачи» — агент делает ветку, коммитит и открывает пул-реквест.
Правка по комментарию. «@claude почини TypeError в компоненте панели» прямо в обсуждении.
Ревью каждого пул-реквеста. Отдельный процесс, который ставит плагин ревью и оставляет замечания построчно. При установке через /install-github-app он предлагается вторым файлом.
Регулярные задачи по расписанию. Сводка вчерашних коммитов и открытых задач, проверка зависимостей, дежурные отчёты.
6. Держать расходы под контролем
Каждый запуск тратит две разные вещи: минуты GitHub Actions и токены модели (либо лимиты подписки, если аутентификация по OAuth-токену).
Что реально помогает:
- писать конкретные запросы — меньше кругов, меньше токенов;
- держать CLAUDE.md коротким: агент читает его при каждом запуске;
- ставить
--max-turnsвclaude_args— жёсткий потолок на число шагов; - задавать таймаут процесса, чтобы зависший запуск не крутился час;
- ограничивать параллельные запуски средствами GitHub.
Как оценить порядок сумм — калькулятор расхода и разбор цен.
Если агент не отвечает
Проверять по этому списку, в таком порядке:
- приложение Claude установлено на этот репозиторий;
- рабочие процессы в репозитории включены;
- секрет с ключом или токеном добавлен;
- в комментарии написано ровно
@claudeцелым словом — не/claudeи не@claude-bot; - у автора комментария есть право записи.
Отдельный симптом: сборка не запускается на коммитах агента. Причина в том, что GitHub не запускает процессы на коммитах, сделанных стандартным GITHUB_TOKEN. Уберите github_token: ${{ secrets.GITHUB_TOKEN }} из конфигурации, чтобы действие аутентифицировалось приложением Claude, либо передайте токен своего приложения.
Коротко о главном
- Быстрый путь —
/install-github-appиз Claude Code в нужном репозитории; нужны права администратора иgh auth login. - Режим определяется наличием
prompt: без него агент ждёт@claude, с ним запускается сам на любом событии. - Запускать может только пользователь с правом записи и только не-бот — это и есть самая частая причина «не отвечает».
- Приложение GitHub ставится целиком, набор разрешений принять частично нельзя.
- Расходы режутся точными запросами, коротким CLAUDE.md,
--max-turnsи таймаутом. - Сборка не идёт на коммитах агента — уберите передачу
GITHUB_TOKEN.
Дальше: команды и неинтерактивный режим, где взять API-ключ, плагины.