IDE Extension

Scripts are text files with a file type of .epher, like 'triangle.epher'.

A collection of ready-made scripts is available on the Scripts page.

You can use an IDE, such as VS Code (or others), to write and execute epher scripts. Download and install the official epher extension for your IDE. The extension implements a full epher language server. It is compliant with the Language Server Protocol (LSP), adding a number of assistive features while editing code.

What the editor gets

VS Code

Install it from the marketplace: the Extensions view, search for Epher, Install. The server ships inside the extension, no download, no prerequisites, and it works offline on desktop and in the browser. Open a `.epher` file and the answers appear.

The epher extension also works with the browser versions of VS Code, vscode.dev and github.dev: press `.` on any GitHub repository or pull request to launch VS Code directly in the browser.

Running scripts: the Run script button on line one, Ctrl+Enter, or plain F5 — epher ships a run-only debug adapter, so a debug start runs the file and prints the answers in the Debug Console. The button and Ctrl+Enter open the results pane instead, which adds the run's graphs and links each row to its line.

find epher on the Visual Studio Code Marketplace

Cursor

Cursor searches the Open VSX registry through its own reviewed marketplace, and Epher is listed: the Extensions view, search for Epher, Install. The bundled server and every feature behave identically, and the publisher is verified in Cursor's marketplace.

find epher on the Open VSX Registry

VSCodium

VSCodium is VS Code without Microsoft's marketplace: it searches the Open VSX registry instead, where Epher is listed. The Extensions view, search for Epher, Install. Same server, same features, same local-only behavior.

find epher on the Open VSX Registry

JetBrains IDEs

Install it from the JetBrains Marketplace: Settings, Plugins, Marketplace, search for epher. Works in IntelliJ IDEA, PyCharm, WebStorm, GoLand, and the rest of the family, 2024.2 or newer. On first use it downloads the server for your platform; after that, everything is local.

Run Epher Script lives in the Tools menu and the editor's context menu. The results open in a pane beside your script: every answer, every error, and every 2D or 3D graph, rendered on the spot.

find epher on the JetBrains Marketplace

Visual Studio

Install it from the Visual Studio Marketplace: Extensions, Manage Extensions, search for epher. Works in Visual Studio 2022. The server ships inside the extension; no downloads, everything stays local.

Run Epher Script in the Tools menu evaluates the whole script; the results open as a tab beside your script: text answers, errors, and every 2D or 3D graph.

find epher on the Visual Studio Marketplace

Zed

Install it as a dev extension: in Zed, run the `zed: install dev extension` command and pick the unzipped `epher-zed` folder. Zed compiles the extension itself, which needs Rust installed. No grammar build is part of the install. Two Zed defaults need flipping as part of installing: Zed ships semantic tokens disabled (and with no grammar there is no other colorer), and it ships inlay hints disabled (the inline answers ride on them). Add this to your settings: `"languages": { "epher": { "semantic_tokens": "full", "inlay_hints": { "enabled": true } } }`

The Rust step belongs to dev extensions, not to epher: extensions published to Zed's extension registry are compiled by Zed itself and install in one click, with no Rust. Publication there is planned; until it lands, the dev-extension route above is the way in.

Zed's extension API has no room for a results pane, so whole-script runs happen in the terminal (`epher run script.epher`); the inline answers beside every statement stay live as you type.

The extension downloads the `epher-lsp` server itself on first use — nothing to put on your PATH. For `epher run` in Zed's terminal, install the `epher` CLI from the GitHub releases.

Download epher-zed.zip

Neovim

Install the rock with `:Rocks install epher` (rocks.nvim), or track the upyesp/epher.nvim repository with your plugin manager: filetype detection, syntax, and the LSP wiring around the same release binary. Then call `require("epher").setup()` on Neovim 0.11 or newer.

`:EpherRun` runs the script and opens a results window beside it; every graph is written as an SVG and opened with the system viewer. Running from a results window re-runs the script that window belongs to.

Prerequisite: the `epher-lsp` server binary, installed once and on your PATH: see Any LSP client below.

find epher on the LuaRocks package manager

Manual install: download epher-nvim.zip

Vim

Ready-made config files: filetype detection, syntax, and the LSP wiring around the same release binary, through the vim-lsp plugin (with its async.vim dependency). Register the server once in your vimrc: diagnostics, hover, completion, and the `:EpherRun` results pane follow.

The inline answers appear as inlay hints when vim-lsp renders them: set `g:lsp_inlay_hints_enabled` and run Vim 9 with virtual text.

Prerequisite: the `epher-lsp` server binary, installed once and on your PATH: see Any LSP client below.

find epher on vim.org

Sublime Text

Listed on Package Control: `Package Control: Install Package`, then search for LSP-epher (the LSP package is a prerequisite; install it the same way). The package carries the shared grammar in Sublime's own form and the client definition for LSP, and the server manages itself: on first start it downloads the `epher-lsp` binary for your platform into the package storage.

find epher on the Package Control package manager

Download epher-sublime.zip

Emacs

Ready-made Emacs glue: an `epher-mode` with baseline highlighting, filetype detection, and the LSP wiring around the same release binary, eglot on Emacs 29 or newer (built in), or lsp-mode if you prefer. Diagnostics, inline answers as inlay hints, hover, and completion.

Prerequisite: the `epher-lsp` server binary, installed once and on your PATH: see Any LSP client below.

Download epher-emacs.zip

Eclipse IDE

A ready-made Eclipse plugin: it registers the `.epher` file type, hooks the shared language server into LSP4E, and reuses the TextMate grammar for baseline highlighting. Diagnostics, hover, and completion, on recent Eclipse releases the inline answers appear as inlay hints.

Prerequisite: the `epher-lsp` server binary, installed once and on your PATH, see Any LSP client below.

find epher on the eclipse marketplace

Download epher-eclipse.jar

Any LSP client

The server speaks the Language Server Protocol over stdio, so any LSP client works. Download the binary for your platform from the releases page, uncompress it, and point your editor's client at it:

Platform Release asset After extracting
Windows (x86_64) epher-lsp-windows-x86_64.zip epher-lsp.exe
macOS (Apple silicon) epher-lsp-macos-aarch64.gz epher-lsp
Linux (x86_64) epher-lsp-linux-x86_64.gz epher-lsp
Linux (ARM64) epher-lsp-linux-aarch64.gz epher-lsp

Everything is on the releases page.

These commands download the server from the releases page and put it on your PATH:

macOS and Linux:

mkdir -p ~/Downloads && cd ~/Downloads
case "$(uname -sm)" in
  "Darwin arm64") f=epher-lsp-macos-aarch64 ;;
  "Linux aarch64") f=epher-lsp-linux-aarch64 ;;
  *) f=epher-lsp-linux-x86_64 ;;
esac
curl -fLO "https://github.com/upyesp/epher/releases/latest/download/$f.gz"
gunzip "$f.gz"
sudo install -m 0755 "$f" /usr/local/bin/epher-lsp
epher-lsp --version

Windows (PowerShell):

Invoke-WebRequest "https://github.com/upyesp/epher/releases/latest/download/epher-lsp-windows-x86_64.zip" -OutFile "$HOME\Downloads\epher-lsp-windows-x86_64.zip"
Expand-Archive $HOME\Downloads\epher-lsp-windows-x86_64.zip -DestinationPath $HOME\Downloads
New-Item -ItemType Directory -Force "$env:LOCALAPPDATA\Programs\epher" | Out-Null
Move-Item "$HOME\Downloads\epher-lsp.exe" "$env:LOCALAPPDATA\Programs\epher\epher-lsp.exe" -Force
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$env:LOCALAPPDATA\Programs\epher", "User")
& "$env:LOCALAPPDATA\Programs\epher\epher-lsp.exe" --version

Windows applies the PATH change to new terminals only: open a fresh terminal and run `epher-lsp --version` to confirm.