A deep forensic code auditor that distinguishes between Human Enterprise Code and AI Spaghetti.
XfeaturesANTI-AI is a command-line tool that analyzes website source code to determine authorship probability (Human vs. AI). Unlike simple pattern matchers, it uses state-of-the-art LLMs (Llama 3.3 70B, Gemini Pro) via OpenRouter to perform a semantic audit of HTML, CSS, and JavaScript structure.
- Deep Forensic Analysis: Scans for "Context Amnesia" (duplicate imports), "Russian Doll Styling" (styles in body), and logic hallucinations.
- False Positive Protection: Distinguishes between messy AI code and minified/obfuscated Enterprise code (Google, Amazon, React/Vite apps).
- Detailed Reporting: Generates a CLI dashboard and saves
.txtreports with evidence logs. - Free to Use: Configured to work with free tier models via OpenRouter (e.g., Llama 3.3, Gemini Flash).
- Robust Parsing: Handles unstructured LLM outputs using a hybrid JSON/AST parser.
Clone the repository
git clone [https://github.com/XfeaturesGroup/XfeaturesAntiAITool.git](https://github.com/XfeaturesGroup/XfeaturesAntiAITool.git) cd XfeaturesANTI-AI-ToolInstall dependencies
pip install -r requirements.txt
Configure API Key Get a free key from OpenRouter.
Create a
.envfile in the root directory:OPENROUTER_API_KEY=sk-or-v1-your-key-here
Run the script and paste the target URL when prompted:
python main.pyThe tool will scan the URL, analyze the architecture, and save a detailed report (e.g., scan_report_domain_com.txt) in the project folder.
The tool fetches the source code, cleans it (removing SVGs/Base64), and sends a compressed context to an LLM with a strict Forensic System Prompt.
It looks for specific signatures:
- Context Amnesia: Did the coder forget they already loaded Bootstrap in the
<head>? - Panic Fixes: Are there
!importantselectors onselect *elements? - Mock Data: Are there hardcoded review arrays in production code?
- Stylistic Fingerprints: Overuse of
backdrop-filterand specific gradient angles typical of default AI outputs.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.