Skip to content

ubugeeei/vize

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

617 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vize

Unofficial High-Performance Vue.js Toolchain in Rust

/viːz/ — Named after Vizier + Visor + Advisor: a wise tool that sees through your code.

DocumentationPlaygroundSponsor

Warning

Vize is under active development. APIs, package boundaries, and editor features are still moving.

Important

For day-to-day editor support, keep using the official Vue language tools (vuejs/language-tools) for now. Vize's VS Code extension, Zed extension, and vize lsp default to opt-in capabilities so teams can adopt them gradually.

What Ships Today

  • Rust workspace crates for parsing, semantic analysis, compilation, linting, formatting, type checking, LSP, Musea art tooling, and bindings
  • A full Rust CLI via the vize crate (build, fmt, lint, check, ready, upgrade, musea, lsp, ide)
  • npm packages including @vizejs/vite-plugin, @vizejs/native, @vizejs/wasm, @vizejs/unplugin, @vizejs/rspack-plugin, @vizejs/nuxt, @vizejs/vite-plugin-musea, @vizejs/musea-mcp-server, and oxlint-plugin-vize
  • The vize npm package for shared config utilities and native build, fmt, lint, check, ready, and upgrade commands

Quick Start

Need vp first? Install Vite+ once from the Vite+ install guide.

Vite

vp install -D vize @vizejs/vite-plugin
// vite.config.ts
import { defineConfig } from "vite";
import vize from "@vizejs/vite-plugin";

export default defineConfig({
  plugins: [vize()],
});
// vize.config.ts
import { defineConfig } from "vize";

export default defineConfig({
  linter: {
    preset: "opinionated",
  },
  lsp: {
    lint: true,
    typecheck: false,
    editor: false,
    formatting: false,
  },
});

npm CLI

The npm vize package exposes native CLI commands plus shared config helpers:

vp install -D vize
vp exec vize fmt --write src
vp exec vize lint src
vp exec vize check
vp exec vize build src
vp exec vize ready src

Full Rust CLI

For the full native CLI, install the Rust binary:

cargo install vize
vize build src/**/*.vue
vize fmt --check src
vize lint --profile src
vize check --profile src
vize ready src
vize upgrade
vize lsp

You can also run the current workspace build directly:

nix run github:ubugeeei/vize#vize -- --help

Oxlint Integration

oxlint-plugin-vize lets Oxlint execute Vize Patina diagnostics through Oxlint's JS plugin system.

vp install -D oxlint oxlint-plugin-vize
vp exec oxlint-vize -c .oxlintrc.json -f stylish src

This keeps Oxlint's core JS and TS rules active while adding Vue-aware diagnostics under the vize/* namespace.

Editor Integration

Vize editor support is designed for incremental adoption alongside vuejs/language-tools.

Start with lint-only mode in VS Code:

{
  "vize.enable": true,
  "vize.lint.enable": true,
  "vize.typecheck.enable": false,
  "vize.editor.enable": false,
  "vize.formatting.enable": false
}

Zed can enable the same capabilities through LSP initialization options:

{
  "languages": {
    "Vue": {
      "language_servers": ["vize", "..."]
    }
  },
  "lsp": {
    "vize": {
      "initialization_options": {
        "lint": true
      }
    }
  }
}

The same feature names can be committed in vize.config.json or vize.config.pkl under lsp.

Local Development

The primary local setup is Nix + vp.

nix develop
vp install --frozen-lockfile
vp check
vp fmt
vp dev
vp build

Useful workspace tasks:

vp check
vp fmt
vp dev
vp build
vp run --workspace-root check:fix
vp run --workspace-root bench:all

Credits

This project draws inspiration from: Volar.jsvuejs/language-toolseslint-plugin-vueeslint-plugin-vuejs-accessibilityLightning CSSStorybookOXC

Sponsors

Vize is maintained by @ubugeeei. If you find it useful, please consider sponsoring.

License

MIT