CLI Reference

whatalo validate

Validate your plugin project config, manifest, dependencies, and security — without making any API calls.

Syntax

whatalo validate [options]

Options

FlagTypeDescription
--buildbooleanAlso verify the build command succeeds
--fixbooleanAuto-fix fixable issues
--jsonbooleanOutput results as JSON (useful for CI)
--strictbooleanTreat warnings as errors (exit code 1)
--portal-url <url>stringDeveloper Portal URL

whatalo validate requires no authentication and makes no API calls. It is safe to run in any environment.

Checks (in order)

1. Config

Verifies whatalo.app.toml is present and passes the Zod schema validation. Checks for required fields: name, slug, plugin_id, build commands, dev port.

2. Manifest

Verifies whatalo.app.ts is present in the project root.

3. Dependencies

Checks package.json for required packages:

  • @whatalo/plugin-sdk
  • react
  • vite

4. Security — hardcoded secrets

Scans source files (.ts, .tsx, .js, .jsx) for patterns that look like hardcoded credentials:

PatternExample
WHATALO_CLIENT_SECRET = "..."Client secret in source code
api_key: "..." (20+ chars)API key in source code
Bearer ... (20+ chars)Token in source code
password: "..." (8+ chars)Password in source code

Excluded directories: node_modules, dist, .git, .whatalo.

5. Security — .gitignore

Checks that .gitignore covers:

  • .env
  • .whatalo/
  • node_modules/

This check is auto-fixable with --fix.

6. TypeScript

Verifies tsconfig.json exists and runs tsc --noEmit to catch type errors.

7. Build (optional)

Only runs when --build is passed. Executes your configured build command and verifies the output directory exists afterward.

8. Port

Checks that the dev port configured in whatalo.app.toml is not already in use.

Exit Codes

CodeMeaning
0All checks passed
1One or more errors found
2Fatal error (config unreadable, etc.)

With --strict, warnings are promoted to errors and will produce exit code 1.

Examples

Run a full validation before deploying:

whatalo validate --build

Auto-fix .gitignore issues:

whatalo validate --fix

Use in CI with JSON output:

whatalo validate --strict --json

On this page