Show HN: Stroq – 코딩 에이전트의 작업 내용과 이유에 대한 로컬 감사
Stroq는 Claude Code, Codex 등 AI 코딩 에이전트의 세션을 로컬에서 분석하고 보안 위험을 감지하는 오픈소스 플랫폼입니다. 이 도구는 에이전트가 읽은 텍스트와 실행된 명령어 간의 인과관계를 추적하며, 민감한 키가 외부로 전송되는 것을 방지하기 위해 도구 호출을 실시간으로 검증합니다. 모든 데이터 처리는 로컬에서 이루어지며 계정 생성이나 원격 전송이 없어 프라이버시를 보장합니다. 사용자는 세션 재현(replay) 기능을 통해 과거 활동의 보안 상태를 점검하고, 규칙 기반의 사전 차단 및 승인 프로세스를 설정할 수 있습니다.
Stroq reads your own Claude Code and Codex sessions and shows how many commands came from text your agent read, and which keys left your machine.
An example: a made-up machine with made-up sessions, keys and hosts. Hoo is Stroq's owl. Your card shows your own sessions.
It reads your last 30 days of sessions, your key files and the folders your agent worked in; prints key names, never values; writes nothing but a small cache under ~/.stroq; and sends nothing. No account, no telemetry.
Every moment on the card has a stroq show line that prints the evidence behind it (npx @stroq/cli show 1). stroq help --all lists the other commands. Needs Node.js 22 or newer. Apache-2.0.
Stroq is a local security platform for AI coding agents: Claude Code, Cursor, Codex CLI and others. Its hooks judge every tool call before it runs. They deny curl | sh and outbound calls that carry a known secret from your machine, and they ask you first when a command repeats text the agent read, naming that text. The console shows which agents actually ask Stroq, and every decision with its reason. Sessions you already had can be checked too, without installing anything.
A made-up machine: made-up sessions, keys and hosts. Nothing was executed.
The fifth screen is Rules: try an action without running it, turn rules on with a preview and a test, the history with an undo, and the rules reference. Connected means Stroq's hooks are in the agent's settings, not that the agent calls them: Test hook and Live show that.
Screens from a build just before 0.30.0, reading a made-up machine: made-up sessions, keys and hosts. Nothing was executed.
Open the whole link it prints: it carries a key that is new each time the console starts. The console reads what Stroq already records on this machine. It changes an agent's settings or Stroq's policy only after you confirm a preview of that change; checks you run are saved under ~/.stroq.
It listens only on 127.0.0.1, needs no account and has no telemetry. Nothing in it starts your agent: Test hook runs the hook once, offline. Adding hooks from the console needs macOS or Linux; on Windows use stroq init. Details and limits: console guide.
Output of the 0.29.0 CLI on a made-up Claude Code transcript of the same story; the path is shortened.
stroq replay reads the agent's own transcript, so it works on sessions from before Stroq was installed: which content the agent read, and which later actions came out of it. --all goes through every session of the last 30 days and says which to open. Nothing runs and nothing is sent; the verdicts are today's policy's, not a record of what happened at the time.
stroq sent compares your Claude Code, Codex CLI and Cursor sessions with the credentials on your machine and says where each key went: sent to another company, maybe sent, seen by the AI, used with its own service, or blocked before it ran. It prints names and sources, never values. Start with the session secret scan walkthrough (no session yet? try it with a made-up key).
Made-up keys, the built CLI's output, trimmed:
stroq attack runs 36 attacks, from public reports and synthetic cells, against your policy in a throwaway home: on 0.30.0, 15 are denied, 21 are asked about, 0 pass through.
Thank you to everyone who contributes code, reports bugs, tests agent integrations, and improves the docs ❤️