Install and update
syntic is a single program with no runtime to install first. This page covers the systems it runs on, how it updates itself, shell completion, checking an install and removing it.
Install instructions are coming with the first public release. Syntic Code is not publicly downloadable yet, so there is no install command to run today. This page will list the supported ways to install as soon as releases are published. Everything below describes how the installed program behaves.
Supported systems
| System | Processors | Notes |
|---|---|---|
| macOS | Apple silicon, Intel | An Intel shell under Rosetta still gets the native Apple silicon build. |
| Linux | x86-64, ARM64 | Static builds: any distribution works, Alpine included. |
| Windows | x64, ARM64 | Includes its own C runtime. Uses Git Bash for shell commands. |
Where the program lives
A standard install puts the syntic binary in ~/.syntic/bin (on Windows, %USERPROFILE%\.syntic\bin) and needs no administrator rights. Your settings, sign-in and saved sessions live next to it in ~/.syntic. To check that the shell finds the program:
syntic --versionHow releases are checked
Every release is verified before it is used:
- The release list for your channel is downloaded and its signature is checked against the Syntic release key. Nothing is trusted until that passes.
- The build for your system is downloaded and its SHA-256 is compared with the list.
- The new binary is started once with
--versionto make sure it runs. - Only then is it put in place. Any failed check stops the process before anything is written.
Settings that steer releases
| Environment variable | Purpose | Default |
|---|---|---|
SYNTIC_UPDATE_CHANNEL | Release channel to follow | stable |
SYNTIC_RELEASE_BASE_URL | Where release files are fetched from | https://releases.syntic.ai/code |
SYNTIC_UPDATE_MANIFEST_URL | Full address of the release list | built from the base URL and channel |
Release channels
| Channel | You get |
|---|---|
stable | Releases that have had time to settle. The default. |
latest | Every release on the day it is published. |
Update
syntic update # install the newest release on your channel
syntic update --check # only say whether one exists (exit code 3 when it does)
syntic update --rollback # go back to the version you had before| Flag | Does |
|---|---|
--check | Report only. Downloads nothing. |
--channel stable|latest | Use this channel for this run. |
--rollback | Swap back to the previous version. Run it again to swap forward. |
--manifest-url <url> | Read the release list from another address. |
--allow-downgrade | Install the channel’s release even if it is older than yours. |
An update checks the same signature and checksum as the installer, test-runs the new build, keeps your current binary as syntic.previous, and then swaps the new one in. If any step fails, your installed version is left exactly as it was. Your settings and sign-in in ~/.syntic are never touched.
syntic update will not touch a copy it does not own: copies in /nix/store, /usr/bin or /bin must be updated with the package manager that put them there.
| Exit code | Meaning |
|---|---|
0 | Updated, or already current. |
1 | Something failed (nothing changed). |
2 | Bad usage, such as an unknown channel. |
3 | --check found a newer release. |
Update notices
Interactive sessions check for a newer release quietly, no more than once per day. When there is one, you see a one-line notice with the command to run. Nothing installs on its own.
Turn the check off with "checkForUpdates": false in ~/.syntic/update.json, or set SYNTIC_DISABLE_AUTOUPDATER=1. SYNTIC_DISABLE_UPDATES=1 turns off every update path, including syntic update itself.
Minimum and maximum versions
A release list can say which versions are still supported. Below the minimum, a session will not start and tells you to run syntic update (subcommands such as update and doctor still work, so you can always repair the install). A withdrawn version starts with a warning that suggests syntic update --rollback.
Shell completion
syntic completion zsh > ~/.zfunc/_syntic # zsh
syntic completion bash > ~/.local/share/bash-completion/completions/syntic
syntic completion fish > ~/.config/fish/completions/syntic.fishPowerShell and elvish are supported too.
Check the install
syntic doctordoctor prints where Syntic keeps its files, whether settings parse, which model is active, whether a credential is found, how it was installed, the update channel, and any organization policy keys in force. Inside a session, /doctor shows the same in a panel.
Uninstall
There is no uninstall command. Delete syntic (on Windows, syntic.exe) and the syntic.previous copy next to it from ~/.syntic/bin, and take that folder off your PATH if you added it.
Your settings, sign-in and saved sessions stay in ~/.syntic. Delete that folder as well for a clean slate. To clear what Syntic stored about one project only, use syntic project purge.