-
Notifications
You must be signed in to change notification settings - Fork 0
Hook Privacy
The Claude Code hook is registered globally in ~/.claude/settings.json, so
it fires on every Bash tool call across every Claude Code session — including
sessions unrelated to your engagement. Two gates decide whether an event
actually reaches the RedLog chain.
The hook makes a short (1s timeout) HTTP call to /api/recording before
sending anything. If RedLog is paused (Settings ▸ recording toggle, ⌘.
shortcut, or tray menu), the hook returns immediately.
Use recording pause to step away from the engagement without leaking
personal terminal activity.
Since v0.6.64 — previously a whitelist, but the default is inverted now because Claude Code tool calls are AI-mediated actions worth auditing by default.
Any cwd matching a path in the operator's exclusion list is skipped. Empty list = everything is logged (privacy-first because the operator opts paths out, not in).
Config lives at ~/.redlog/hook-config.json:
{
"excludedPaths": [
"~/Documents/personal",
"~/Desktop/hobby-projects",
"~/.claude"
]
}Settings ▸ 整合 exposes a UI with a native folder picker; edits write
straight through to the file. Legacy v0.6.59 watchPaths (whitelist) is
still honored for backward-compat and surfaces an amber banner in the UI so
it's obvious that a rule is narrowing the log.
-
Don't log personal Claude sessions — add
~/Documents,~/Downloads, wherever your personal work lives. -
Don't log RedLog development — add
~/Desktop/redlog(or your local clone) so working ON RedLog isn't captured as engagement activity. - Don't log secrets scan — add any folder you tour with Claude that has sensitive files you don't want quoted in event payloads.
When the hook DOES fire, it sends:
-
data.command— the Bashtool_input.command. -
data.output_preview— truncated to 500 chars, redaction applied. -
data.session_id— Claude Code session (pointer, not conversation body). -
data.transcript_path— points at~/.claude/projects/…/*.jsonlfor on-demand audit reference without copying content into the chain. -
data.cwd— the working directory the tool ran under.
The hook never stores raw conversation text. transcript_path is a pointer
— Anthropic-owned content stays in Anthropic-managed files; the RedLog chain
holds the auditable action + a reference. This keeps the chain small and
avoids ToS / privacy concerns around bulk-mirroring AI conversations.
-
hooks/claude-code-hook.sh— the hook script. -
src/main/index.tsipcMain.handle('hookConfig:*')— IPC surface. -
src/renderer/src/components/Settings.tsxHookWatchPathsPanel— UI.
Integration
Evidence
SSH / VPS
Extending
Privacy
Agent skill
Ops