# Reference: command line > Neutral description of the `turbo-go` command, its flags, and the environment it reads. ## Synopsis ``` turbo-go [flags] [file...] ``` Each `file` is opened in its own window. A file that does not exist yet is opened as an empty buffer bound to that path. With no file at all, one empty untitled window is opened. ## Flags | Flag | Type | Default | Description | | --- | --- | --- | --- | | `-theme ` | string | the project's, else `turbo-classic` | Theme to start with, overriding the project's own. An unknown name falls back to the default without an error. | | `-list-themes` | bool | `false` | Print every loadable theme with its description, then the user theme directory, and exit. | | `-no-lsp` | bool | `false` | Do not start a language server. Colouring and editing are unaffected. | | `-version` | bool | `false` | Print `Turbo Go ` on one line, with the commit and build date when the build recorded them, and exit. See [the version number](versioning.md). | | `-h`, `-help` | bool | `false` | Print the flag list and exit. | ## Environment | Variable | Read by | Effect | | --- | --- | --- | | `TURBO_GO_THEME_DIR` | theme loading | Directory to read user themes from, instead of the platform configuration directory. | | `TERM` | tcell | Which terminal description to use. | | `GOBIN`, `GOPATH`, `HOME` | gopls lookup | Searched, in that order, when `gopls` is not on `PATH`. | ## Files | Path | Purpose | | --- | --- | | `$TURBO_GO_THEME_DIR/*.toml` | User themes, when the variable is set. | | `./.turbo-go/settings.toml` | This project's settings, read once at start-up. See [project settings](project-settings.md). | | `~/.config/turbo-go/themes/*.toml` | User themes on Linux (`os.UserConfigDir`). | | `~/Library/Application Support/turbo-go/themes/*.toml` | User themes on macOS. | | `/go.mod` | Located by walking up from the first file; its directory becomes the language server's root. | ## Exit status | Status | Meaning | | --- | --- | | `0` | The editor exited normally, or an informational flag was used. | | `1` | The terminal could not be opened or initialised. The reason is printed to standard error. | ## Make targets Run from a checkout. | Target | What it runs | | --- | --- | | `make help` | List the targets. This is the default. | | `make test` | `go test ./...` | | `make test-verbose` | `go test -v ./...` | | `make cover` | `go test -cover ./...` | | `make build` | `go build -o bin/turbo-go .` | | `make install` | `scripts/install.sh` — build and install onto your PATH | | `make uninstall` | `scripts/install.sh --uninstall` | | `make run FILE=x.go` | `make build`, then `./bin/turbo-go x.go` | | `make fmt` | `go fmt ./...` | | `make vet` | `go vet ./...` | | `make check` | `fmt`, then `vet`, then `test` | | `make clean` | Remove `bin/` | ## Examples ```bash turbo-go # one empty window turbo-go main.go go.mod # two windows turbo-go -theme turbo-dark main.go # a different theme turbo-go -no-lsp main.go # no language server turbo-go -list-themes # what themes exist ``` ## Installer `scripts/install.sh`, also reachable as `make install`. | Option | Description | | --- | --- | | `-p`, `--prefix DIR` | Install into `DIR` instead of `$GOBIN` or `$GOPATH/bin`. | | `--with-gopls` | Install `gopls` as well, if it is not already there. | | `--uninstall` | Remove an installed `turbo-go` and stop. | | `-h`, `--help` | Print the options and stop. | | Exit status | Meaning | | --- | --- | | `0` | Installed, removed, or help printed. | | `1` | Go missing or too old, the build failed, or the destination could not be written. Nothing is installed and an existing installation is left untouched. | ## Errors | Message | Cause | | --- | --- | | `turbo-go: opening the terminal: …` | tcell could not open the terminal; usually `TERM` is unset or unknown. | | `turbo-go: initialising the terminal: …` | The terminal was opened but could not be put into raw mode. | | `Cannot open` (in a dialog) | The path is a directory, or is not readable. | | `Cannot save` (in a dialog) | The directory does not exist, or is not writable. |