Warning: Effeck is v0. The language will change in major, breaking ways. It is not suitable for production use.

Set up Effeck

Effeck is a language for building reliable TypeScript in the AI era, built on Effect. 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. Effeck 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.

Run npm view effeck@0.0.1 version and expect 0.0.1. An E404 error means the packages are not on npm yet: stop and tell the user.

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: not supported yet
None of theseThe effeck 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 Effeck to an existing project
Build with the effeck CLI, as with tscBuild with the effeck 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

Effeck does not support webpack, Rollup, esbuild, Rspack, or bun build yet. If the project builds with one of them, tell the user, and ask whether to build the .effeck sources with the effeck CLI instead.

4. Verify the setup

From the project directory, run:

npx effeck --version
npx effeck --noEmit

The first command prints Effeck 0.0.1 (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.