# How to install GoloScript This guide shows how to get `golo` — and, if you want them, `gogolo` and `wagolo` — onto a machine, and how to check that Turbo Golo can find it. It assumes you already have Turbo Golo, or are about to — see [how to install the editor](install.md) for that. **The editor works without any of this.** Editing, colouring, themes, snippets and terminal windows all run with no interpreter at all. What needs it is completion, the error marks in the gutter, and every command in the Golo menu. ## Which binary you need GoloScript ships three, under one version: | Binary | What it is for | Also needs | | --- | --- | --- | | `golo` | The interpreter: runs scripts, and is also the REPL, the debugger, the test runner and **the language server** | nothing | | `gogolo` | Compiles a script to a native executable, through Go | the Go toolchain | | `wagolo` | Compiles a script to WebAssembly, through Go and TinyGo | TinyGo, and `wasm-tools` for the `wasip2` target | The editor needs `golo` and nothing else. `gogolo` and `wagolo` are what the **Build native** and **Build wasm** items in the Golo menu run; without them those two items report `command not found` and the rest of the menu is unaffected. ## Install a release Precompiled binaries for macOS (Intel and Apple Silicon), Linux (amd64, arm64, 386) and Windows (amd64, arm64, 386) are on the [releases page](https://codeberg.org/TypeUnsafe/golo-script/releases). Each is one file: ```bash chmod +x golo-- sudo mv golo-- /usr/local/bin/golo golo --version ``` On macOS an unsigned download is quarantined until you say otherwise, in **System Settings ▸ Privacy & Security** or with `xattr -d com.apple.quarantine golo--`. Repeat for `gogolo` and `wagolo` if you want the compilers. ## Or build from source This gives you all three at once, into `/usr/local/bin`. It needs Go; `wagolo` builds without TinyGo but cannot compile anything until TinyGo is installed. ```bash git clone https://codeberg.org/TypeUnsafe/golo-script.git && cd golo-script ./install.sh ``` Turbo Golo's own installer will do exactly that when asked: ```bash scripts/install.sh --with-server ``` It clones GoloScript into a temporary directory and runs its `install.sh`, which asks for `sudo` when it copies into `/usr/local/bin`. ## Check it ```bash golo --version ``` ``` v0.1.1 | dev.20260802.🤓 ``` And the language server specifically — it is the interpreter, so this is a subcommand rather than a second binary: ```bash golo lsp /golo ./main.golo`. The editor cannot use a server inside a container, so this is for running scripts, not for completion. - **You want to be sure the editor is not simply finding it on `PATH`.** Start it with a stripped environment — `env PATH=/usr/bin:/bin turbo-golo main.golo` — and the status bar should still say `LSP: ready`, from `/usr/local/bin`. ## What each binary is for, from the editor's side | Binary | What the editor uses it for | | --- | --- | | `golo` | `golo lsp` — completion, hover, definitions, the file's symbols and the error marks; and the **Run**, **Test**, **Test one**, **Debug**, **REPL** and **New script** items of the Golo menu | | `gogolo` | The **Build native** item | | `wagolo` | The **Build wasm** item | ## See also - [How to enable completion](enable-completion.md) — what to do when the server is installed and still says nothing - [How to run Golo commands from the editor](run-golo-commands.md) — the Golo menu - [Colouring and completion](../explanation/colouring-and-completion.md) — why the interpreter is the server