Skip to content
LogoLogo

Set up VibeLang

VibeLang is a language for writing Effect programs with TypeScript syntax. These steps set it up in a project. Each step gives a command and the output to expect. When the output differs, stop and show the user the command and its output. VibeLang is v0: the language will change in major, breaking ways, and it is not suitable for production use.

1. Check the tools

Run node --version and expect v26.0.0 or later. If the project uses Bun, run bun --version and expect 1.4.0 or later.

Version 0.0.2 ships binaries for macOS, Linux, and Windows: darwin-arm64, darwin-x64, linux-arm64, linux-x64, win32-arm64, and win32-x64. All six are cross-compiled; the end-to-end npm and Bun rehearsal runs on Linux x64.

Run npm view vibelang@0.0.2 version and expect 0.0.2. An E404 error means that version is unavailable from the configured registry: report the registry and error before continuing.

2. Detect the project

Read the project's root directory and record what you find:

FactSignalResult
ProjectNo package.jsonNew project
A package.jsonExisting project
Package managerbun.lock or bun.lockbBun
package-lock.json, or no lockfilenpm
pnpm-lock.yaml or yarn.lockpnpm or Yarn: install the packages the npm commands name with pnpm add or yarn add
Buildvite or vitest in package.json, or a vite.config.* or vitest.config.* fileVite
webpack, rollup, esbuild, or @rspack/core in package.json, or bun build in a scriptAnother bundler: vibelang-unplugin
None of theseThe vibelang CLI
Frameworkreact, vue, or svelte in package.json, and the build is ViteReact, Vue, or Svelte. With @sveltejs/kit or nuxt, tell the user these pages do not cover it
EditorA .vscode/ or .cursor/ directoryVS Code or Cursor
A .zed/ directoryZed
None of theseAsk the user

3. Follow the matching pages

Read each page that matches and follow its steps, in this order: project, build or framework, editor.

CasePage
New projectStart a new project; it sets up the build and tests
Existing projectAdd VibeLang to an existing project
Build with the vibelang CLI, as with tscBuild with the vibelang CLI
Vite or Vitest, without React, Vue, or SvelteVite and Vitest
React, Vue, or Svelte with ViteReact, Vue, or Svelte, in place of the Vite page
VS Code or CursorVS Code and Cursor
NeovimNeovim
ZedZed
Another editor with an LSP clientOther editors

Version 0.0.2 includes vibelang-unplugin for webpack, Rspack, Rollup, Rolldown, esbuild, and bun build. Install vibelang@0.0.2 and vibelang-unplugin@0.0.2 as dev dependencies, and follow the plugin configuration for the project's bundler. For Vite and Vitest, use vibelang-vite.

4. Verify the setup

From the project directory, run:

npx vibelang --version
npx vibelang --noEmit

The first command prints VibeLang 0.0.2 (TypeScript 7.1.0-dev). The second prints nothing and exits with status 0. Then run the project's build and test scripts; each must exit with status 0. Report to the user the pages you followed and each command's output.