- Category
- Cybersecurity
- Rank
- No. 1483Tools index
Previous survey · No. 1457 ·
- Pricing
- Open Source
- Type
- TOOL
- Use case
- Security & Identity
- Interfaces
- CLI
- GitHub
- 19 stars
- Latest release
- v0.28.0
- Date
About
Stroq is a local, deterministic firewall that hooks into AI coding agents (Claude Code, Cursor, Codex, Copilot CLI, Windsurf, OpenClaw, MCP clients) to scan content the agent reads for injected instructions, taint the session, and block or ask before risky follow-up actions like shell execution, secret exfiltration, or external git pushes. It ships a built-in replay suite that tests the default policy against 13 real-world agent-hijacking incidents, all fully offline with no cloud dependency.
What it does
Stroq sits on the tool-call hooks that coding assistants already expose and remembers what each session has read. When the assistant later tries to run a command that matches text it picked up from a file, an issue or a server response, Stroq names that source and either stops the command or prompts the user. A second mode works backwards: it opens the transcripts Claude Code, Codex CLI and Cursor keep on disk and reports which credentials from the machine's key files already went to the model provider, printing names and file locations but never the values.
Why it's ranked here
The distinctive idea is provenance: judging a command by where it came from rather than by how it looks, since a malicious package install and a legitimate one are the same text. The default policy denies outbound use of any known credential value whatever the session state, and the project gates its own CI on a mutation fuzzer with a baseline of zero escapes. It is Apache 2.0, pre-1.0, and publishes a false-positive rate of 14.9% on 121 benign READMEs rather than claiming none. That candour, plus adapters for seven agents and an MCP proxy, makes it one of the more serious agent guardrails available.
What's good
Secrets are indexed as salted SHA-256 hashes, never stored in the clear, and the index ignores any credential file over 256 KB and keeps at most 2,000 entries. The attack command replays 21 scenarios, twelve drawn from public incidents such as the Sentry agentjacking and s1ngularity attacks, and exits nonzero if any one gets through, so a weakened policy fails a pipeline. The coverage report maps those scenarios to MITRE ATLAS techniques and marks most as not covered, with a stated limit for each. CI runs the suite on Linux, macOS and Windows and replays a demo for every agent adapter.
Tradeoffs
Five risky action classes, including network commands, reading secret files and pushing to external remotes, are allowed in a clean session and blocked only after a scan flags something, a choice the default policy explains in writing. Roughly one benign README in seven still trips a rule. The security policy lists known gaps: shell evasions built from quote splicing, patches whose text is never scanned, and a Windsurf hook that cannot see command output. Windows gets weaker file-permission guarantees. The optional MCP value-masking mode keeps a reversible dictionary of real values on disk. The docs disagree with themselves on small counts, such as how many synthetic scenarios exist.
How to use it well
Run the look-back report first: it needs no install and tells you whether credentials have already reached a provider. Then install the hooks for your agent and run the attack replay against your own policy in CI, so any loosening fails a build. Teams with many MCP servers can put the proxy in front of any client that launches local servers. Expect to clear a false-positive taint by hand now and then. For filesystem isolation, the launcher can wrap the agent in Anthropic's sandbox runtime when it is installed. It does not see injections typed straight into the chat.
Technical notes+
packages/cli/src/index.ts sends hook events around the terminal-safe output wrapper and, when its watchdog answers first, flushes stdout and stderr before exiting so an agent timeout cannot turn into an allow; its comments record that Windsurf treats any exit other than 2 as an allow and Codex reads exit 1 as a hook failure. packages/core/src/secrets/index.ts builds the index from four home credential files plus up to 32 project env files, hashing each value with a per-index salt; setting STROQ_SECRET_SOURCES_SEALED stops a sandboxed run rebuilding an empty index over the real one. policies/default.yaml is first-match-wins with a 0.6 taint threshold, and .github/workflows/ci.yml fails on any fuzz escape.
Observed
- License
- Apache-2.0 (LICENSE, package.json)
- Language
- TypeScript, requires Node.js 22 or later
- Packaging
- npm package @stroq/cli, runnable through npx without installing
- Interfaces
- CLI with per-agent hook entrypoints, plus a stdio MCP proxy
- Agent support
- Hooks for Claude Code, Cursor, Codex, Copilot CLI, Windsurf and Antigravity; a plugin for OpenClaw
- Platform support
- CI runs the test suite on Linux, macOS and Windows (.github/workflows/ci.yml)
- Runtime dependencies
- yaml and zod only (packages/cli/package.json)
- Maturity
- Pre-1.0; only the newest npm release is supported (SECURITY.md)
- Network behaviour
- README states the hooks make no network calls and send no telemetry
Read from README.md, package.json, LICENSE, docs/GUIDE.md, docs/COVERAGE.md, docs/BENCH.md, packages/cli/package.json, packages/cli/src/index.ts, packages/core/src/index.ts, packages/core/src/secrets/index.ts, policies/default.yaml, rules/stroq/STROQ-2026-00001-instruction-override.yaml, .github/workflows/ci.yml, SECURITY.md.
What it can do
Scan content read by AI coding agents for injected instructions
Content read by AI agent (files, web pages, tool output) → Detection of prompt injection attempts
Taint session state when malicious content is detected
Scan results → Tainted session flag
Block or prompt for confirmation before risky follow-up actions (shell execution, secret exfiltration, external git pushes)
Agent action request → Allow/block/ask decision
Run a built-in replay suite testing default policy against 13 documented real-world agent-hijacking incidents
Recorded attack scenarios → Pass/fail results per incident
Tags
Tech Stack
Media
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.