Strix
Draft · awaiting reviewAutonomous AI penetration-testing agents that run offensive tools in a container sandbox and validate findings with a proof of concept.
Experimental: The package metadata marks the project as alpha. pyproject.toml L22, pyproject.toml#L22 at the checked commit
For Web and API testingWorks with Standalone (own model access)Maintained usestrix, last push 2026-10-18
AgentAn agent is a program with its own model access that works through a task on its own. by usestrix · read from the code at 55bc079 (v1.7.0) on 2026-10-19The date we last read the tool’s files. The code after “at” names the exact version (the git commit) we read; a newer version may differ. · Not run yet.Whether we have run the tool in our lab. “Did more than it said” means the run used rights its description does not name; “did no more than it said” means it stayed within them.
What the code shows, worst first. No run advice yet: the one word needs a read under the full rule.
Level 3. Network. The sandbox runs the Caido HTTP interception proxy as a listener on all interfaces, beyond contacting target URLs.
Level 3. Execution. The agent user is given passwordless sudo inside the sandbox on top of a free shell.
Level 3. Persistence. The installer appends a PATH export to the user's shell rc file, a persistence vector.
Level 2. Files. A user-chosen host directory is bind-mounted writable into the sandbox.
Level 2. Secrets. Reads several provider API-key environment variables.
Level 2. Approval. The skill instructs agents to always run the headless mode, which executes without per-step approval.
Before first useSettings for your AI client that limit the tool to the rights its task needs; derived from the code unless marked tested. derived from the code, not tested
- Run only against authorised targets, keep execution inside the Docker sandbox, and set STRIX_TELEMETRY=0 to turn off the default telemetry.
What the code can reach, 0 to 3 per right; a dashed point means no evidence, never zero. The three readings
Is it for you?
- Made for
Security testing for developers and security teams as an alternative to manual pentesting and static-analysis scanners.
- Use it when
- Detect and validate critical vulnerabilities in an application Web and API testing
- Automate bug-bounty research and generate proof-of-concept exploits Finding validation
- Run scans in CI/CD to block vulnerable code before it reaches production Code review and static analysis (SAST)
- Review source code white-box and exploit findings for a proof-of-concept Code review and static analysis (SAST)
- Not for
Run it only against systems you own or have explicit, written permission to test, and stay within the agreed scope.
- You need
- Docker installed and running to host the sandbox container
- An LLM API key from a supported provider (OpenAI, Anthropic, Google, etc.)
- Authorization to test the target systems
Install
linked, not distributed: the Field Guide does not bundle agents or MCP serversUpstream (linked)
curl -sSL https://strix.ai/install | bash export STRIX_LLM="openrouter/z-ai/glm-5.3" strix --target ./app-directory
Quoted from README.md#L84-91 at the pinned commit; a quotation, not a command to copy.
Run it with least privilege
- note
derived from the code, not tested in the lab; run only against authorised targets, keep execution inside the Docker sandbox, and set STRIX_TELEMETRY=0 to turn off the default telemetry
derived, not tested: proposed from the code analysis
The record · every value with its evidence
What we checked, and what we found.
Profile read at commit 55bc079 on 2026-10-25: 63 facts, each with its quoted line confirmed by script; not installed, not run in the lab.Each fact was read from the tool's files at the checked version and links to the line it comes from. Where nothing was found, the page says so instead of assuming “none”.
Selected by criteria v0.1, approved by Ilja Schlak: awaiting approval. Each section opens with the answer; the file and line of every fact follow it.
What it can change the capability groups as upstream groups them, worst first
Changes, runs commands, sends data out, according to the capabilities read.
The author states the repo publishes nine consumer skills for coding agents. README.md L135, README.md#L135 at the checked commit
Partly listed: The managed cloud CLI (strix cloud) and the local web viewer (strix view) are separate product surfaces, not agent tools, and are not listed as capability groups.
| Group | What it covers | Effect | On by default |
|---|---|---|---|
| shell (exec_command / write_stdin) | Runs shell commands and programs in the sandbox (nmap, ffuf, python3, agent-browser) through exec_command and write_stdin. README.md L2-4, strix/tools/shell/README.md#L2-4 at the checked commit | reads, changes, runs commands, sends data out | yes |
| Browser Exploitation | Runs an automated browser for testing XSS, CSRF, clickjacking and auth bypass flows. README.md L148, README.md#L148 at the checked commit | reads, runs commands, sends data out | yes |
| MCP connectors | Connects to user-listed MCP servers (stdio or http) and calls their tools during a run (list_mcps, call_mcp). README.md L325, README.md#L325 at the checked commit | reads, runs commands, sends data out | no, optional |
| HTTP Interception Proxy | Manipulates and analyses HTTP requests and responses through the Caido interception proxy. README.md L147, README.md#L147 at the checked commit | reads, changes, sends data out | yes |
| web_search | Runs real-time web searches through Exa or Perplexity (web_search). tool.py L321, strix/tools/web_search/tool.py#L321 at the checked commit | reads, sends data out | no, optional |
| apply_patch | Edits files in the sandbox through apply_patch, the agent's only first-class file-editing tool. README.md L2-3, strix/tools/apply_patch/README.md#L2-3 at the checked commit | changes | yes |
| Vulnerability Knowledge Base | Structures findings with CVSS scoring and OWASP classification. README.md L153, README.md#L153 at the checked commit | reads, changes | yes |
| Multi-agent orchestration | Runs teams of AI pentester agents that collaborate and scale. README.md L51, README.md#L51 at the checked commit | reads, changes | yes |
| threat_model | Gives the agents threat-model tools from strix.tools.threat_model. factory.py L65, strix/agents/factory.py#L65 at the checked commit | reads, changes | yes |
Where it sends data and who can connect to it
9 outside connections found in the files read: LLM provider, targets you name, PostHog, Scarf, Perplexity, PyPI, Strix Cloud (app.strix.ai), ghcr.io.
- LLM provider model provider, always. Agents send prompts to the configured model provider with the user's key. README.md L78, README.md#L78 at the checked commit
- targets you name your targets, always. Sends test traffic to the targets passed with --target. cli_args.py L137, strix/interface/cli_args.py#L137 at the checked commit
- PostHog telemetry, by default. Sends telemetry events to PostHog at https://us.i.posthog.com. posthog.py L26, strix/telemetry/posthog.py#L26 at the checked commit
- Scarf telemetry, by default. Sends telemetry events to Scarf at https://strix.gateway.scarf.sh. scarf.py L29, strix/telemetry/scarf.py#L29 at the checked commit
- Perplexity vendor API, if you turn it on. Sends web-search queries to the Perplexity chat completions API at api.perplexity.ai. tool.py L50, strix/tools/web_search/tool.py#L50 at the checked commit
- PyPI other, by default. Queries the PyPI JSON API for the latest strix-agent version. update_check.py L108, strix/interface/update_check.py#L108 at the checked commit
- Strix Cloud (app.strix.ai) vendor API, if you turn it on. Uses https://app.strix.ai as the default Strix relay URL (STRIX_APP_URL). settings.py L198, strix/config/settings.py#L198 at the checked commit
- ghcr.io download, by default. The installer names the sandbox image ghcr.io/usestrix/strix-sandbox:1.3.0. install.sh L7, scripts/install.sh#L7 at the checked commit
- Strix Cloud (app.strix.ai) vendor API, if you turn it on. strix cloud scans start --source uploads local code to app.strix.ai for a managed scan; --yes approves the upload. README.md L310-314, README.md#L310-314 at the checked commit
4 listeners in the files read.
- Caido listens on 0.0.0.0 at port ${CAIDO_PORT} inside the sandbox container: all network interfaces, sign-in not read, by default. docker-entrypoint.sh L41, containers/docker-entrypoint.sh#L41 at the checked commit
- Ports the sandbox container exposes are published on the host bound to 127.0.0.1, on a port Docker picks: this machine only (loopback), sign-in not read, by default. docker_client.py L217-219, strix/runtime/docker_client.py#L217-219 at the checked commit
- strix view binds to 127.0.0.1 by default; --host 0.0.0.0 serves it on all IPv4 interfaces: an address you choose, sign-in not read, in an optional mode. cli.py L51, strix/interface/viewer/cli.py#L51 at the checked commit
- The ChatGPT OAuth login uses a callback on localhost port 1455: this machine only (loopback), sign-in not read, in an optional mode. codex.py L44-45, strix/config/codex.py#L44-45 at the checked commit
Other connections not ruled out: read in the documentation and the cited code, not searched in full.
How it runs generated from the files read, never drawn by hand
The code is split into strix/agents (agent graph and prompts), strix/tools (proxy, browser, terminal, scanners), strix/runtime (Docker sandbox), strix/report (findings, SARIF), strix/interface (CLI/TUI) and containers/ (sandbox image). AGENTS.md L68, AGENTS.md#L68 at the checked commit
Your machine
Programs and files on the machine where you run the tool.
- strix CLI / TUI The strix command-line / TUI that configures and launches a scan. pyproject.toml L58, pyproject.toml#L58 at the checked commit
Container on your machine
Parts inside a container that the tool starts on your machine.
- Kali sandbox container A Kali Linux Docker container where the agents run offensive tools. Dockerfile L25, containers/Dockerfile#L25 at the checked commit
- Caido proxy A Caido instance the sandbox entrypoint starts inside the container, listening on port ${CAIDO_PORT}. docker-entrypoint.sh L41, containers/docker-entrypoint.sh#L41 at the checked commit
- Kali sandbox container The sandbox image installs nmap, sqlmap, nuclei, subfinder, naabu and ffuf. Dockerfile L54-55, containers/Dockerfile#L54-55 at the checked commit
- Kali sandbox container The sandbox image installs the secret scanners trufflehog and gitleaks. Dockerfile L180-189, containers/Dockerfile#L180-189 at the checked commit
Outside your machine
Remote services: vendor APIs, model providers, targets, telemetry endpoints. Data sent here leaves your machine.
- Target systems The systems under test: URLs, repos, domains, IPs, or API specs. cli_args.py L137, strix/interface/cli_args.py#L137 at the checked commit
- Strix Cloud / relay The Strix Cloud platform and viewer relay at app.strix.ai. settings.py L198, strix/config/settings.py#L198 at the checked commit
The six rights, read three waysThe six rights a tool can take (files, network, execution, secrets, persistence, approval), each read three ways and rated 0 to 3. 0 never means safe; “?” means no evidence. what the author says, what the code shows, what one lab run showed
Level 3 (privileged), read from the code. Not run in our lab yet.
0 contained · 1 scoped · 2 open · 3 privileged · ? no evidence · 0 never means safe · zero means: none declared (Declared), none found (Code), none observed (Lab)
Author says: the evidence
- Files · 2SKILL.md L83 author states a local target path is mounted writable so agents may modify it
- Network · 2README.md L374 author states Strix sends real traffic to whatever target the user points it at
- Execution · 2README.md L149 author declares a shell and command-execution capability for the agent
- Secrets · 1README.md L78 author states one LLM provider API key is needed
- Persistence · 2README.md L295 author states Strix writes its configuration to the home directory
- Approval · 2README.md L244 author documents a headless mode that runs with no interactive approval
Code shows: the evidence
- Files · 2SKILL.md L83 a user-chosen host directory is bind-mounted writable into the sandbox
- Network · 3docker-entrypoint.sh L41 the sandbox runs the Caido HTTP interception proxy as a listener on all interfaces, beyond contacting target URLs
docker_client.py L217-220 Docker publishes that port only on host interface 127.0.0.1 - Execution · 3Dockerfile L36 the agent user is given passwordless sudo inside the sandbox on top of a free shell
- Secrets · 2settings.py L38-189 reads several provider API-key environment variables
- Persistence · 3install.sh L213-218 the installer appends a PATH export to the user's shell rc file, a persistence vector
- Approval · 2SKILL.md L57 the skill instructs agents to always run the headless mode, which executes without per-step approval
Valid for commit 55bc079 (v1.7.0) · checked 2026-10-19 · method reach-v0.1The published rules we follow: how tools are selected, how their rights are read and rated, how a lab run is done.
Limits and risks what the files say that fits nowhere else, and what this reading does not cover
- The sandbox user has passwordless sudo. Dockerfile L36, containers/Dockerfile#L36 at the checked commit
- The sandbox container is created with the NET_ADMIN and NET_RAW capabilities. docker_client.py L228, strix/runtime/docker_client.py#L228 at the checked commit
- A local directory target is bind-mounted into the sandbox writable, so agents can modify it. cli_args.py L140, strix/interface/cli_args.py#L140 at the checked commit
- Telemetry is enabled by default via the STRIX_TELEMETRY setting. settings.py L151, strix/config/settings.py#L151 at the checked commit
- strix view binds to 127.0.0.1 and prints a tokened link that grants access to the run; the author says to share it carefully. README.md L193, README.md#L193 at the checked commit
- Without a VERSION setting, the installer looks up the latest usestrix/strix release tag through the GitHub API and installs that release. install.sh L77, scripts/install.sh#L77 at the checked commit
- The tokened strix view link authorizes the browser; anyone it is shared with can steer a live scan and browse run history. cli.py L96-97, strix/interface/viewer/cli.py#L96-97 at the checked commit
- The sandbox container resolves host.docker.internal to the Docker host gateway, which gives it a network path to the host machine. docker_client.py L232-233, strix/runtime/docker_client.py#L232-233 at the checked commit
- --max-budget sets a maximum LLM cost in USD at which the scan stops; the flag defaults to None. cli_args.py L278-287, strix/interface/cli_args.py#L278-287 at the checked commit
- Not covered: what it does at runtime. Other connections not ruled out: read in the documentation and the cited code, not searched in full.
What you need and what the documented installer does
| Kind | What |
|---|---|
| AI client | Standalone (own model access) |
| Container runtime | Docker installed and running to host the sandbox container. install.sh L181, scripts/install.sh#L181 at the checked commit |
| Model key | An LLM API key from a supported provider (OpenAI, Anthropic, Google, etc.). README.md L78, README.md#L78 at the checked commit |
| Authorisation | Authorization to test the target systems. README.md L374, README.md#L374 at the checked commit |
What the documented installer does
- The documented install pipes the script at https://strix.ai/install into bash. README.md L84, README.md#L84 at the checked commit
- The installer removes an older pipx install of strix-agent when it finds one. install.sh L120, scripts/install.sh#L120 at the checked commit
- The installer appends a '# strix' comment line to the detected shell config file. install.sh L216, scripts/install.sh#L216 at the checked commit
- Besides an old pipx install, the installer deletes any other strix file or symlink it finds on PATH. install.sh L117-125, scripts/install.sh#L117-125 at the checked commit
- The installer appends a line that puts its install directory on PATH (export PATH, or fish_add_path for fish) to the detected shell config file. install.sh L264-270, scripts/install.sh#L264-270 at the checked commit
Lab runs one run is an observation, not a benchmark
About this entry
- Type
- Agent · Offensive · works with Standalone (own model access)
- AutonomyHow much the tool decides on its own, from 0 (every step is yours) to 5 (runs a whole task unattended), as the author describes it.
- level 3 of 5
- Source
- github.com/usestrix/strix · Apache-2.0 · manifest
pyproject.toml - Version readThe install command installs exactly the version we checked (the pinned git commit), so what you get is what the card describes.
- 55bc079 · v1.7.0 · last upstream push 2026-10-18 · no release since the pinned commit (current v1.7.0)
- In the catalog
- listed · added 2026-10-19 · last checked 2026-10-19 · next check 2027-01-17 · fresh
- ScannersA scan of the tool's files with a scanner for malicious patterns. “Pending” means it has not run yet.
- cisco-skill-scanner: not run, pending
- Changes
- none since the entry was added on 2026-10-19
Disagree?
Dispute a value with evidence (file, line, commit): write to hello@readbeforerun.ai. A dispute is checked against the pinned commit; a changed value is logged under Changes.
How this entry was checked, and how to cite it
Selected by the published criteria (method v0.1). What the author says comes only from author statements; what the code shows comes from the code and manifests at commit 55bc079, each with one evidence line. A “?” means no evidence, never zero; zero never means safe.
The descriptive profile (what it does, can do, how it runs, what it needs) was read through the same isolated pipeline at commit 55bc079 on 2026-10-25: one reader proposed every fact with a quoted line, a script confirmed each quoted line (63 of 63), and a second reader checked each sentence against its lines. Where nothing was found, the page says so instead of assuming “none”.
Known issues and limits: remote server-side behaviour stays “?”; the lab is not your production; static analysis can miss runtime behaviour.
Placement, badges or fast tracks are not for sale. The author is employed by an IT consultancy; the company has no influence on selection, execution or result.
Cite this:
Ilja Schlak. "Strix". Agentic Security Field Guide, checked 2026-10-19, method reach-v0.1. https://readbeforerun.ai/catalog/usestrix-strix/For maintainers
Badge for your README (reach 3 · not run yet):
[](https://readbeforerun.ai/catalog/usestrix-strix/)Dispute a value with evidence (file, line, commit): write to hello@readbeforerun.ai. A dispute is checked against the pinned commit; a changed value is logged under Changes.
Claim the entry with a fieldguide.yaml in your repository: planned.
Other tools for the same task
Task: Web and API testing. The task pages compare every tool side by side.- Code showsWebapp Testing ChecklistDraft · awaiting review
Agent skill that walks an authorized web application test through the OWASP WSTG checklist and writes a findings report.
Can add autostart, users or keys · write outside the project · run shell commands or eval · +1 more · Approval: no evidence · not run yet · checked 2026-10-21
- Code showshackingBuddyGPTDraft · awaiting review
Open-source framework for building LLM-driven security-testing agents, with use cases for Linux privilege escalation and web API testing.
Can write outside the project · talk to any host · run shell commands or eval · +3 more · not run yet · checked 2026-10-19
- Code showsShannonDraft · awaiting review
Autonomous white-box AI penetration tester for web apps and APIs; reports only vulnerabilities it proves by exploitation.
Can bypass approval · write outside the project · talk to any host · +2 more · not run yet · checked 2026-10-19