Free & Open Source

24 rules.
Zero config.
One command.

Static analyzer for JavaScript and TypeScript that detects patterns commonly produced by AI-assisted development. Your AI won't tell you about these — ViberTest will.

AGPL-3.0 · Works with any JS/TS project · No account required

~/my-project
ViberTest v0.1.0
$ vibertest scan .
  Scanning 73 files...
Security Anti-Patterns
0 issues
!Dead Code & Unused Exports
1 issue
!Missing Tests
1 issue
!Accessibility
3 issues
!Production Basics
2 issues
!Console Pollution
5 issues
  ...and 18 more rules
88/100Grade B
We eat our own dog food
ViberTest scans itself:88/100B
Verify on GitHub

See what ViberTest catches.

Real patterns from real AI-generated codebases. These are the things your AI won't tell you about.

What AI generates
1
// utils.ts — 847 lines
2
export const API_KEY = "sk-proj-abc123..."Hardcoded secret
3
export function processData(data: any) {any type
4
console.log('processing...', data)Console pollution
5
// TODO: add error handlingTODO bomb
6
if (data) {
7
if (data.items) {
8
if (data.items.length > 0) {Deep nesting
9
data.items.forEach((item: any) => {
10
// ...200 more lines
11
 
12
export function unusedHelper() {}Dead code
13
export function anotherUnused() {}Dead code
After ViberTest review
1
// process-data.ts — 42 lines
2
import { env } from '@/config/env'
3
import type { DataPayload } from '@/types'
4
 
5
export function processData(data: DataPayload) {
6
validatePayload(data)
7
 
8
return data.items
9
.filter(isValidItem)
10
.map(transformItem)
11
}
12
 
13
// Focused, typed, no secrets, no dead code

ViberTest doesn't fix your code — it shows you exactly what needs fixing and why.

24 rules. Every AI code smell.

Each rule targets a specific pattern that AI-assisted development commonly produces. From security to accessibility to ship-readiness.

Security Anti-Patternscritical

SQL injection, eval(), hardcoded secrets, CORS wildcards, localStorage tokens.

Dead Codemedium

Unused exports, unreachable branches, and commented-out blocks.

Missing Testscritical

No tests, low coverage, empty tests, trivial assertions, skipped tests.

Accessibilitymedium

Missing alt text, non-semantic click handlers, inputs without labels.

Compliance Pageshigh

Missing terms, privacy policy, cookie consent, account deletion.

Production Basicslow

Generic titles, missing meta tags, default favicon, no 404 page.

Project Standardsmedium

Missing tsconfig, linter, .gitignore, .env.example, README.

Console Pollutionlow

Leftover console.log statements that don't belong in production.

+ 16 more rulesinfo

Oversized files, deep nesting, TODO bombs, circular deps, React perf, and more.

One command. Full report.

Run it on any JS/TS project. No config files, no plugins, no setup. Get a score from 0-100 with actionable suggestions for every issue.

Analyzes .js, .ts, .jsx, and .tsx files
Works with any bundler or framework
JSON output for CI pipelines
Diminishing returns scoring — first issues matter most
Zero dependencies, installs in seconds
Works withJavaScriptTypeScriptReactNext.jsVueAngularNode.js
~/my-project
$ vibertest scan .
  Scanning 73 files...
  ✓ 24 rules checked
  ! 12 issues found
  HEALTH SCORE
  88/100 — Grade B
  ██████████████████████████░░░░
  ● HIGH (1)
    └─ Dead Code & Unused Exports
       "ReportFormat" exported but never imported

Get started in 30 seconds.

Install globally, run on any project. That's it.

1

Install

Install ViberTest globally via npm, pnpm, or yarn.

npm$ npm i -g vibertest
pnpm$ pnpm add -g vibertest
yarn$ yarn global add vibertest
2

Scan

Navigate to your project and run the scan command.

scan$ vibertest scan .
json$ vibertest scan . --json
specific$ vibertest scan ./src
3

Fix

Review the report, fix issues by priority, re-scan.

iterate$ vibertest scan . --fix-guide
Coming Soon — ViberHub Cloud

The CLI scans. The Cloud tracks.

Upload scan results for historical tracking, score trends, team dashboards, and CI/CD quality gates.

Score Trends

Track code quality over time. See if your team is improving or slipping after each sprint.

PR Quality Gates

Block merges when the score drops below your threshold. Enforce quality in CI.

Team Dashboard

See scores across all repos. Identify which projects need attention.

Scan History

Every scan stored. Compare any two points in time. See exactly what changed.

No Source Code Stored

We only store scan reports — scores, issues, file paths. Your code never leaves your machine.

One Command Upload

vibertest scan . --upload. That's it. Authenticated via GitHub, results in your dashboard.

Stop guessing. Start scanning.

One command to know exactly where your code stands. Free, open source, no excuses.