Skip to content

v0.5.10

Choose a tag to compare

@ptrinh ptrinh released this 14 Nov 05:27

AI chat history.

  • The secrets check also reads what was typed into AI assistants' prompts, and the last 48 hours of their chat history: Claude Code, Codex, Gemini CLI, GitHub Copilot (CLI and chat in VS Code and the editors built on it), Cursor's agent, Cline / Roo Code / Kilo Code, and Aider. What it finds there is for information only: it never makes the check warn or fail. Images and other encoded strings are skipped. Policy: locations.ai_chats, ai_chat_hours (48), ai_chat_max_mb (256).
  • bordercheck chats lists every secret in all of that history: the item (kind, variable name, last 4 characters), where (file and line) and what it is (assistant, project, date, typed / sent / written by the assistant / printed by a command, and what the secret allows). Values are never printed, and none of it goes into a report. -hours N, -json. Exit status 1 when it finds something.

Keeping secrets out of Claude Code. bordercheck guard install adds three Claude Code hooks: a prompt that holds a secret is stopped before it is sent (#allow-secret lets it through); a command that prints secrets wholesale (env, cat .env, touchenv get…) is refused, with what to do instead; secrets in a command's output are replaced with ***REDACTED*** before the model sees them. Only the hooks' own entries in ~/.claude/settings.json are added or removed. bordercheck guard shows them, bordercheck guard uninstall removes them. Nothing sets them up on its own; the secrets summary and bordercheck chats suggest it.

Not read: Cursor's editor chats, opencode and Goose (SQLite), Windsurf (protobuf), Codex sessions compressed to .jsonl.zst. The hooks were tried with Claude Code on macOS; on Windows they are covered by unit tests only.