Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Effect-TS/tsgo/llms.txt
Use this file to discover all available pages before exploring further.
effect-tsgo is a drop-in replacement for tsgo (the TypeScript-Go binary). Any editor that supports TypeScript via tsserver can use it. You configure your editor to point at the effect-tsgo binary instead of the standard TypeScript language server.
Get the binary path
Before configuring your editor, find the path to theeffect-tsgo binary:
effect-tsgo executable for your platform. Copy this path — you will need it in your editor config.
Patch @typescript/native-preview
Some editors (VS Code with the TypeScript-Go extension, for example) locate the TypeScript-Go binary through the @typescript/native-preview npm package. The patch command replaces that binary with effect-tsgo:
patch does:
- Locates the
tsgobinary inside@typescript/native-previewin your project’snode_modules. - Renames it to
tsgo.original(backup). - Copies the
effect-tsgobinary into its place. - Sets executable permissions.
- Runs a quick verification to confirm the binary starts correctly.
Restore the original binary
To undo the patch and restore the originaltsgo binary:
tsgo.original back to tsgo and renames the patched binary out of the way.
VS Code
Using @typescript/native-preview (recommended)
If you use the TypeScript Native Preview VS Code extension, VS Code automatically picks up the tsgo binary from @typescript/native-preview. After patching, effect-tsgo is already in place — no further configuration is needed.
Enabling project-wide diagnostics in VS Code
The setup wizard (npx @effect/tsgo setup) adds the following to your .vscode/settings.json to enable project-wide background diagnostics:
The exact VS Code TypeScript-Go integration settings may evolve as the TypeScript Native Preview extension matures. Check the extension’s documentation for the latest configuration keys.
Neovim
Neovim users can configureeffect-tsgo as the TypeScript language server using nvim-lspconfig (with or without Mason).
With Mason
If you use Mason, installeffect-tsgo manually (Mason does not yet have a built-in package for it). Then register it as a custom server:
Without Mason
If you manage LSP configs directly, addeffect-tsgo alongside (or instead of) your existing tsserver or ts_ls setup:
Other editors
Any editor that supports the TypeScript language server protocol (tsserver) can useeffect-tsgo. The general approach is:
- Get the binary path:
npx @effect/tsgo get-exe-path - In your editor’s TypeScript LSP configuration, set the TypeScript server executable to that path.
- Disable any other TypeScript LSP clients for the same project.
Zed
Zed’s TypeScript support can be directed to a custom binary. Refer to the Zed extensions documentation and set the TypeScript language server path to the output ofnpx @effect/tsgo get-exe-path.
Emacs (eglot or lsp-mode)
Witheglot:
lsp-mode, configure the TypeScript server command to point at the effect-tsgo binary.
CLI reference
All@effect/tsgo binary management commands:
| Command | Description |
|---|---|
npx @effect/tsgo patch | Replace the @typescript/native-preview binary with effect-tsgo |
npx @effect/tsgo unpatch | Restore the original @typescript/native-preview binary |
npx @effect/tsgo get-exe-path | Print the absolute path to the effect-tsgo executable |
npx @effect/tsgo setup | Run the interactive project setup wizard |
npx @effect/tsgo config | Interactively configure diagnostic severities in an existing tsconfig |
Troubleshooting
Diagnostics are not appearing
Diagnostics are not appearing
- Confirm the plugin is in your
tsconfig.jsonundercompilerOptions.plugins. - Confirm
effect-tsgo(not standardtsserver) is the active language server in your editor. - Check that
diagnosticSeverityin your plugin config is set to{}(not omitted entirely), which enables all rules at their defaults. - Reload or restart the language server after any config change.
Duplicate diagnostics in VS Code
Duplicate diagnostics in VS Code
You may be running both the TypeScript Native Preview extension and a standard TypeScript language server. Disable one of them.
effect-tsgo covers all standard TypeScript functionality — you do not need both.patch command fails
patch command fails
Make sure Then re-run
@typescript/native-preview is installed in your project:npx @effect/tsgo patch.My platform is not supported
My platform is not supported
@effect/tsgo ships platform-specific binaries for: linux-x64, linux-arm64, linux-arm, darwin-x64, darwin-arm64, win32-x64, and win32-arm64. If your platform is not in this list, open an issue on GitHub.