strix-agent 0.1.18__tar.gz → 0.3.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of strix-agent might be problematic. Click here for more details.

Files changed (126) hide show
  1. {strix_agent-0.1.18 → strix_agent-0.3.1}/PKG-INFO +95 -15
  2. {strix_agent-0.1.18 → strix_agent-0.3.1}/README.md +94 -14
  3. {strix_agent-0.1.18 → strix_agent-0.3.1}/pyproject.toml +2 -2
  4. strix_agent-0.3.1/strix/agents/StrixAgent/strix_agent.py +82 -0
  5. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/agents/StrixAgent/system_prompt.jinja +23 -10
  6. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/agents/base_agent.py +90 -10
  7. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/agents/state.py +23 -2
  8. strix_agent-0.3.1/strix/interface/cli.py +171 -0
  9. strix_agent-0.3.1/strix/interface/main.py +482 -0
  10. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/base_renderer.py +2 -2
  11. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/reporting_renderer.py +2 -1
  12. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/scan_info_renderer.py +17 -12
  13. strix_agent-0.1.18/strix/cli/app.py → strix_agent-0.3.1/strix/interface/tui.py +107 -31
  14. strix_agent-0.3.1/strix/interface/utils.py +435 -0
  15. strix_agent-0.3.1/strix/prompts/README.md +64 -0
  16. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/prompts/__init__.py +1 -1
  17. strix_agent-0.3.1/strix/prompts/cloud/.gitkeep +0 -0
  18. strix_agent-0.3.1/strix/prompts/custom/.gitkeep +0 -0
  19. strix_agent-0.3.1/strix/prompts/frameworks/fastapi.jinja +142 -0
  20. strix_agent-0.3.1/strix/prompts/frameworks/nextjs.jinja +126 -0
  21. strix_agent-0.3.1/strix/prompts/protocols/graphql.jinja +215 -0
  22. strix_agent-0.3.1/strix/prompts/reconnaissance/.gitkeep +0 -0
  23. strix_agent-0.3.1/strix/prompts/technologies/firebase_firestore.jinja +177 -0
  24. strix_agent-0.3.1/strix/prompts/technologies/supabase.jinja +189 -0
  25. strix_agent-0.3.1/strix/prompts/vulnerabilities/authentication_jwt.jinja +147 -0
  26. strix_agent-0.3.1/strix/prompts/vulnerabilities/broken_function_level_authorization.jinja +146 -0
  27. strix_agent-0.3.1/strix/prompts/vulnerabilities/business_logic.jinja +171 -0
  28. strix_agent-0.3.1/strix/prompts/vulnerabilities/csrf.jinja +174 -0
  29. strix_agent-0.3.1/strix/prompts/vulnerabilities/idor.jinja +195 -0
  30. strix_agent-0.3.1/strix/prompts/vulnerabilities/insecure_file_uploads.jinja +188 -0
  31. strix_agent-0.3.1/strix/prompts/vulnerabilities/mass_assignment.jinja +141 -0
  32. strix_agent-0.3.1/strix/prompts/vulnerabilities/path_traversal_lfi_rfi.jinja +142 -0
  33. strix_agent-0.3.1/strix/prompts/vulnerabilities/race_conditions.jinja +164 -0
  34. strix_agent-0.3.1/strix/prompts/vulnerabilities/rce.jinja +154 -0
  35. strix_agent-0.3.1/strix/prompts/vulnerabilities/sql_injection.jinja +151 -0
  36. strix_agent-0.3.1/strix/prompts/vulnerabilities/ssrf.jinja +135 -0
  37. strix_agent-0.3.1/strix/prompts/vulnerabilities/xss.jinja +169 -0
  38. strix_agent-0.3.1/strix/prompts/vulnerabilities/xxe.jinja +184 -0
  39. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/runtime/docker_runtime.py +28 -7
  40. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/runtime/runtime.py +4 -1
  41. strix_agent-0.3.1/strix/telemetry/__init__.py +4 -0
  42. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/telemetry}/tracer.py +21 -9
  43. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/agents_graph/agents_graph_actions.py +17 -12
  44. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/agents_graph/agents_graph_actions_schema.xml +10 -14
  45. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/executor.py +1 -1
  46. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/finish/finish_actions.py +1 -1
  47. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/registry.py +1 -1
  48. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/reporting/reporting_actions.py +1 -1
  49. strix_agent-0.1.18/strix/agents/StrixAgent/strix_agent.py +0 -72
  50. strix_agent-0.1.18/strix/cli/main.py +0 -702
  51. strix_agent-0.1.18/strix/prompts/vulnerabilities/authentication_jwt.jinja +0 -129
  52. strix_agent-0.1.18/strix/prompts/vulnerabilities/business_logic.jinja +0 -143
  53. strix_agent-0.1.18/strix/prompts/vulnerabilities/csrf.jinja +0 -168
  54. strix_agent-0.1.18/strix/prompts/vulnerabilities/idor.jinja +0 -164
  55. strix_agent-0.1.18/strix/prompts/vulnerabilities/race_conditions.jinja +0 -194
  56. strix_agent-0.1.18/strix/prompts/vulnerabilities/rce.jinja +0 -206
  57. strix_agent-0.1.18/strix/prompts/vulnerabilities/sql_injection.jinja +0 -215
  58. strix_agent-0.1.18/strix/prompts/vulnerabilities/ssrf.jinja +0 -168
  59. strix_agent-0.1.18/strix/prompts/vulnerabilities/xss.jinja +0 -221
  60. strix_agent-0.1.18/strix/prompts/vulnerabilities/xxe.jinja +0 -276
  61. {strix_agent-0.1.18 → strix_agent-0.3.1}/LICENSE +0 -0
  62. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/__init__.py +0 -0
  63. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/agents/StrixAgent/__init__.py +0 -0
  64. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/agents/__init__.py +0 -0
  65. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/__init__.py +0 -0
  66. /strix_agent-0.1.18/strix/cli/assets/cli.tcss → /strix_agent-0.3.1/strix/interface/assets/tui_styles.tcss +0 -0
  67. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/__init__.py +0 -0
  68. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/agents_graph_renderer.py +0 -0
  69. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/browser_renderer.py +0 -0
  70. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/file_edit_renderer.py +0 -0
  71. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/finish_renderer.py +0 -0
  72. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/notes_renderer.py +0 -0
  73. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/proxy_renderer.py +0 -0
  74. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/python_renderer.py +0 -0
  75. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/registry.py +0 -0
  76. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/terminal_renderer.py +0 -0
  77. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/thinking_renderer.py +0 -0
  78. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/user_message_renderer.py +0 -0
  79. {strix_agent-0.1.18/strix/cli → strix_agent-0.3.1/strix/interface}/tool_components/web_search_renderer.py +0 -0
  80. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/llm/__init__.py +0 -0
  81. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/llm/config.py +0 -0
  82. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/llm/llm.py +0 -0
  83. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/llm/memory_compressor.py +0 -0
  84. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/llm/request_queue.py +0 -0
  85. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/llm/utils.py +0 -0
  86. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/prompts/coordination/root_agent.jinja +0 -0
  87. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/runtime/__init__.py +0 -0
  88. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/runtime/tool_server.py +0 -0
  89. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/__init__.py +0 -0
  90. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/agents_graph/__init__.py +0 -0
  91. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/argument_parser.py +0 -0
  92. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/browser/__init__.py +0 -0
  93. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/browser/browser_actions.py +0 -0
  94. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/browser/browser_actions_schema.xml +0 -0
  95. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/browser/browser_instance.py +0 -0
  96. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/browser/tab_manager.py +0 -0
  97. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/file_edit/__init__.py +0 -0
  98. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/file_edit/file_edit_actions.py +0 -0
  99. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/file_edit/file_edit_actions_schema.xml +0 -0
  100. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/finish/__init__.py +0 -0
  101. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/finish/finish_actions_schema.xml +0 -0
  102. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/notes/__init__.py +0 -0
  103. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/notes/notes_actions.py +0 -0
  104. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/notes/notes_actions_schema.xml +0 -0
  105. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/proxy/__init__.py +0 -0
  106. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/proxy/proxy_actions.py +0 -0
  107. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/proxy/proxy_actions_schema.xml +0 -0
  108. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/proxy/proxy_manager.py +0 -0
  109. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/python/__init__.py +0 -0
  110. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/python/python_actions.py +0 -0
  111. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/python/python_actions_schema.xml +0 -0
  112. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/python/python_instance.py +0 -0
  113. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/python/python_manager.py +0 -0
  114. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/reporting/__init__.py +0 -0
  115. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/reporting/reporting_actions_schema.xml +0 -0
  116. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/terminal/__init__.py +0 -0
  117. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/terminal/terminal_actions.py +0 -0
  118. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/terminal/terminal_actions_schema.xml +0 -0
  119. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/terminal/terminal_manager.py +0 -0
  120. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/terminal/terminal_session.py +0 -0
  121. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/thinking/__init__.py +0 -0
  122. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/thinking/thinking_actions.py +0 -0
  123. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/thinking/thinking_actions_schema.xml +0 -0
  124. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/web_search/__init__.py +0 -0
  125. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/web_search/web_search_actions.py +0 -0
  126. {strix_agent-0.1.18 → strix_agent-0.3.1}/strix/tools/web_search/web_search_actions_schema.xml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: strix-agent
3
- Version: 0.1.18
3
+ Version: 0.3.1
4
4
  Summary: Open-source AI Hackers for your apps
5
5
  License: Apache-2.0
6
6
  Keywords: cybersecurity,security,vulnerability,scanner,pentest,agent,ai,cli
@@ -44,10 +44,11 @@ Description-Content-Type: text/markdown
44
44
 
45
45
  ### Open-source AI hackers for your apps
46
46
 
47
+ [![Strix](https://img.shields.io/badge/Strix-usestrix.com-1a1a1a.svg)](https://usestrix.com)
47
48
  [![Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
48
- [![Vercel AI Accelerator 2025](https://img.shields.io/badge/Vercel%20AI-Accelerator%202025-000000?style=flat&logo=vercel)](https://vercel.com/ai-accelerator)
49
- [![Status: Alpha](https://img.shields.io/badge/status-alpha-orange.svg)](https://github.com/usestrix/strix)
50
-
49
+ [![Discord](https://img.shields.io/badge/Discord-join-5865F2?logo=discord&logoColor=white)](https://discord.gg/J48Fzuh7)
50
+ [![PyPI Downloads](https://static.pepy.tech/personalized-badge/strix-agent?period=total&units=INTERNATIONAL_SYSTEM&left_color=GRAY&right_color=BLACK&left_text=Downloads)](https://pepy.tech/projects/strix-agent)
51
+ [![GitHub stars](https://img.shields.io/github/stars/usestrix/strix.svg?style=social&label=Star)](https://github.com/usestrix/strix)
51
52
  </div>
52
53
 
53
54
  <div align="center">
@@ -60,8 +61,30 @@ Description-Content-Type: text/markdown
60
61
 
61
62
  Strix are autonomous AI agents that act just like real hackers - they run your code dynamically, find vulnerabilities, and validate them through actual exploitation. Built for developers and security teams who need fast, accurate security testing without the overhead of manual pentesting or the false positives of static analysis tools.
62
63
 
64
+ - **Full hacker toolkit** out of the box
65
+ - **Teams of agents** that collaborate and scale
66
+ - **Real validation** via exploitation and PoC, not false positives
67
+ - **Developer‑first** CLI with actionable reports
68
+ - **Auto‑fix & reporting** to accelerate remediation
69
+
70
+ ---
71
+
72
+ ### 🎯 Use Cases
73
+
74
+ - Detect and validate critical vulnerabilities in your applications.
75
+ - Get penetration tests done in hours, not weeks, with compliance reports.
76
+ - Automate bug bounty research and generate PoCs for faster reporting.
77
+ - Run tests in CI/CD to block vulnerabilities before reaching production.
78
+
79
+ ---
80
+
63
81
  ### 🚀 Quick Start
64
82
 
83
+ Prerequisites:
84
+ - Docker (running)
85
+ - Python 3.12+
86
+ - An LLM provider key (or a local LLM)
87
+
65
88
  ```bash
66
89
  # Install
67
90
  pipx install strix-agent
@@ -74,12 +97,11 @@ export LLM_API_KEY="your-api-key"
74
97
  strix --target ./app-directory
75
98
  ```
76
99
 
77
- ## Why Use Strix
100
+ First run pulls the sandbox Docker image. Results are saved under `agent_runs/<run-name>`.
101
+
102
+ ### ☁️ Cloud Hosted
78
103
 
79
- - **Full Hacker Arsenal** - All the tools a professional hacker needs, built into the agents
80
- - **Real Validation** - Dynamic testing and actual exploitation, thus much fewer false positives
81
- - **Developer-First** - Seamlessly integrates into existing development workflows
82
- - **Auto-Fix & Reporting** - Automated patching with detailed remediation and security reports
104
+ Want to skip the setup? Try our cloud-hosted version: **[usestrix.com](https://usestrix.com)**
83
105
 
84
106
  ## ✨ Features
85
107
 
@@ -122,8 +144,17 @@ strix --target https://github.com/org/repo
122
144
  # Web application assessment
123
145
  strix --target https://your-app.com
124
146
 
125
- # Focused testing
147
+ # Multi-target white-box testing (source code + deployed app)
148
+ strix -t https://github.com/org/app -t https://your-app.com
149
+
150
+ # Test multiple environments simultaneously
151
+ strix -t https://dev.your-app.com -t https://staging.your-app.com -t https://prod.your-app.com
152
+
153
+ # Focused testing with instructions
126
154
  strix --target api.your-app.com --instruction "Prioritize authentication and authorization testing"
155
+
156
+ # Testing with credentials
157
+ strix --target https://your-app.com --instruction "Test with credentials: testuser/testpass. Focus on privilege escalation and access control bypasses."
127
158
  ```
128
159
 
129
160
  ### ⚙️ Configuration
@@ -139,6 +170,41 @@ export PERPLEXITY_API_KEY="your-api-key" # for search capabilities
139
170
 
140
171
  [📚 View supported AI models](https://docs.litellm.ai/docs/providers)
141
172
 
173
+ ### 🤖 Headless Mode
174
+
175
+ Run Strix programmatically without interactive UI using the `-n/--non-interactive` flag—perfect for servers and automated jobs. The CLI prints real-time vulnerability findings, and the final report before exiting. Exits with non-zero code when vulnerabilities are found.
176
+
177
+ ```bash
178
+ strix -n --target https://your-app.com --instruction "Focus on authentication and authorization vulnerabilities"
179
+ ```
180
+
181
+ ### 🔄 CI/CD (GitHub Actions)
182
+
183
+ Strix can be added to your pipeline to run a security test on pull requests with a lightweight GitHub Actions workflow:
184
+
185
+ ```yaml
186
+ name: strix-penetration-test
187
+
188
+ on:
189
+ pull_request:
190
+
191
+ jobs:
192
+ security-scan:
193
+ runs-on: ubuntu-latest
194
+ steps:
195
+ - uses: actions/checkout@v4
196
+
197
+ - name: Install Strix
198
+ run: pipx install strix-agent
199
+
200
+ - name: Run Strix
201
+ env:
202
+ STRIX_LLM: ${{ secrets.STRIX_LLM }}
203
+ LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
204
+
205
+ run: strix -n -t ./
206
+ ```
207
+
142
208
  ## 🏆 Enterprise Platform
143
209
 
144
210
  Our managed platform provides:
@@ -150,26 +216,40 @@ Our managed platform provides:
150
216
  - **🔌 Third-Party Integrations**
151
217
  - **🎯 Enterprise Support**
152
218
 
153
- [**Get Enterprise Demo →**](https://form.typeform.com/to/ljtvl6X0)
219
+ [**Get Enterprise Demo →**](https://usestrix.com)
154
220
 
155
221
  ## 🔒 Security Architecture
156
222
 
157
223
  - **Container Isolation** - All testing in sandboxed Docker environments
158
224
  - **Local Processing** - Testing runs locally, no data sent to external services
159
225
 
160
- > [!NOTE]
161
- > Strix is currently in Alpha. Expect rapid updates and improvements.
162
-
163
226
  > [!WARNING]
164
227
  > Only test systems you own or have permission to test. You are responsible for using Strix ethically and legally.
165
228
 
229
+ ## 🤝 Contributing
230
+
231
+ We welcome contributions from the community! There are several ways to contribute:
232
+
233
+ ### Code Contributions
234
+ See our [Contributing Guide](CONTRIBUTING.md) for details on:
235
+ - Setting up your development environment
236
+ - Running tests and quality checks
237
+ - Submitting pull requests
238
+ - Code style guidelines
239
+
240
+ ### Prompt Modules Collection
241
+ Help expand our collection of specialized prompt modules for AI agents:
242
+ - Advanced testing techniques for vulnerabilities, frameworks, and technologies
243
+ - See [Prompt Modules Documentation](strix/prompts/README.md) for guidelines
244
+ - Submit via [pull requests](https://github.com/usestrix/strix/pulls) or [issues](https://github.com/usestrix/strix/issues)
245
+
166
246
  ## 🌟 Support the Project
167
247
 
168
248
  **Love Strix?** Give us a ⭐ on GitHub!
169
249
 
170
250
  ## 👥 Join Our Community
171
251
 
172
- Have questions? Found a bug? Want to contribute? **[Join our Discord!](https://discord.gg/yduEyduBsp)**
252
+ Have questions? Found a bug? Want to contribute? **[Join our Discord!](https://discord.gg/J48Fzuh7)**
173
253
 
174
254
  </div>
175
255
 
@@ -4,10 +4,11 @@
4
4
 
5
5
  ### Open-source AI hackers for your apps
6
6
 
7
+ [![Strix](https://img.shields.io/badge/Strix-usestrix.com-1a1a1a.svg)](https://usestrix.com)
7
8
  [![Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
8
- [![Vercel AI Accelerator 2025](https://img.shields.io/badge/Vercel%20AI-Accelerator%202025-000000?style=flat&logo=vercel)](https://vercel.com/ai-accelerator)
9
- [![Status: Alpha](https://img.shields.io/badge/status-alpha-orange.svg)](https://github.com/usestrix/strix)
10
-
9
+ [![Discord](https://img.shields.io/badge/Discord-join-5865F2?logo=discord&logoColor=white)](https://discord.gg/J48Fzuh7)
10
+ [![PyPI Downloads](https://static.pepy.tech/personalized-badge/strix-agent?period=total&units=INTERNATIONAL_SYSTEM&left_color=GRAY&right_color=BLACK&left_text=Downloads)](https://pepy.tech/projects/strix-agent)
11
+ [![GitHub stars](https://img.shields.io/github/stars/usestrix/strix.svg?style=social&label=Star)](https://github.com/usestrix/strix)
11
12
  </div>
12
13
 
13
14
  <div align="center">
@@ -20,8 +21,30 @@
20
21
 
21
22
  Strix are autonomous AI agents that act just like real hackers - they run your code dynamically, find vulnerabilities, and validate them through actual exploitation. Built for developers and security teams who need fast, accurate security testing without the overhead of manual pentesting or the false positives of static analysis tools.
22
23
 
24
+ - **Full hacker toolkit** out of the box
25
+ - **Teams of agents** that collaborate and scale
26
+ - **Real validation** via exploitation and PoC, not false positives
27
+ - **Developer‑first** CLI with actionable reports
28
+ - **Auto‑fix & reporting** to accelerate remediation
29
+
30
+ ---
31
+
32
+ ### 🎯 Use Cases
33
+
34
+ - Detect and validate critical vulnerabilities in your applications.
35
+ - Get penetration tests done in hours, not weeks, with compliance reports.
36
+ - Automate bug bounty research and generate PoCs for faster reporting.
37
+ - Run tests in CI/CD to block vulnerabilities before reaching production.
38
+
39
+ ---
40
+
23
41
  ### 🚀 Quick Start
24
42
 
43
+ Prerequisites:
44
+ - Docker (running)
45
+ - Python 3.12+
46
+ - An LLM provider key (or a local LLM)
47
+
25
48
  ```bash
26
49
  # Install
27
50
  pipx install strix-agent
@@ -34,12 +57,11 @@ export LLM_API_KEY="your-api-key"
34
57
  strix --target ./app-directory
35
58
  ```
36
59
 
37
- ## Why Use Strix
60
+ First run pulls the sandbox Docker image. Results are saved under `agent_runs/<run-name>`.
61
+
62
+ ### ☁️ Cloud Hosted
38
63
 
39
- - **Full Hacker Arsenal** - All the tools a professional hacker needs, built into the agents
40
- - **Real Validation** - Dynamic testing and actual exploitation, thus much fewer false positives
41
- - **Developer-First** - Seamlessly integrates into existing development workflows
42
- - **Auto-Fix & Reporting** - Automated patching with detailed remediation and security reports
64
+ Want to skip the setup? Try our cloud-hosted version: **[usestrix.com](https://usestrix.com)**
43
65
 
44
66
  ## ✨ Features
45
67
 
@@ -82,8 +104,17 @@ strix --target https://github.com/org/repo
82
104
  # Web application assessment
83
105
  strix --target https://your-app.com
84
106
 
85
- # Focused testing
107
+ # Multi-target white-box testing (source code + deployed app)
108
+ strix -t https://github.com/org/app -t https://your-app.com
109
+
110
+ # Test multiple environments simultaneously
111
+ strix -t https://dev.your-app.com -t https://staging.your-app.com -t https://prod.your-app.com
112
+
113
+ # Focused testing with instructions
86
114
  strix --target api.your-app.com --instruction "Prioritize authentication and authorization testing"
115
+
116
+ # Testing with credentials
117
+ strix --target https://your-app.com --instruction "Test with credentials: testuser/testpass. Focus on privilege escalation and access control bypasses."
87
118
  ```
88
119
 
89
120
  ### ⚙️ Configuration
@@ -99,6 +130,41 @@ export PERPLEXITY_API_KEY="your-api-key" # for search capabilities
99
130
 
100
131
  [📚 View supported AI models](https://docs.litellm.ai/docs/providers)
101
132
 
133
+ ### 🤖 Headless Mode
134
+
135
+ Run Strix programmatically without interactive UI using the `-n/--non-interactive` flag—perfect for servers and automated jobs. The CLI prints real-time vulnerability findings, and the final report before exiting. Exits with non-zero code when vulnerabilities are found.
136
+
137
+ ```bash
138
+ strix -n --target https://your-app.com --instruction "Focus on authentication and authorization vulnerabilities"
139
+ ```
140
+
141
+ ### 🔄 CI/CD (GitHub Actions)
142
+
143
+ Strix can be added to your pipeline to run a security test on pull requests with a lightweight GitHub Actions workflow:
144
+
145
+ ```yaml
146
+ name: strix-penetration-test
147
+
148
+ on:
149
+ pull_request:
150
+
151
+ jobs:
152
+ security-scan:
153
+ runs-on: ubuntu-latest
154
+ steps:
155
+ - uses: actions/checkout@v4
156
+
157
+ - name: Install Strix
158
+ run: pipx install strix-agent
159
+
160
+ - name: Run Strix
161
+ env:
162
+ STRIX_LLM: ${{ secrets.STRIX_LLM }}
163
+ LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
164
+
165
+ run: strix -n -t ./
166
+ ```
167
+
102
168
  ## 🏆 Enterprise Platform
103
169
 
104
170
  Our managed platform provides:
@@ -110,25 +176,39 @@ Our managed platform provides:
110
176
  - **🔌 Third-Party Integrations**
111
177
  - **🎯 Enterprise Support**
112
178
 
113
- [**Get Enterprise Demo →**](https://form.typeform.com/to/ljtvl6X0)
179
+ [**Get Enterprise Demo →**](https://usestrix.com)
114
180
 
115
181
  ## 🔒 Security Architecture
116
182
 
117
183
  - **Container Isolation** - All testing in sandboxed Docker environments
118
184
  - **Local Processing** - Testing runs locally, no data sent to external services
119
185
 
120
- > [!NOTE]
121
- > Strix is currently in Alpha. Expect rapid updates and improvements.
122
-
123
186
  > [!WARNING]
124
187
  > Only test systems you own or have permission to test. You are responsible for using Strix ethically and legally.
125
188
 
189
+ ## 🤝 Contributing
190
+
191
+ We welcome contributions from the community! There are several ways to contribute:
192
+
193
+ ### Code Contributions
194
+ See our [Contributing Guide](CONTRIBUTING.md) for details on:
195
+ - Setting up your development environment
196
+ - Running tests and quality checks
197
+ - Submitting pull requests
198
+ - Code style guidelines
199
+
200
+ ### Prompt Modules Collection
201
+ Help expand our collection of specialized prompt modules for AI agents:
202
+ - Advanced testing techniques for vulnerabilities, frameworks, and technologies
203
+ - See [Prompt Modules Documentation](strix/prompts/README.md) for guidelines
204
+ - Submit via [pull requests](https://github.com/usestrix/strix/pulls) or [issues](https://github.com/usestrix/strix/issues)
205
+
126
206
  ## 🌟 Support the Project
127
207
 
128
208
  **Love Strix?** Give us a ⭐ on GitHub!
129
209
 
130
210
  ## 👥 Join Our Community
131
211
 
132
- Have questions? Found a bug? Want to contribute? **[Join our Discord!](https://discord.gg/yduEyduBsp)**
212
+ Have questions? Found a bug? Want to contribute? **[Join our Discord!](https://discord.gg/J48Fzuh7)**
133
213
 
134
214
  </div>
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "strix-agent"
3
- version = "0.1.18"
3
+ version = "0.3.1"
4
4
  description = "Open-source AI Hackers for your apps"
5
5
  authors = ["Strix <hi@usestrix.com>"]
6
6
  readme = "README.md"
@@ -39,7 +39,7 @@ include = [
39
39
  ]
40
40
 
41
41
  [tool.poetry.scripts]
42
- strix = "strix.cli.main:main"
42
+ strix = "strix.interface.main:main"
43
43
 
44
44
  [tool.poetry.dependencies]
45
45
  python = "^3.12"
@@ -0,0 +1,82 @@
1
+ from typing import Any
2
+
3
+ from strix.agents.base_agent import BaseAgent
4
+ from strix.llm.config import LLMConfig
5
+
6
+
7
+ class StrixAgent(BaseAgent):
8
+ max_iterations = 300
9
+
10
+ def __init__(self, config: dict[str, Any]):
11
+ default_modules = []
12
+
13
+ state = config.get("state")
14
+ if state is None or (hasattr(state, "parent_id") and state.parent_id is None):
15
+ default_modules = ["root_agent"]
16
+
17
+ self.default_llm_config = LLMConfig(prompt_modules=default_modules)
18
+
19
+ super().__init__(config)
20
+
21
+ async def execute_scan(self, scan_config: dict[str, Any]) -> dict[str, Any]:
22
+ user_instructions = scan_config.get("user_instructions", "")
23
+ targets = scan_config.get("targets", [])
24
+
25
+ repositories = []
26
+ local_code = []
27
+ urls = []
28
+
29
+ for target in targets:
30
+ target_type = target["type"]
31
+ details = target["details"]
32
+ workspace_subdir = details.get("workspace_subdir")
33
+ workspace_path = f"/workspace/{workspace_subdir}" if workspace_subdir else "/workspace"
34
+
35
+ if target_type == "repository":
36
+ repo_url = details["target_repo"]
37
+ cloned_path = details.get("cloned_repo_path")
38
+ repositories.append(
39
+ {
40
+ "url": repo_url,
41
+ "workspace_path": workspace_path if cloned_path else None,
42
+ }
43
+ )
44
+
45
+ elif target_type == "local_code":
46
+ original_path = details.get("target_path", "unknown")
47
+ local_code.append(
48
+ {
49
+ "path": original_path,
50
+ "workspace_path": workspace_path,
51
+ }
52
+ )
53
+
54
+ elif target_type == "web_application":
55
+ urls.append(details["target_url"])
56
+
57
+ task_parts = []
58
+
59
+ if repositories:
60
+ task_parts.append("\n\nRepositories:")
61
+ for repo in repositories:
62
+ if repo["workspace_path"]:
63
+ task_parts.append(f"- {repo['url']} (available at: {repo['workspace_path']})")
64
+ else:
65
+ task_parts.append(f"- {repo['url']}")
66
+
67
+ if local_code:
68
+ task_parts.append("\n\nLocal Codebases:")
69
+ task_parts.extend(
70
+ f"- {code['path']} (available at: {code['workspace_path']})" for code in local_code
71
+ )
72
+
73
+ if urls:
74
+ task_parts.append("\n\nURLs:")
75
+ task_parts.extend(f"- {url}" for url in urls)
76
+
77
+ task_description = " ".join(task_parts)
78
+
79
+ if user_instructions:
80
+ task_description += f"\n\nSpecial instructions: {user_instructions}"
81
+
82
+ return await self.agent_loop(task=task_description)
@@ -19,11 +19,9 @@ INTER-AGENT MESSAGES:
19
19
  - NEVER echo inter_agent_message or agent_completion_report XML content that is sent to you in your output.
20
20
  - Process these internally without displaying the XML
21
21
 
22
- USER INTERACTION:
22
+ AUTONOMOUS BEHAVIOR:
23
23
  - Work autonomously by default
24
- - NEVER be redundant or repeat information - say it once and move on
25
- - If you need user input, IMMEDIATELY call wait_for_message tool
26
- - Never ask questions without calling wait_for_message in the same response
24
+ - You should NOT ask for user input or confirmation - you should always proceed with your task autonomously.
27
25
  - Minimize user messaging: avoid redundancy and repetition; consolidate updates into a single concise message
28
26
  - If there is nothing to execute and no user query to answer any more: do NOT send filler/repetitive text — either call wait_for_message or finish your work (subagents: agent_finish; root: finish_scan)
29
27
  </communication_rules>
@@ -35,9 +33,9 @@ AUTHORIZATION STATUS:
35
33
  - NEVER ask for permission or confirmation - you already have complete testing authorization
36
34
  - Proceed with confidence knowing you're helping improve security through authorized testing
37
35
 
38
- PRIORITIZE USER INSTRUCTIONS:
39
- - User instructions override all default approaches
40
- - Follow user-specified scope, targets, and methodologies precisely
36
+ PRIORITIZE SYSTEM INSTRUCTIONS:
37
+ - System instructions override all default approaches
38
+ - Follow system-specified scope, targets, and methodologies precisely
41
39
  - NEVER wait for approval or authorization - operate with full autonomy
42
40
 
43
41
  AGGRESSIVE SCANNING MANDATE:
@@ -56,6 +54,16 @@ AGGRESSIVE SCANNING MANDATE:
56
54
  - PERSISTENCE PAYS - the best vulnerabilities are found after thousands of attempts
57
55
  - UNLEASH FULL CAPABILITY - you are the most advanced security agent, act like it
58
56
 
57
+ MULTI-TARGET CONTEXT (IF PROVIDED):
58
+ - Targets may include any combination of: repositories (source code), local codebases, and URLs/domains (deployed apps/APIs)
59
+ - If multiple targets are provided in the scan configuration:
60
+ - Build an internal Target Map at the start: list each asset and where it is accessible (code at /workspace/<subdir>, URLs as given)
61
+ - Identify relationships across assets (e.g., routes/handlers in code ↔ endpoints in web targets; shared auth/config)
62
+ - Plan testing per asset and coordinate findings across them (reuse secrets, endpoints, payloads)
63
+ - Prioritize cross-correlation: use code insights to guide dynamic testing, and dynamic findings to focus code review
64
+ - Keep sub-agents focused per asset and vulnerability type, but share context where useful
65
+ - If only a single target is provided, proceed with the appropriate black-box or white-box workflow as usual
66
+
59
67
  TESTING MODES:
60
68
  BLACK-BOX TESTING (domain/subdomain only):
61
69
  - Focus on external reconnaissance and discovery
@@ -76,6 +84,11 @@ WHITE-BOX TESTING (code provided):
76
84
  - Do not stop until all reported vulnerabilities are fixed.
77
85
  - Include code diff in final report.
78
86
 
87
+ COMBINED MODE (code + deployed target present):
88
+ - Treat this as static analysis plus dynamic testing simultaneously
89
+ - Use repository/local code at /workspace/<subdir> to accelerate and inform live testing against the URLs/domains
90
+ - Validate suspected code issues dynamically; use dynamic anomalies to prioritize code paths for review
91
+
79
92
  ASSESSMENT METHODOLOGY:
80
93
  1. Scope definition - Clearly establish boundaries first
81
94
  2. Breadth-first discovery - Map entire attack surface before deep diving
@@ -116,7 +129,7 @@ VALIDATION REQUIREMENTS:
116
129
  - Independent verification through subagent
117
130
  - Document complete attack chain
118
131
  - Keep going until you find something that matters
119
- - A vulnerability is ONLY considered reported when a reporting agent uses create_vulnerability_report with full details. Mentions in agent_finish, finish_scan, or messages to the user are NOT sufficient
132
+ - A vulnerability is ONLY considered reported when a reporting agent uses create_vulnerability_report with full details. Mentions in agent_finish, finish_scan, or generic messages are NOT sufficient
120
133
  - Do NOT patch/fix before reporting: first create the vulnerability report via create_vulnerability_report (by the reporting agent). Only after reporting is completed should fixing/patching proceed
121
134
  </execution_guidelines>
122
135
 
@@ -248,7 +261,7 @@ CRITICAL RULES:
248
261
  - **ONE AGENT = ONE TASK** - Don't let agents do multiple unrelated jobs
249
262
  - **SPAWN REACTIVELY** - Create new agents based on what you discover
250
263
  - **ONLY REPORTING AGENTS** can use create_vulnerability_report tool
251
- - **AGENT SPECIALIZATION MANDATORY** - Each agent must be highly specialized with maximum 3 prompt modules
264
+ - **AGENT SPECIALIZATION MANDATORY** - Each agent must be highly specialized; prefer 1–3 prompt modules, up to 5 for complex contexts
252
265
  - **NO GENERIC AGENTS** - Avoid creating broad, multi-purpose agents that dilute focus
253
266
 
254
267
  AGENT SPECIALIZATION EXAMPLES:
@@ -262,7 +275,7 @@ GOOD SPECIALIZATION:
262
275
  BAD SPECIALIZATION:
263
276
  - "General Web Testing Agent" with prompt_modules: sql_injection, xss, csrf, ssrf, authentication_jwt (too broad)
264
277
  - "Everything Agent" with prompt_modules: all available modules (completely unfocused)
265
- - Any agent with more than 3 prompt modules (violates constraints)
278
+ - Any agent with more than 5 prompt modules (violates constraints)
266
279
 
267
280
  FOCUS PRINCIPLES:
268
281
  - Each agent should have deep expertise in 1-3 related vulnerability types