Documentation

Everything you need to integrate MeshQA into your workflow

CLI Usage

Validate 3D assets from the command line with privacy-first local validation.

Installation

Install the MeshQA CLI globally using npm:

npm install -g @meshqa/cli

Or use it directly with npx:

npx @meshqa/cli scan model.glb

Note: If using npx, replace meshqa with npx @meshqa/cli in all commands below.

Authentication

Set your API key using the auth login command:

meshqa auth login

Or use an environment variable:

export MESHQA_API_KEY=mqk_live_your_api_key

Note: Authentication is optional for local-only validation. See Local Mode below.

CommandDescription
meshqa auth loginInteractive login flow
meshqa auth logoutClear stored credentials
meshqa auth statusShow current authentication status
meshqa auth whoamiDisplay current user info and tier

When to Use Local vs API Mode

The CLI supports two modes: local (offline) and API (cloud). Choose based on your needs:

FeatureLocal ModeAPI Mode
PrivacyFiles never leave machineFiles uploaded for scanning
Offline supportWorks offlineRequires internet
VirusTotal scanningYes (Starter+)
WebhooksYes (Starter+)
Cloud cachingYes
Report exportsYes (tier limits)
Rate limitsUnlimitedTier-based
Team usage trackingYes

Use Local Mode when:

  • Privacy is critical
  • Working offline or air-gapped
  • Quick validation during development
  • Avoiding rate limits

Use API Mode when:

  • Need VirusTotal malware scanning
  • Want webhook notifications
  • Team needs shared usage tracking
  • Need exportable reports

Local Mode (Privacy-First)

Run validations entirely on your machine with zero data transmission:

meshqa scan ./model.glb --local

Benefits:

  • Files never leave your machine
  • Works completely offline
  • Zero telemetry or tracking
  • No API key required

Limitations in local mode:

  • No VirusTotal scanning
  • No cloud caching
  • No webhook notifications

Basic Usage

Validate a single file:

meshqa scan model.glb

Validate multiple files with glob patterns:

meshqa scan ./assets/*.glb

Scan GLB files directly (no ZIP required):

meshqa scan character.glb --engine unity --platform mobile

Platform Targeting

Validate assets for specific target platforms:

meshqa scan ./character.glb --platform mobile --engine unity
PlatformDescription
mobileMobile-optimized checks (texture size, poly count limits)
desktopStandard desktop validation (default)
vrVR-specific requirements (draw calls, LODs)
webWebGL constraints (file size, format support)

Batch Scanning

Scan multiple files using glob patterns:

meshqa scan ./assets/**/*.glb --output ./reports

Tier Limits:

TierFiles per Scan
Anonymous1 file
Free10 files
Starter / Pro / EnterpriseUnlimited

For large batches (>100 files), use --yes to skip confirmation:

meshqa scan ./assets/**/*.glb --yes

Report Exports

Export detailed reports in JSON or Markdown:

meshqa scan ./model.glb --output ./reports --format both
FormatDescription
jsonMachine-readable structured data
markdownHuman-readable with tables and recommendations
bothGenerate both formats (default)

Tier Limits:

TierExports / Month
Free10
Starter / Pro / EnterpriseUnlimited

Options

OptionDescription
-e, --engineTarget engine (unity, unreal, godot, generic)
-p, --platformTarget platform (mobile, desktop, vr, web)
-l, --localLocal-only mode (no API calls, works offline)
-s, --strictEnable strict validation mode
-o, --outputOutput directory for reports
-f, --formatReport format (json, markdown, both)
-y, --yesSkip confirmation prompts (for CI/CD)
--jsonOutput results as JSON (requires auth)
-w, --watchWatch mode - rescan on file changes
-q, --quietOnly output on errors

Examples

Local Validation (Privacy-First)

# Validate locally without any API calls
meshqa scan ./character.glb --local

# Local mode with platform targeting
meshqa scan ./assets/*.glb --local --platform mobile

Unity Project with Reports

meshqa scan ./Assets/Models/**/*.glb \
  --engine unity \
  --platform mobile \
  --output ./reports \
  --format both

CI/CD Integration

# Run validation in CI with automatic confirmation
meshqa scan ./Assets/**/*.glb --yes --quiet

# Exit code 0 = all passed
# Exit code 1 = validation failed

Batch Scanning with JSON Output

# Scan all GLB files and output JSON for parsing
meshqa scan ./assets/**/*.glb --json --yes

Exit Codes

CodeMeaning
0All validations passed
1Validation failed
2CLI error (invalid arguments, auth failure, etc.)
130Scan interrupted (Ctrl+C)
MeshQA - 3D Asset Validation Service