Commit Graph
126 Commits
Author SHA1 Message Date
Ahmed Allamandgreptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> 071acf86f5 Update args in strix/interface/main.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-01-09 20:00:01 -08:00
02a791b17d feat: add STRIX_REASONING_EFFORT env var to control thinking effort
- Add configurable reasoning effort via environment variable
- Default to "high", but use "medium" for quick scan mode
- Document in README and interface error panel

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 20:00:01 -08:00
0xallamandAhmed Allam 82c5b7363a fix: restrict result type check to dict or str 2026-01-09 16:44:05 -08:00
0xallamandAhmed Allam 8f1f221039 fix: handle string results in tool renderers
Previously, tool renderers assumed result was always a dict and would
crash with AttributeError when result was a string (e.g., error messages).
Now all renderers properly check for string results and display them.
2026-01-09 16:44:05 -08:00
Daniel SangorrinandAhmed Allam 07102553f8 fix: add thinking blocks 2026-01-09 15:40:21 -08:00
Ahmed AllamandGitHub 34a3e57ff3 Remove title from README 2026-01-10 02:35:20 +04:00
0xallamandAhmed Allam 3c91b5f742 Simplify stats panel display format 2026-01-09 14:25:00 -08:00
0xallamandAhmed Allam 66f4ce9684 Modernize vulnerability detail dialog styling 2026-01-09 14:25:00 -08:00
0xallam 6e7a77cf78 Add PostHog integration for analytics and error debugging 2026-01-09 14:24:04 -08:00
0xallam d8fe2b42ae fix: reduce spacing between consecutive tool calls in TUI 2026-01-08 17:53:16 -08:00
0xallamandAhmed Allam aeaaa0a9d2 fix: use fixed per-request timeout for tool server health checks
The previous implementation divided total timeout by retries, making the
timeout behavior confusing and the actual wait time unpredictable. Now
uses a consistent 5-second timeout per request for clearer semantics.
2026-01-08 17:41:44 -08:00
0xallamandAhmed Allam 449025c64d feat: add tool server health check and show error details in CLI
- Add _wait_for_tool_server_health() to verify tool server is responding after init
- Show error details in CLI mode when penetration test fails
- Simplify error message (remove technical URL details)
2026-01-08 17:41:44 -08:00
0xallamandAhmed Allam dc68d4dbe1 feat: add tool server health check during sandbox initialization
- Add _wait_for_tool_server_health() method with retry logic and exponential backoff
- Check tool server /health endpoint after container initialization
- Add async _verify_tool_server_health() for health check when reusing containers
- Raise SandboxInitializationError with helpful message if tool server is not responding
- Add TOOL_SERVER_HEALTH_TIMEOUT and TOOL_SERVER_HEALTH_RETRIES constants
2026-01-08 17:41:44 -08:00
0xallamandAhmed Allam 2af25fd225 fix: add timeout handling for Docker operations and improve error messages
- Add SandboxInitializationError exception for sandbox/Docker failures
- Add 60-second timeout to Docker client initialization
- Add _exec_run_with_timeout() method using ThreadPoolExecutor for exec_run calls
- Catch ConnectionError and Timeout exceptions from requests library
- Add _handle_sandbox_error() and _handle_llm_error() methods in base_agent.py
- Handle sandbox_error_details tool in TUI for displaying errors
- Increase TUI truncation limits for better error visibility
- Update all Docker error messages with helpful hint:
  'Please ensure Docker Desktop is installed and running, and try running strix again.'
2026-01-08 17:41:44 -08:00
0xallamandAhmed Allam 3e84f8f04f Remove --run-name CLI argument 2026-01-08 15:16:25 -08:00
0xallamandAhmed Allam 697d224cf7 Add background styling to finish and reporting tool renderers
- Wrap finish_scan and create_vulnerability_report tool output in Padding with dark grey background (#141414)
- Refactor TUI rendering to support heterogeneous renderables (Text, Padding, Group) instead of just Text
- Update _render_streaming_content and _render_tool_content_simple to return Any renderable type
- Handle interrupted messages by composing with Group instead of appending to Text
2026-01-08 15:09:10 -08:00
0xallamandAhmed Allam 93b6f1a4dc fix(tui): hide cost in stats panel when zero 2026-01-08 12:21:18 -08:00
0xallamandAhmed Allam 29cf251923 fix(tui): rename 'Tokens' to 'Total Tokens' in stats display 2026-01-08 12:21:18 -08:00
0xallamandAhmed Allam ce72f92d36 fix(tui): compare vulnerability content instead of just count for updates 2026-01-08 12:21:18 -08:00
0xallamandAhmed Allam c94e1d7fa6 fix(tui): use consistent severity colors between vulnerability components 2026-01-08 12:21:18 -08:00
0xallamandAhmed Allam 6fcfcddb27 feat(tui): add vulnerability detail dialog with markdown copy support
- Add VulnerabilityDetailScreen modal with full vulnerability details
- Add Copy button that exports report as markdown to clipboard
- Add VulnerabilitiesPanel in sidebar showing found vulnerabilities
- Add clickable VulnerabilityItem widgets with severity-colored dots
- ESC key closes modal dialogs
- Remove emojis from TUI stats panel for cleaner display
- Add build_tui_stats_text() for minimal TUI-specific stats
2026-01-08 12:21:18 -08:00
0xallam a46a273a37 fix(llm): suppress RuntimeWarnings for unawaited coroutines from asyncio 2026-01-07 20:09:46 -08:00
0xallam 6373fcf6a5 refactor(cli): remove final statistics display from CLI output 2026-01-07 19:53:40 -08:00
0xallam 3cb150d1d0 feat(reporting): improve vulnerability display and reporting format 2026-01-07 19:51:41 -08:00
0xallamandAhmed Allam 64236facc3 chore: increase truncation limit to 8000 chars 2026-01-07 19:32:45 -08:00
0xallamandAhmed Allam ea1bb0b0ed feat(reporting): add LLM-based vulnerability deduplication
- Add dedupe.py with XML-based LLM deduplication using direct litellm calls
- Integrate deduplication check in create_vulnerability_report tool
- Add get_existing_vulnerabilities() method to tracer for fetching reports
- Update schema and system prompt with deduplication guidelines
2026-01-07 19:32:45 -08:00
0xallamandAhmed Allam 7930db963b feat(reporting): enhance vulnerability reporting with detailed fields and CVSS calculation 2026-01-07 17:50:32 -08:00
0xallamandAhmed Allam cc5f973781 feat: enable container access to host localhost services
Rewrite localhost/127.x.x.x/0.0.0.0 target URLs to use host.docker.internal,
allowing the container to reach services running on the host machine.

- Add extra_hosts mapping for host.docker.internal on Linux
- Add HOST_GATEWAY env var to container
- Add rewrite_localhost_targets() to transform localhost URLs
- Support full 127.0.0.0/8 loopback range and IPv6 ::1
2026-01-07 12:04:21 -08:00
0xallam 372a4a287e Refactor(skills): rename prompt modules to skills and update documentation 2026-01-06 17:50:15 -08:00
0xallamandAhmed Allam 1a40af2a7b refactor(tui): remove flawed streaming update throttling
The length-based hash was prone to collisions and could miss
content changes. Simplified to always update during streaming.
2026-01-06 16:44:22 -08:00
0xallamandAhmed Allam 12bf9195cb feat(tui): display agent vulnerability count in TUI 2026-01-06 16:44:22 -08:00
0xallamandAhmed Allam 7f4aa2dec2 feat(tui): enhance spinner animations and update renderer styles 2026-01-06 16:44:22 -08:00
0xallamandAhmed Allam 7ece44dae2 feat(tui): show tool output in terminal and python renderers
- Terminal renderer now displays command output with smart filtering
- Strips PS1 prompts, command echoes, and hardcoded status messages
- Python renderer now shows stdout/stderr from execution results
- Both renderers support line truncation (50 lines max, 200 chars/line)
- Removed smart coloring in favor of consistent dim styling
- Added proper error and exit code display
2026-01-06 16:44:22 -08:00
0xallamandAhmed Allam 4d80bc1b56 feat(tui): enhance streaming content handling and animation efficiency 2026-01-06 16:44:22 -08:00
0xallamandAhmed Allam 047a6e3c35 refactor(llm): streamline reasoning effort handling and remove unused patterns 2026-01-06 16:44:22 -08:00
0xallamandAhmed Allam 3ffec5751d fix(llm): update logging configuration for asyncio 2026-01-06 16:44:22 -08:00
0xallamandAhmed Allam 6e177a5d4e feat(tui): implement request and response content truncation for improved readability 2026-01-06 16:44:22 -08:00
0xallamandAhmed Allam e6ca63066a refactor(tui): improve agent node expansion handling and add tree node selection functionality 2026-01-06 16:44:22 -08:00
0xallamandAhmed Allam 013806f4d2 feat(agent): implement user interruption handling in agent execution 2026-01-06 16:44:22 -08:00
0xallamandAhmed Allam afec29c0ef fix(llm): add streaming retry with exponential backoff
- Retry failed streams up to 3 times with exp backoff (8s min, 64s max)
- Reset chunks on failure and retry full request
- Use litellm._should_retry() for retryable error detection
- Switch to async acompletion() for streaming
- Refactor generate() into smaller focused methods
2026-01-06 16:44:22 -08:00
0xallamandAhmed Allam 82ec0f8266 feat(tui): add real-time streaming LLM output with full content display
- Convert LiteLLM requests to streaming mode with stream_request()
- Add streaming parser to handle live LLM output segments
- Update TUI for real-time streaming content rendering
- Add tracer methods for streaming content tracking
- Clean function tags from streamed content to prevent display
- Remove all truncation from tool renderers for full content visibility
2026-01-06 16:44:22 -08:00
0xallamandAhmed Allam efd995e08d feat(tui): refactor TUI components for improved text rendering and styling
- Removed unused escape_markup function and integrated rich.text for better text handling.
- Updated various renderers to utilize Text for consistent styling and formatting.
- Enhanced chat and agent message displays with dynamic text features.
- Improved error handling and display for various tool components.
- Refined TUI styles for better visual consistency across components.
2026-01-06 16:44:22 -08:00
0xallamandAhmed Allam 942434c420 feat(tui): enhance splash screen and agent status display
- Reduced animation timer for splash screen to improve responsiveness.
- Added URL display to the splash screen.
- Improved start line animation with dynamic character styling.
- Updated agent status display to show "Initializing Agent" when no real activity is detected.
- Enhanced waiting and animated verb text with dynamic styling.
- Implemented sidebar visibility toggle based on window size.
- Updated live stats to include model information from agent configuration.
- Refined TUI styles for better visual consistency.
2026-01-06 16:44:22 -08:00
0xallamandAhmed Allam 07c0406db8 feat(tui): add multiline chat input with dynamic height
- Support Shift+Enter to insert newlines in chat input
- Chat input container expands dynamically up to 8 lines
- Enter key sends message as before
- Fix cursor line background to match unselected lines
2026-01-06 16:44:22 -08:00
0xallam 85030004b1 chore: update website links to strix.ai 2026-01-03 17:58:34 -08:00
ahmedandAhmed Allam d85ae8e509 feat(prompts): enhance Next.js framework module with reconnaissance techniques
- Add route enumeration section with __BUILD_MANIFEST.sortedPages technique
  - Add environment variable leakage detection (NEXT_PUBLIC_ prefix)
  - Add data fetching over-exposure section for __NEXT_DATA__ inspection
  - Add API route path normalization bypass techniques
2026-01-02 15:35:52 -08:00
Vincent550102andAhmed Allam 05cfdd7337 fix: Convert dictionary views to lists for stable iteration over agents and tool executions. 2026-01-02 14:17:32 -08:00
Vincent550102andAhmed Allam 90cae1cf97 fix: convert tool_executions.items() to list for stable iteration 2026-01-02 14:17:32 -08:00
0xallam 758bd4836c enhance todo tool prompt 2025-12-15 10:26:59 -08:00
0xallamandAhmed Allam 98a9b52715 feat: add PyInstaller build for standalone binary distribution
- Add PyInstaller spec file and build script for creating standalone executables
- Add install.sh for curl | sh installation from GitHub releases
- Add GitHub Actions workflow for multi-platform builds (macOS, Linux, Windows)
- Move sandbox-only deps (playwright, ipython, libtmux, etc.) to optional extras
- Make google-cloud-aiplatform optional ([vertex] extra) to reduce binary size
- Use lazy imports in tool actions to avoid loading sandbox deps at startup
- Add -v/--version flag to CLI
- Add website and Discord links to completion message
- Binary size: ~97MB (down from ~120MB with all deps)
2025-12-15 08:21:03 -08:00