Skip to content

paradoxcalm/claude-code-to-obsidian

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Русский | English | 中文

License: MIT Platform Node.js

Claude Code → Obsidian Logger

Автоматическое логирование сессий Claude Code в Obsidian vault.

Работаешь с Claude Code в любом проекте — логи сессий автоматически сохраняются в Obsidian как markdown-заметки.

Что делает

Ты работаешь с Claude Code (любой проект)
    │
    ▼
PostToolUse hook → считает вызовы инструментов
    │
    ▼ (5+ вызовов = сессия существенная)
Stop hook → напоминает Claude записать подробный лог
    │
    ▼
Claude пишет лог → sessions/2024-03-15_14-30_my-project.md
    │
    ▼
SessionEnd hook → создаёт заготовку если Claude не записал
    │
    ▼
Открываешь Obsidian → видишь историю всех сессий

Что попадает в лог

  • Что было сделано (конкретные действия)
  • Какие файлы изменены
  • Ключевые решения и почему
  • TODO на следующий раз
  • Теги для поиска (#проект, #тема)

Требования

  • Node.js v18+
  • Claude Code CLI
  • Obsidian (рекомендуется, но не обязательно — логи это просто .md файлы)
  • Bash (Git Bash на Windows, встроенный на macOS/Linux)

Установка

git clone https://github.com/paradoxcalm/claude-code-to-obsidian.git
cd claude-obsidian-logger
bash install.sh

Установщик спросит путь к Obsidian vault и сделает всё автоматически:

  1. Создаст структуру папок в vault
  2. Установит скрипты-хуки
  3. Настроит ~/.claude/settings.json
  4. Добавит инструкции в ~/.claude/CLAUDE.md

С указанием пути сразу

bash install.sh ~/Documents/MyVault

Windows (Git Bash)

bash install.sh /c/Users/YourName/Documents/MyVault

Структура vault после установки

MyVault/
├── CLAUDE.md           # Правила работы с vault
├── .claude/
│   └── skills/
│       └── obsidian-logger/
│           └── SKILL.md    # Навыки работы с vault
├── sessions/           # ← Логи сессий (автоматически)
│   ├── 2024-03-15_14-30_my-project.md
│   ├── 2024-03-15_16-00_other-project.md
│   └── README.md
├── daily/              # Ежедневные заметки
├── notes/              # Заметки и идеи
├── projects/           # Проекты
├── archive/            # Архив
├── templates/          # Шаблоны (daily, meeting, project)
└── scripts/            # Скрипты хуков
    ├── log-session.sh
    ├── log-tools.sh
    └── session-reminder.sh

Как работают хуки

3 хука в ~/.claude/settings.json:

Хук Событие Что делает
PostToolUse Каждый вызов инструмента Пишет строку в .tool-log-ДАТА.txt (счётчик)
Stop Claude закончил ответ Если 5+ tool calls и лог не записан — впрыскивает напоминание [АВТОЛОГ] в контекст
SessionEnd Выход из сессии Создаёт заготовку лога если Claude не записал подробный

Умная логика:

  • Короткие сессии (< 5 tool calls) — не трогает, не спамит
  • Длинные сессии — Claude сам пишет подробный лог
  • Защита от дублей — маркер-файл .logged-SESSION_ID предотвращает повторные напоминания

Пример лога сессии

# Сессия: Добавлена авторизация через OAuth

**Дата:** 2024-03-15 14:30
**Проект:** my-app
**Директория:** /home/user/projects/my-app

## Что сделано
- Добавлен OAuth2 flow через Google
- Создана таблица users в БД
- Написаны тесты для auth middleware

## Изменённые файлы
- `src/auth/oauth.ts` — новый модуль авторизации
- `src/db/migrations/001_users.sql` — миграция
- `src/middleware/auth.ts` — middleware проверки токена
- `tests/auth.test.ts` — тесты

## Ключевые решения
- Выбран OAuth вместо JWT — требование заказчика
- Refresh token хранится в httpOnly cookie

## TODO
- [ ] Добавить авторизацию через GitHub
- [ ] Rate limiting на /auth endpoints

#сессия #my-app #auth #oauth

Конфигурация

После установки в vault создаётся .obsidian-logger.json:

{
  "min_tool_calls": 5,
  "log_retention_days": 30,
  "language": "ru",
  "canvas": false,
  "daily_notes": true,
  "stale_threshold_days": 5
}
Параметр По умолчанию Описание
min_tool_calls 5 Минимум tool calls для срабатывания напоминания
log_retention_days 30 Через сколько дней удалять технические файлы (.tool-log-*, .logged-*, .reminded-*)
language ru Язык логов и напоминаний (ru, en, zh)
canvas false Визуальная карта проекта в формате Obsidian Canvas (.canvas)
daily_notes true Автоматическая запись сессий в daily notes
stale_threshold_days 5 Дней без активности для предупреждения о "забытом" проекте
project_roots {} Ручная привязка путей к именам проектов
context_injection true Автоматическая инъекция контекста при старте сессии

Тесты

bash tests/test-install.sh

Тесты создают временные директории и не трогают ваш ~/.claude.

Удаление

bash uninstall.sh

Удаляет хуки из settings.json и секцию из CLAUDE.md. Vault и заметки не удаляются.

Рекомендуемые плагины Obsidian

  • Dataview — SQL-подобные запросы по заметкам
  • Tasks — управление задачами
  • Templater — продвинутые шаблоны

Полезные Dataview-запросы для сессий

Все сессии за последнюю неделю:

```dataview
TABLE file.cday as "Дата"
FROM "sessions"
WHERE file.cday >= date(today) - dur(7 days)
SORT file.cday DESC
```

Все TODO из сессий:

```dataview
TASK FROM "sessions"
WHERE !completed
```

FAQ

Q: Работает ли на macOS / Linux? A: Да. Скрипты написаны на bash + node, работают везде.

Q: Что если я не использую Obsidian? A: Логи — обычные .md файлы. Можно открывать в любом редакторе, VS Code, Notion (импорт), etc.

Q: Хуки замедляют Claude Code? A: Нет. Скрипты выполняются за ~50мс (запись строки в файл).

Q: Можно ли отключить временно? A: Удали или закомментируй хуки в ~/.claude/settings.json.

Q: Лог пишется на русском. Как сменить язык? A: Отредактируй ~/.claude/CLAUDE.md — замени "на русском" на нужный язык.

Лицензия

MIT

About

Automatic session logging from Claude Code to Obsidian vault. Hooks-based, zero config, supports EN/RU/ZH.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages