Thanks for your interest in contributing to Claude Code Obsidian Logger!
- Fork the repository
- Clone your fork:
git clone https://github.com/paradoxcalm/claude-code-to-obsidian.git - Create a branch:
git checkout -b my-feature
hooks/ # Hook scripts (templates with __VAULT_PATH__ placeholder)
skills/ # SKILL.md templates (ru/en/zh)
templates/ # Obsidian note templates
tests/ # Test suite
docs/ # Translated READMEs
.claude/commands/ # Claude Code slash commands (/release)
install.sh # Installer
uninstall.sh # Uninstaller
global-claude.{ru,en,zh}.md # CLAUDE.md templates (appended to ~/.claude/CLAUDE.md)
vault-claude.{ru,en,zh}.md # Vault-specific CLAUDE.md templates
VERSION # Semver — single source of truth
CHANGELOG.md # Keep a Changelog format
bash tests/test-install.shTests create temporary directories and do not modify your real ~/.claude settings.
- Hook scripts must be fast — they run on every tool call / Claude response
- Fail silently — hooks should never block Claude Code (always
exit 0) - One node call per hook — minimize Node.js cold starts
- Sanitize all external input — SESSION_ID, CWD, tool names can contain anything
- Cross-platform — must work on Windows (Git Bash), macOS, and Linux
- If it affects hooks, ensure it reads from
.obsidian-logger.jsonconfig with a sensible default - If it modifies
settings.json, useprocess.envfor paths (never interpolate into JS strings) - Add tests for install/uninstall behavior
- Update all three READMEs (RU, EN, ZH) or note which ones need updating
- Run
bash tests/test-install.shand ensure all tests pass - Commit with a clear message
- Push to your fork and open a Pull Request
- Describe what changed and why
- Include your OS (Windows/macOS/Linux) and Node.js version
- Include the content of
~/.claude/settings.json(remove sensitive data) - Describe what you expected vs what happened
By contributing, you agree that your contributions will be licensed under the MIT License.