К основному содержанию
хук официальный · GitHub

session-logger — хук для GitHub Copilot: что делает и как установить

Хук для GitHub Copilot записывает время старта и завершения сессий агента, рабочие каталоги и запросы пользователя в локальные JSON-файлы. Пригодится для аудита и сбора аналитики.

Установить в Claude Code · Вручную: положить файлы Все способы и платформы ↓
.claude/settings.json
Открыть на GitHub

Что делает session-logger

Хук отслеживает ключевые события агента кодинга GitHub Copilot: запуск сессии, её завершение и отправку пользовательских запросов. Данные пишутся локально в структурированном виде JSON. События сессий попадают в файл logs/copilot/session.log, а текст запросов — в logs/copilot/prompts.log.

Работу обеспечивают три bash-скрипта: log-session-start.sh, log-session-end.sh и log-prompt.sh. Для каждого вызова задан таймаут 5 секунд. При старте скрипт фиксирует точное время и рабочий каталог проекта. Уровень детализации управляется переменной окружения LOG_LEVEL, а при передаче SKIP_LOGGING=true запись полностью отключается.

Без добавления каталога logs/ в .gitignore конфиденциальные промпты легко случайно отправить в удалённый репозиторий. Скриптам также обязательно нужны права на запуск через chmod +x.

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

  • Вести локальный аудит действий агента кодинга
  • Отслеживать время начала и завершения рабочих сессий
  • Сохранять историю отправленных пользователем промптов в JSON
  • Отключать сбор логов через флаг SKIP_LOGGING=true при работе с приватным кодом

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

  • Напиши функцию валидации email в utils.py
  • Найди и исправь синтаксические ошибки в main.go
  • Обнови зависимости в package.json и запусти сборку

Как установить session-logger

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

.claude/settings.json

Блок hooks: событие (PreToolUse, PostToolUse, Stop…) → команда. Личные — ~/.claude/settings.json

По шагам, с командами для каждой платформы: Хуки Claude Code: что это, где настраивать и как запретить опасную команду

Вопросы о session-logger

Как установить session-logger в GitHub Copilot?

Скопируйте папку хука в .github/hooks/session-logger, создайте каталог mkdir -p logs/copilot и сделайте скрипты исполняемыми с помощью chmod +x .github/hooks/session-logger/*.sh. Затем зафиксируйте конфигурацию хуков в репозитории или укажите параметры в .claude/settings.json.

Что делает session-logger?

Он перехватывает события сессий GitHub Copilot и сохраняет время запуска, завершения, рабочую директорию и текст запросов в файлы session.log и prompts.log. Все записи формируются в формате JSON для дальнейшего аудита.

Как отключить запись логов или ограничить их только ошибками?

Для полного отключения логирования задайте переменную окружения SKIP_LOGGING=true. Если нужно фиксировать только сбои, укажите LOG_LEVEL=ERROR в конфигурации хука.

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

session-logger · MIT
---
name: 'Session Logger'
description: 'Logs all Copilot coding agent session activity for audit and analysis'
tags: ['logging', 'audit', 'analytics']
---

# Session Logger Hook

Comprehensive logging for GitHub Copilot coding agent sessions, tracking session starts, ends, and user prompts for audit trails and usage analytics.

## Overview

This hook provides detailed logging of Copilot coding agent activity:
- Session start/end times with working directory context
- User prompt submission events
- Configurable log levels

## Features

- **Session Tracking**: Log session start and end events
- **Prompt Logging**: Record when user prompts are submitted
- **Structured Logging**: JSON format for easy parsing
- **Privacy Aware**: Configurable to disable logging entirely

## Installation

1. Copy this hook folder to your repository's `.github/hooks/` directory:
   ```bash
   cp -r hooks/session-logger .github/hooks/
   ```

2. Create the logs directory:
   ```bash
   mkdir -p logs/copilot
   ```

3. Ensure scripts are executable:
   ```bash
   chmod +x .github/hooks/session-logger/*.sh
   ```

4. Commit the hook configuration to your repository's default branch

## Log Format

Session events are written to `logs/copilot/session.log` and prompt events to `logs/copilot/prompts.log` in JSON format:

```json
{"timestamp":"2024-01-15T10:30:00Z","event":"sessionStart","cwd":"/workspace/project"}
{"timestamp":"2024-01-15T10:35:00Z","event":"sessionEnd"}
```

## Privacy & Security

- Add `logs/` to `.gitignore` to avoid committing session data
- Use `LOG_LEVEL=ERROR` to only log errors
- Set `SKIP_LOGGING=true` environment variable to disable
- Logs are stored locally only


```json
{
  "version": 1,
  "hooks": {
    "sessionStart": [
      {
        "type": "command",
        "bash": ".github/hooks/session-logger/log-session-start.sh",
        "cwd": ".",
        "timeoutSec": 5
      }
    ],
    "sessionEnd": [
      {
        "type": "command",
        "bash": ".github/hooks/session-logger/log-session-end.sh",
        "cwd": ".",
        "timeoutSec": 5
      }
    ],
    "userPromptSubmitted": [
      {
        "type": "command",
        "bash": ".github/hooks/session-logger/log-prompt.sh",
        "cwd": ".",
        "env": {
          "LOG_LEVEL": "INFO"
        },
        "timeoutSec": 5
      }
    ]
  }
}

```

© github · MIT · github/awesome-copilot

Похожие хуки

Все хуки по теме «Настройка агента: память, контекст, субагенты» →
simple-notifications davila7 Отправляет системные оповещения в macOS и Linux, когда Claude Code завершает задачу или ожидает ввода от пользователя. 10 199установок update-search-year davila7 Хук добавляет текущий год к запросам WebSearch, если года в них нет. Пригодится, когда нужны свежие результаты, а не прошлогодние. 3 412установок lint-on-save davila7 Хук запускает линтер сразу после того, как агент изменил файл. ESLint, Pylint и RuboCop срабатывают сами, без ручного вызова. 3 235установок smart-formatting davila7 Автоматически форматирует код после правок агента с помощью Prettier, Black, gofmt, rustfmt или php-cs-fixer по расширению файла. 2 972установок dependency-checker davila7 Хук на PostToolUse: после правки файла зависимостей запускает аудит пакетов и показывает, что устарело или уязвимо. 2 314установок security-scanner davila7 Хук запускает проверку безопасности каждый раз, когда Claude правит или создаёт файл. Ищет уязвимости и захардкоженные секреты. 2 256установок

Из того же набора954

Весь набор →
ai-prompt-engineering-safety-best-practices Правило помогает формулировать запросы к ИИ с ясным контекстом, ограничениями и требованиями к формату. Оно также предлагает учитывать безопасность и предвзятость при создании и проверке промптов. ★ 40 451звёзд репо agents Правило задаёт стандарт для файлов кастомных агентов GitHub Copilot: какие поля обязательны, как настроить инструменты и переходы между агентами. ★ 40 451звёзд репо agent-skills Правило задаёт стандарты создания навыков для GitHub Copilot. Оно помогает правильно оформить файл SKILL.md, настроить триггеры активации и структурировать инструкции. ★ 40 451звёзд репо agent-safety Правило задаёт границы доступа к инструментам, проверки политик и аудит для кода с ИИ-агентами. Пригодится при работе с вызовом инструментов и мультиагентными системами. ★ 40 451звёзд репо session-auto-commit В конце сессии GitHub Copilot хук добавляет изменения в Git, создаёт коммит с отметкой времени и отправляет его в удалённый репозиторий. Это пригодится, если вы хотите сохранять работу автоматически. ★ 40 451звёзд репо secrets-scanner Сканирует изменённые за сессию файлы на утёкшие ключи и пароли перед коммитом. Пригодится, когда агент правит код быстро и легко тащит в него токен. ★ 40 451звёзд репо governance-audit Хук перехватывает промпты к GitHub Copilot и ищет опасные команды до их запуска агентом. Записывает события в локальный JSON-лог и блокирует рискованные действия при строгих настройках. ★ 40 451звёзд репо fix-broken-links Хук проверяет ссылки в изменённых веб-файлах после действий GitHub Copilot и предлагает исправления. Пригодится, чтобы находить битые URL и общие подписи вроде «нажмите здесь». ★ 40 451звёзд репо

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

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