What it does
Luddite Scout reads a public GitHub repository and reports what a careful person would want to know before pointing a coding agent at it, or building it:
- S1 Repository setup. Security policy, private vulnerability reporting, licence, archive and fork status, open pull requests.
- S2 Agent instruction files. Files such as CLAUDE.md, AGENTS.md, GEMINI.md, .claude/, .agents/, .mcp.json, editor tasks and dev container config that an agent or editor may read or execute. It also follows where these files send an agent:
@imports, symbolic links and mentioned files are read and scanned too, and imports from outside the repository or from a web address are flagged. When CLAUDE.md, AGENTS.md and GEMINI.md sit in one folder, it says whether they match, whether one points to another, or whether different agents would get different instructions. - S3 Hidden Unicode. Bidirectional controls, tag characters and zero-width characters that hide text from a human reviewer.
- S4 GitHub Actions. Risky trigger and checkout combinations, untrusted input inside shell steps, unpinned actions, broad permissions.
- S5 Dependencies. Lockfiles checked against the OSV advisory database, plus the OpenSSF Scorecard result where one exists.
- S6 Build-time code. Scripts that run when the project is installed, built, or opened, such as build.rs, install scripts and .envrc.
- S7 Omarchy plugin. Only for repositories that are Omarchy desktop plugins: the patterns the plugin marketplace review blocks most often. Other repositories show it as not applicable.
Every check reports whether it ran in full, ran partially, was skipped, or does not apply, and why. A skipped check is never shown as a pass.
The same checks are available in a terminal as bin/scout and as an Omarchy desktop plugin. See the README.
What it does not do
- It does not run any code from the repository, and it does not use an AI model.
- It does not review code for vulnerabilities. Its findings are pattern matches and need a human to judge them.
- It only reads public repositories, and only the default branch.
Data handling
The site is static. There is no server of ours involved, and nothing is stored, logged or shared by this site. Your browser talks directly to these services:
api.github.com: repository details, file list, pull requests, vulnerability reporting status.raw.githubusercontent.com: file contents, pinned to the commit being reviewed.api.osv.dev: package names and versions from the repository's lockfiles, to look up advisories.api.securityscorecards.dev: the repository name, to look up its Scorecard result.
Those services see your IP address and what you looked up, under their own privacy policies. The Content Security Policy on the scanner page blocks connections to any other host.
If you supply a GitHub token it is held in memory until you close or reload the page. It is sent only to api.github.com and is never written to browser storage.
Results stay on your screen. There is no share link, because a report can describe weaknesses the project has not fixed yet.
Limits
- Without a token GitHub allows 60 API requests an hour per address. A review uses about five.
- File contents over 1 MB, binary files, and repositories with very large file trees are only partly covered. The report says so when that happens.