A high-performance, Rust-powered diagnostic engine designed as a drop-in replacement for svelte-check.
Note: This tool only supports Svelte 5+. For Svelte 4 or earlier, use the official svelte-check.
svelte-check through Rust's zero-cost abstractions and parallel processingsvelte-check diagnostics, including Svelte compiler errors via bunnpm install -D svelte-check-rs
The npm package uses platform-specific optional dependencies to provide the binary. If you install with --no-optional, re-enable optional dependencies or use the shell/PowerShell installers below.
Then add to your package.json scripts:
{
"scripts": {
"check": "svelte-check-rs"
}
}
Or run directly with npx:
npx svelte-check-rs
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/pheuter/svelte-check-rs/releases/latest/download/svelte-check-rs-installer.sh | sh
irm https://github.com/pheuter/svelte-check-rs/releases/latest/download/svelte-check-rs-installer.ps1 | iex
# Check current directory
svelte-check-rs
# Check specific directory
svelte-check-rs --workspace ./my-project
# Watch mode
svelte-check-rs --watch
# Different output formats
svelte-check-rs --output json
svelte-check-rs --output machine
svelte-check-rs --output human-verbose
svelte-check-rs expects tsgo to be available from your workspace node_modules. Install it via:
npm install -D @typescript/native-preview
Some package managers (for example, bun) may auto-install peer dependencies, but explicit installation is always supported.
| Option | Description |
|---|---|
--workspace <PATH> |
Working directory (default: .) |
--output <FORMAT> |
Output format: human, human-verbose, json, machine |
--tsconfig <PATH> |
Path to tsconfig.json |
--threshold <LEVEL> |
Minimum severity: error, warning |
--watch |
Watch mode |
--preserveWatchOutput |
Don't clear screen in watch mode |
--fail-on-warnings |
Exit with error on warnings |
--ignore <PATTERNS> |
Glob patterns to ignore |
--skip-tsgo |
Skip TypeScript type-checking |
--tsgo-version |
Show installed tsgo version + path |
--bun-version |
Show installed bun version + path |
--bun-update[=<VER>] |
Update bun to latest or specific version |
--debug-paths |
Show resolved binaries (tsgo, bun, svelte-kit) |
Caching: svelte-check-rs writes transformed files and tsgo incremental build info to node_modules/.cache/svelte-check-rs/. Cache invalidation is automatic: dependency changes (lockfiles, node_modules markers) clear the entire cache, and source file changes are handled via content-addressed writes.
crates/
āāā svelte-parser/ # Lexer + parser + AST types
āāā source-map/ # Position tracking and mapping
āāā svelte-transformer/ # Svelte ā TypeScript transformation
āāā svelte-diagnostics/ # A11y and component checks
āāā tsgo-runner/ # tsgo process management
āāā bun-runner/ # bun-managed Svelte compiler bridge
āāā svelte-check-rs/ # CLI binary
# Build all crates
cargo build
# Run tests
cargo test
# Run clippy
cargo clippy --all-targets -- -D warnings
# Format code
cargo fmt
MIT License - see LICENSE for details.