Repository Analysis

usestrix/strix

Open-source AI penetration testing tool to find and fix your app’s vulnerabilities.

19.2 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of usestrix/strix, a Python project with 59,075 GitHub stars. SynthScan v2.0 examined 91,990 lines of code across 425 source files, recording 1579 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 19.2 places this repository in the Moderate AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

19.2
Adjusted Score
19.2
Raw Score
100%
Time Factor
2026-08-28
Last Push
59.1K
Stars
Python
Language
92.0K
Lines of Code
425
Files
1.6K
Pattern Hits
2026-08-29
Scan Date
0.03
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 2HIGH 9MEDIUM 41LOW 1527

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 1579 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers1073 hits · 1132 pts
SeverityFileLineSnippetContext
LOWstrix/interface/update_check.py238def prompt_update_if_available(console: Console) -> bool:CODE
LOWstrix/interface/utils.py60def format_vulnerability_report(report: dict[str, Any]) -> Text: # noqa: PLR0915CODE
LOWstrix/interface/utils.py229def _build_vulnerability_stats(stats_text: Text, report_state: Any) -> None:CODE
LOWstrix/interface/utils.py471def _derive_target_label_for_run_name(targets_info: list[dict[str, Any]] | None) -> str: # noqa: PLR0911CODE
LOWstrix/interface/utils.py700def _resolve_default_branch_name(repo_path: Path, env: dict[str, str]) -> str | None:CODE
LOWstrix/interface/utils.py874def build_diff_scope_instruction(scopes: list[RepoDiffScope]) -> str:CODE
LOWstrix/interface/utils.py943def _should_activate_auto_scope(CODE
LOWstrix/interface/utils.py1036def resolve_diff_scope_context(CODE
LOWstrix/interface/utils.py1474def rewrite_localhost_targets(targets_info: list[dict[str, Any]], host_gateway: str) -> None:CODE
LOWstrix/interface/scan_setup.py61async def preflight_model_connection(CODE
LOWstrix/interface/main.py251def display_completion_message(args: argparse.Namespace, results_path: Path) -> None:CODE
LOWstrix/interface/main.py350def _print_model_connection_error(exc: BaseException, model_name: str) -> None:CODE
LOWstrix/interface/auth_cli.py206def _try_start_callback_server() -> _CallbackServer | None:CODE
LOWstrix/interface/tui/sidecar.py86def _accept_authenticated_connection(CODE
LOWstrix/interface/tui/sidecar.py135async def _launch_posix_tui_process(CODE
LOWstrix/interface/tui/sidecar.py154async def _launch_windows_tui_process(CODE
LOWstrix/interface/tui/live_view.py139 def _hydrate_sdk_session_history(self, run_dir: Path, agent_ids: Any) -> None:CODE
LOWstrix/interface/tui/live_view.py231 def _ingest_raw_response_event(self, agent_id: str, data: Any) -> None:CODE
LOWstrix/interface/tui/live_view.py238 def _ingest_session_history_item(CODE
LOWstrix/interface/tui/live_view.py293 def _record_assistant_message(self, agent_id: str, content: str, *, final: bool) -> None:CODE
LOWstrix/interface/tui/runtime.py274 def _runtime_sync_fingerprint(self) -> str:CODE
LOWstrix/interface/tui/backend/server.py398 async def _send_collection_bootstrap(CODE
LOWstrix/interface/tui/backend/server.py424 async def _send_collection_if_changed(self, name: str) -> None:CODE
LOWstrix/interface/tui/backend/messages.py17def send_user_message_to_agent(CODE
LOWstrix/interface/tui/backend/projection.py91def collection_item_projection(item: dict[str, Any]) -> dict[str, Any]:CODE
LOW…/interface/viewer/frontend/src/lib/local-run-parser.ts137function emptyVulnerabilityDefaults(): Omit<CODE
LOWstrix/tools/reporting/tool.py59def _normalize_code_locations(CODE
LOWstrix/tools/reporting/tool.py205def _validate_analysis_fields(CODE
LOWstrix/tools/reporting/tool.py237def _validate_fix_verification(CODE
LOWstrix/tools/reporting/tool.py446async def create_vulnerability_report(CODE
LOWstrix/tools/reporting/tool.py940def _validate_contextual_cvss(CODE
LOWstrix/tools/reporting/tool.py983def _resolve_dependency_rating(CODE
LOWstrix/tools/reporting/tool.py1001def _build_dependency_metadata(CODE
LOWstrix/tools/reporting/tool.py1065def _build_dependency_evidence(CODE
LOWstrix/tools/proxy/tools.py430def _format_replay_tool_result(replay: dict[str, Any]) -> str:CODE
LOWstrix/tools/proxy/caido_api.py130async def list_requests_with_client(CODE
LOWstrix/tools/proxy/caido_api.py612def _clean_sitemap_request_summary(req: dict[str, Any] | None) -> dict[str, Any] | None:STRING
LOWstrix/tools/proxy/caido_api.py692async def view_sitemap_entry_with_client(CODE
LOWstrix/tools/threat_model/tools.py208def hydrate_threat_models_from_disk(state_dir: Path) -> None:CODE
LOWstrix/tools/mcp/client.py150def _mcp_result_to_tool_output(server: MCPServer, result: Any) -> Any:CODE
LOWstrix/tools/agents_graph/tools.py31def _render_completion_report(CODE
LOWstrix/core/sessions.py159async def strip_all_images_from_session(session: Session) -> bool:CODE
LOWstrix/core/runner.py134def _merge_root_prompt_context(CODE
LOWstrix/core/runner.py149def _compose_root_instructions_override(CODE
LOWstrix/core/execution.py175async def _seed_and_prepare_first_input(CODE
LOWstrix/core/execution.py75def _structured_provider_refusal(result: Any) -> str | None:CODE
LOWstrix/core/execution.py132def _is_transient_model_error(exc: BaseException) -> bool:CODE
LOWstrix/core/execution.py147def _transient_model_retry_delay(attempt: int) -> float:CODE
LOWstrix/core/execution.py152async def _salvage_stream_to_session(CODE
LOWstrix/core/execution.py832async def _append_tool_required_message(CODE
LOWstrix/core/execution.py924async def notify_parent_on_terminal(CODE
LOWstrix/core/execution.py966async def _notify_root_on_budget_reserve(coordinator: AgentCoordinator) -> None:CODE
LOWstrix/core/agents.py140 async def claim_reserve_notification(self) -> str | None:CODE
LOWstrix/core/agents.py386 async def cancel_descendants_graceful(self, agent_id: str) -> list[str]:CODE
LOWstrix/core/inputs.py30def _accepts_required_tool_choice(model_name: str | None) -> bool:CODE
LOWstrix/config/models.py64def request_timeout_extra_args(timeout_s: float | None) -> dict[str, float] | None:CODE
LOWstrix/config/models.py71def _retry_statusless_provider_errors(context: RetryPolicyContext) -> bool:CODE
LOWstrix/config/models.py498 def _create_fallback_provider(self, prefix: str) -> ModelProvider:CODE
LOWstrix/config/models.py604def configure_sdk_model_defaults(settings: Settings) -> None:CODE
LOWstrix/config/models.py625def _mirror_api_key_to_provider_env(model_name: str | None, api_key: str) -> None:CODE
1013 more matches not shown…
Unused Imports210 hits · 198 pts
SeverityFileLineSnippetContext
LOWstrix/interface/cli_args.py3CODE
LOWstrix/interface/update_check.py10CODE
LOWstrix/interface/__init__.py1CODE
LOWstrix/interface/interactive.py3CODE
LOWstrix/interface/scan_setup.py10CODE
LOWstrix/interface/auth_cli.py8CODE
LOWstrix/interface/tui/sidecar.py3CODE
LOWstrix/interface/tui/live_view.py3CODE
LOWstrix/interface/tui/__init__.py3CODE
LOWstrix/interface/tui/runtime.py3CODE
LOWstrix/interface/tui/history.py3CODE
LOWstrix/interface/tui/backend/server.py3CODE
LOWstrix/interface/tui/backend/controller.py3CODE
LOWstrix/interface/tui/backend/live_view.py3CODE
LOWstrix/interface/tui/backend/protocol.py3CODE
LOWstrix/interface/tui/backend/__init__.py3CODE
LOWstrix/interface/tui/backend/__init__.py4CODE
LOWstrix/interface/tui/backend/messages.py3CODE
LOWstrix/interface/tui/backend/projection.py3CODE
LOWstrix/interface/viewer/auth.py12CODE
LOWstrix/interface/viewer/server.py15CODE
LOWstrix/interface/viewer/transcript.py3CODE
LOWstrix/interface/viewer/report_pdf.py14CODE
LOWstrix/interface/viewer/__init__.py7CODE
LOWstrix/interface/viewer/__init__.py9CODE
LOWstrix/interface/viewer/cli.py3CODE
LOWstrix/tools/output_store.py9CODE
LOWstrix/tools/nullish.py8CODE
LOWstrix/tools/reporting/tool.py8CODE
LOWstrix/tools/web_search/tool.py3CODE
LOWstrix/tools/proxy/tools.py3CODE
LOWstrix/tools/proxy/caido_api.py3CODE
LOWstrix/tools/threat_model/tools.py17CODE
LOWstrix/tools/mcp/config.py8CODE
LOWstrix/tools/mcp/naming.py8CODE
LOWstrix/tools/mcp/registry.py23CODE
LOWstrix/tools/mcp/client.py15CODE
LOWstrix/tools/mcp/session.py43CODE
LOWstrix/tools/mcp/__init__.py3CODE
LOWstrix/tools/mcp/__init__.py5CODE
LOWstrix/tools/mcp/__init__.py5CODE
LOWstrix/tools/mcp/__init__.py5CODE
LOWstrix/tools/mcp/__init__.py6CODE
LOWstrix/tools/mcp/__init__.py6CODE
LOWstrix/tools/mcp/__init__.py6CODE
LOWstrix/tools/mcp/__init__.py11CODE
LOWstrix/tools/mcp/__init__.py11CODE
LOWstrix/tools/mcp/__init__.py11CODE
LOWstrix/tools/mcp/__init__.py16CODE
LOWstrix/tools/mcp/__init__.py17CODE
LOWstrix/tools/mcp/__init__.py18CODE
LOWstrix/tools/mcp/__init__.py18CODE
LOWstrix/tools/mcp/__init__.py18CODE
LOWstrix/tools/mcp/__init__.py18CODE
LOWstrix/tools/mcp/__init__.py18CODE
LOWstrix/tools/mcp/__init__.py18CODE
LOWstrix/tools/mcp/__init__.py18CODE
LOWstrix/tools/mcp/__init__.py18CODE
LOWstrix/tools/mcp/__init__.py18CODE
LOWstrix/tools/mcp/__init__.py18CODE
150 more matches not shown…
Excessive Try-Catch Wrapping99 hits · 106 pts
SeverityFileLineSnippetContext
LOWstrix/interface/cli_args.py28 except Exception:CODE
LOWstrix/interface/cli_args.py324 except Exception as e:STRING
MEDIUMstrix/interface/cli_args.py23def get_version() -> str:CODE
LOWstrix/interface/update_check.py114 except Exception: # noqa: BLE001CODE
LOWstrix/interface/update_check.py133 except Exception: # noqa: BLE001CODE
LOWstrix/interface/update_check.py152 except Exception: # noqa: BLE001, S110CODE
LOWstrix/interface/update_check.py163 except Exception: # noqa: BLE001, S110CODE
LOWstrix/interface/update_check.py368 except Exception:CODE
LOWstrix/interface/update_check.py373 except Exception:CODE
LOWstrix/interface/update_check.py415 except Exception as e: # noqa: BLE001CODE
MEDIUMstrix/interface/update_check.py97def _fetch_latest_version() -> str | None:CODE
MEDIUMstrix/interface/update_check.py146def _read_cache() -> dict[str, object]:CODE
LOWstrix/interface/cli.py180 except Exception:CODE
LOWstrix/interface/cli.py210 except Exception as e:CODE
LOWstrix/interface/utils.py485 except Exception:CODE
LOWstrix/interface/utils.py501 except Exception:CODE
LOWstrix/interface/utils.py513 except Exception:CODE
LOWstrix/interface/main.py246 except Exception as exc:CODE
LOWstrix/interface/main.py464 except Exception:CODE
LOWstrix/interface/auth_cli.py135 except Exception: # noqa: BLE001 - opening a browser is best-effortCODE
LOWstrix/interface/tui/runtime.py131 except Exception as exc:CODE
LOWstrix/interface/tui/runtime.py162 except Exception as exc:CODE
LOWstrix/interface/tui/runtime.py200 except Exception as exc:CODE
LOWstrix/interface/tui/runtime.py299 except Exception as exc:CODE
LOWstrix/interface/tui/runtime.py379 except Exception as exc:CODE
LOWstrix/interface/tui/backend/server.py238 except Exception as exc: # noqa: BLE001 - command failures are protocol resultsCODE
MEDIUMstrix/interface/tui/backend/server.py157def _read_loop(self) -> None:CODE
LOWstrix/interface/tui/backend/controller.py488 except Exception: # noqa: BLE001 - viewer startup failures must not crash the TUICODE
LOWstrix/interface/tui/backend/messages.py47 except Exception:CODE
LOWstrix/interface/tui/backend/messages.py57 except Exception:CODE
LOWstrix/interface/viewer/server.py166 except Exception:CODE
LOWstrix/interface/viewer/server.py192 except Exception:CODE
LOWstrix/interface/viewer/server.py612 except Exception: # noqa: BLE001 - launching the browser is best-effortCODE
LOWstrix/tools/reporting/tool.py144 except Exception as exc:CODE
LOWstrix/tools/web_search/tool.py107 except Exception:CODE
LOWstrix/tools/proxy/tools.py58 except Exception: # noqa: BLE001CODE
LOWstrix/tools/proxy/tools.py77 except Exception: # noqa: BLE001CODE
LOWstrix/tools/proxy/tools.py239 except Exception as exc: # noqa: BLE001CODE
LOWstrix/tools/proxy/tools.py321 except Exception as exc: # noqa: BLE001CODE
LOWstrix/tools/proxy/tools.py426 except Exception as exc: # noqa: BLE001CODE
LOWstrix/tools/proxy/tools.py494 except Exception as exc: # noqa: BLE001CODE
LOWstrix/tools/proxy/tools.py522 except Exception as exc: # noqa: BLE001CODE
LOWstrix/tools/proxy/tools.py652 except Exception as exc: # noqa: BLE001CODE
LOWstrix/tools/proxy/caido_api.py256 except Exception: # noqa: BLE001 - tolerate any malformed raw bytes; None signals "unparseable" to the caller.CODE
LOWstrix/tools/mcp/session.py211 except Exception:CODE
LOWstrix/tools/mcp/session.py364 except Exception:CODE
LOWstrix/tools/mcp/session.py443 except Exception: # noqa: BLE001 - any call failure is treated as a session deathCODE
LOWstrix/tools/mcp/session.py463 except Exception: # noqa: BLE001 - any retry failure means the connection is deadCODE
LOWstrix/tools/mcp/session.py484 except Exception:CODE
LOWstrix/tools/todo/tools.py99 except Exception:CODE
LOWstrix/tools/notes/tools.py107 except Exception:CODE
LOWstrix/tools/agents_graph/tools.py506 except Exception as e:CODE
LOWstrix/llm/context_budget.py42 except Exception: # noqa: BLE001 - unmapped models raise; caller falls back.CODE
LOWstrix/llm/context_budget.py88 except Exception: # noqa: BLE001 - tokenizer may be unavailable for some models.CODE
LOWstrix/llm/warmup.py63 except Exception: # noqa: BLE001 - a failed warm-up must never fail the run.CODE
LOWstrix/llm/compaction.py329 except Exception:CODE
LOWstrix/core/sessions.py118 except Exception:CODE
LOWstrix/core/sessions.py151 except Exception:CODE
LOWstrix/core/runner.py333 except Exception:CODE
LOWstrix/core/runner.py448 except Exception:CODE
39 more matches not shown…
Decorative Section Separators30 hits · 88 pts
SeverityFileLineSnippetContext
MEDIUMpyproject.toml100# ============================================================================COMMENT
MEDIUMpyproject.toml102# ============================================================================COMMENT
MEDIUMpyproject.toml147# ============================================================================COMMENT
MEDIUMpyproject.toml149# ============================================================================COMMENT
MEDIUMpyproject.toml342# ============================================================================COMMENT
MEDIUMpyproject.toml344# ============================================================================COMMENT
MEDIUMpyproject.toml372# ============================================================================COMMENT
MEDIUMpyproject.toml374# ============================================================================COMMENT
MEDIUMpyproject.toml394# ============================================================================STRING
MEDIUMpyproject.toml396# ============================================================================STRING
MEDIUMpyproject.toml409# ============================================================================STRING
MEDIUMpyproject.toml411# ============================================================================STRING
MEDIUMstrix/report/sarif.py382# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py384# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py1150# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py1152# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py196# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py198# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py424# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py426# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py641# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py643# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py750# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py752# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py857# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py859# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py1113# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py1115# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py1168# ---------------------------------------------------------------------------COMMENT
MEDIUMstrix/report/sarif.py1170# ---------------------------------------------------------------------------COMMENT
Modern Structural Boilerplate87 hits · 87 pts
SeverityFileLineSnippetContext
LOWstrix/interface/update_check.py36logger = logging.getLogger(__name__)CODE
LOWstrix/interface/__init__.py4__all__ = ["main"]CODE
LOWstrix/interface/cli.py29logger = logging.getLogger(__name__)CODE
LOWstrix/interface/cli.py175 def update_status() -> None:CODE
LOWstrix/interface/utils.py25logger = logging.getLogger(__name__)CODE
LOWstrix/interface/utils.py1638def update_layer_status(layers_info: dict[str, str], layer_id: str, layer_status: str) -> None:CODE
LOWstrix/interface/interactive.py13logger = logging.getLogger(__name__)CODE
LOWstrix/interface/interactive.py35__all__ = [CODE
LOWstrix/interface/environment.py19logger = logging.getLogger(__name__)CODE
LOWstrix/interface/scan_setup.py48logger = logging.getLogger(__name__)CODE
LOWstrix/interface/main.py63logger = logging.getLogger(__name__)CODE
LOWstrix/interface/auth_cli.py31logger = logging.getLogger(__name__)CODE
LOWstrix/interface/auth_cli.py419__all__ = ["run_auth"]CODE
LOWstrix/interface/tui/live_view.py48 def set_user_instruction(self, text: str | None, *, timestamp: str | None = None) -> None:CODE
LOWstrix/interface/tui/__init__.py6__all__ = ["TuiLiveView"]CODE
LOWstrix/interface/tui/runtime.py48logger = logging.getLogger(__name__)CODE
LOWstrix/interface/tui/history.py18logger = logging.getLogger(__name__)CODE
LOWstrix/interface/tui/backend/server.py30logger = logging.getLogger(__name__)CODE
LOWstrix/interface/tui/backend/controller.py118 def set_change_callback(self, callback: ChangeCallback) -> None:CODE
LOWstrix/interface/tui/backend/controller.py136 def set_mcp_connections(self, roster: list[dict[str, Any]]) -> None:CODE
LOWstrix/interface/tui/backend/__init__.py7__all__ = ["TuiBackendServer", "TuiController"]CODE
LOWstrix/interface/tui/backend/messages.py14logger = logging.getLogger(__name__)CODE
LOWstrix/interface/viewer/auth.py28logger = logging.getLogger(__name__)CODE
LOWstrix/interface/viewer/auth.py251__all__ = [CODE
LOWstrix/interface/viewer/server.py45logger = logging.getLogger(__name__)CODE
LOWstrix/interface/viewer/server.py616__all__ = ["authorized_url", "bundle_dir", "bundle_is_built", "serve"]CODE
LOWstrix/interface/viewer/transcript.py17logger = logging.getLogger(__name__)CODE
LOWstrix/interface/viewer/transcript.py97__all__ = [CODE
LOWstrix/interface/viewer/report_pdf.py667__all__ = [CODE
LOWstrix/interface/viewer/__init__.py12__all__ = ["serve"]CODE
LOWstrix/interface/viewer/cli.py28logger = logging.getLogger(__name__)CODE
LOWstrix/interface/viewer/cli.py146__all__ = ["run_view"]CODE
LOWstrix/tools/output_store.py20logger = logging.getLogger(__name__)CODE
LOWstrix/tools/reporting/tool.py22logger = logging.getLogger(__name__)CODE
LOWstrix/tools/web_search/tool.py16logger = logging.getLogger(__name__)CODE
LOWstrix/tools/proxy/tools.py21logger = logging.getLogger(__name__)CODE
LOWstrix/tools/proxy/caido_api.py753__all__ = [CODE
LOWstrix/tools/threat_model/tools.py36logger = logging.getLogger(__name__)CODE
LOWstrix/tools/mcp/client.py53logger = logging.getLogger(__name__)CODE
LOWstrix/tools/mcp/session.py67logger = logging.getLogger(__name__)CODE
LOWstrix/tools/mcp/session.py188 def set_on_dead(self, callback: Callable[[], None] | None) -> None:CODE
LOWstrix/tools/mcp/__init__.py34__all__ = [CODE
LOWstrix/tools/mcp/loader.py27logger = logging.getLogger(__name__)CODE
LOWstrix/tools/todo/tools.py17logger = logging.getLogger(__name__)CODE
LOWstrix/tools/notes/tools.py20logger = logging.getLogger(__name__)CODE
LOWstrix/tools/finish/tool.py15logger = logging.getLogger(__name__)CODE
LOWstrix/tools/respond/__init__.py6__all__ = ["respond_to_user"]CODE
LOWstrix/tools/agents_graph/tools.py24logger = logging.getLogger(__name__)CODE
LOWstrix/llm/context_budget.py14logger = logging.getLogger(__name__)CODE
LOWstrix/llm/warmup.py21logger = logging.getLogger(__name__)CODE
LOWstrix/llm/compaction.py32logger = logging.getLogger(__name__)CODE
LOWstrix/core/sessions.py24logger = logging.getLogger(__name__)CODE
LOWstrix/core/runner.py68logger = logging.getLogger(__name__)CODE
LOWstrix/core/hooks.py20logger = logging.getLogger(__name__)CODE
LOWstrix/core/execution.py50logger = logging.getLogger(__name__)CODE
LOWstrix/core/agents.py23logger = logging.getLogger(__name__)CODE
LOWstrix/core/agents.py67 def set_snapshot_path(self, path: Path) -> None:CODE
LOWstrix/core/agents.py92 def set_budget_extender(self, extend: Callable[[], None]) -> None:CODE
LOWstrix/config/models.py61logger = logging.getLogger(__name__)CODE
LOWstrix/config/codex.py36logger = logging.getLogger(__name__)CODE
27 more matches not shown…
Deep Nesting39 hits · 38 pts
SeverityFileLineSnippetContext
LOWstrix/interface/cli_args.py54CODE
LOWstrix/interface/update_check.py119CODE
LOWstrix/interface/update_check.py315CODE
LOWstrix/interface/cli.py41CODE
LOWstrix/interface/utils.py60CODE
LOWstrix/interface/utils.py874CODE
LOWstrix/interface/utils.py1474CODE
LOWstrix/interface/utils.py1638CODE
LOWstrix/interface/utils.py1651CODE
LOWstrix/interface/environment.py22CODE
LOWstrix/interface/tui/runtime.py223CODE
LOWstrix/interface/viewer/server.py147CODE
LOWstrix/interface/viewer/server.py171CODE
LOWstrix/interface/viewer/server.py237CODE
LOWstrix/interface/viewer/transcript.py63CODE
LOWstrix/tools/reporting/tool.py59CODE
LOWstrix/tools/reporting/tool.py89CODE
LOWstrix/tools/proxy/tools.py110CODE
LOWstrix/tools/proxy/caido_api.py294CODE
LOWstrix/tools/proxy/caido_api.py510CODE
LOWstrix/tools/mcp/session.py234CODE
LOWstrix/tools/mcp/session.py378CODE
LOWstrix/tools/notes/tools.py290CODE
LOWstrix/llm/compaction.py146CODE
LOWstrix/core/runner.py182CODE
LOWstrix/core/execution.py643CODE
LOWstrix/core/inputs.py108CODE
LOWstrix/config/models.py953CODE
LOWstrix/config/tool_call_ids.py37CODE
LOWstrix/config/loader.py56CODE
LOWstrix/config/loader.py90CODE
LOWstrix/runtime/caido_bootstrap.py32CODE
LOWstrix/agents/factory.py343CODE
LOWstrix/report/writer.py194CODE
LOWstrix/skills/__init__.py60CODE
LOWstrix/telemetry/logging.py119CODE
LOWstrix/telemetry/logging.py174CODE
LOWtests/test_tui_backend_server.py105CODE
LOWtests/test_tui_backend_server.py396CODE
Hallucination Indicators2 hits · 30 pts
SeverityFileLineSnippetContext
CRITICALstrix/interface/viewer/static/assets/index-Bpn8GiSb.js420`,f="/",p="*",g="",b="comment",y="declaration";function _(S,w){if(typeof S!="string")throw new TypeError("First argumentCODE
CRITICALstrix/interface/viewer/static/assets/index-Bpn8GiSb.js447`))}function h(y,_,N,S){const w=N.enter("tableCell"),C=N.enter("phrasing"),E=N.containerPhrasing(y,{...S,before:o,after:CODE
Magic Placeholder Names5 hits · 25 pts
SeverityFileLineSnippetContext
HIGHREADME.md86export LLM_API_KEY="your-api-key"CODE
HIGHREADME.md298export LLM_API_KEY="your-api-key"CODE
HIGHREADME.md302export PERPLEXITY_API_KEY="your-api-key" # for search capabilitiesCODE
HIGHCONTRIBUTING.md35 export LLM_API_KEY="your-api-key"CODE
HIGHscripts/install.sh339echo -e " ${MUTED}export LLM_API_KEY='your-api-key'${NC}"CODE
Fake / Example Data7 hits · 11 pts
SeverityFileLineSnippetContext
LOWstrix/interface/viewer/static/assets/index-Bpn8GiSb.js419 */const LT=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 COMMENT
LOWstrix/interface/viewer/static/assets/index-Bpn8GiSb.js449`,1;if(al>1e5&&al>Re.index*3)throw new Error("potential infinite loop, way more iterations than matches");return xt+=Ye,CODE
LOWstrix/interface/viewer/static/assets/index-Bpn8GiSb.js450`},_]}}return Jh=s,Jh}var em,_v;function wj(){if(_v)return em;_v=1;const e=p=>({IMPORTANT:{scope:"meta",begin:"!importanCODE
LOWstrix/interface/viewer/static/assets/index-Bpn8GiSb.js451]`,N={scope:"string",variants:[g,p,b,y]},S={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[CODE
LOWstrix/skills/tooling/agent_browser.md201agent-browser fill @e3 "user@example.com"CODE
LOWtests/test_viewer_auth.py33 auth.write_auth(email="user@example.com", token="tok-123", verified_at=_iso(timedelta(days=30))) # nosec B106CODE
LOWtests/test_viewer_auth.py37 assert record["email"] == "user@example.com"CODE
Cross-Language Confusion3 hits · 10 pts
SeverityFileLineSnippetContext
HIGHstrix/interface/viewer/cli.py65 "Build it with: [cyan]cd strix/interface/viewer/frontend && npm ci && npm run build[/]"CODE
HIGHtests/test_viewer.py180 session_id text not null,STRING
HIGHtests/test_viewer.py181 message_data text not null,STRING
AI Slop Vocabulary3 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUMpyproject.toml165# Enable comprehensive rule setsCOMMENT
MEDIUMstrix/interface/viewer/static/assets/index-Bpn8GiSb.js49`).replace(WS,"")}function b0(n,i){return i=x0(i),x0(n)===i}function Et(n,i,l,u,x,v){switch(l){case"children":typeof u==CODE
MEDIUMstrix/interface/viewer/static/assets/index-Bpn8GiSb.js419 */const LT=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 COMMENT
Over-Commented Block8 hits · 8 pts
SeverityFileLineSnippetContext
LOWstrix/interface/tui/live_view.py441COMMENT
LOWstrix/interface/tui/internal/app/view.go641 b.WriteString(w.Render("v" + appVersion))COMMENT
LOWstrix/interface/tui/internal/render/mcp.go1package renderCOMMENT
LOWstrix/interface/viewer/server.py121 assets_dir: Path,COMMENT
LOWstrix/core/runner.py421 # the prompt context unchanged.COMMENT
LOWstrix/runtime/docker_client.py281 # Best-effort kill: NotFound/APIError cover a gone or unhappyCOMMENT
LOWstrix/report/coverage.py61_INCOMPLETE_RUN_STATUSES = frozenset({"failed", "interrupted", "stopped", "running"})COMMENT
LOWstrix/report/sarif.py101COMMENT
AI Structural Patterns7 hits · 7 pts
SeverityFileLineSnippetContext
LOWstrix/tools/reporting/tool.py446CODE
LOWstrix/tools/reporting/tool.py1001CODE
LOWstrix/tools/reporting/tool.py1101CODE
LOWstrix/tools/reporting/tool.py1297CODE
LOWstrix/core/runner.py182CODE
LOWstrix/agents/factory.py644CODE
LOWstrix/report/state.py233CODE
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMstrix/skills/vulnerabilities/llm_prompt_injection.md111### LlamaIndex / RAG PipelinesCOMMENT
MEDIUMstrix/skills/vulnerabilities/llm_prompt_injection.md130### RAG PoisoningCOMMENT
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHstrix/tools/proxy/tools.py119List captured HTTP requests from the Caido proxy with HTTPQL filtering. Caido HTTPQL syntax (operators differ by fiSTRING
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMstrix/tools/proxy/caido_api.py342 # Create an empty replay session, then dispatch via ``send()``.COMMENT
Structural Annotation Overuse2 hits · 3 pts
SeverityFileLineSnippetContext
LOWstrix/skills/technologies/grafana_prometheus.md89# Step 1: create/edit a data source with an attacker-chosen base URL, e.g.COMMENT
LOWstrix/skills/technologies/grafana_prometheus.md92# Step 2: relay through THAT data source's id (path appended to its base URL):COMMENT