Getting startedInstall and update

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

SystemProcessorsNotes
macOSApple silicon, IntelAn Intel shell under Rosetta still gets the native Apple silicon build.
Linuxx86-64, ARM64Static builds: any distribution works, Alpine included.
Windowsx64, ARM64Includes 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 --version

How releases are checked

Every release is verified before it is used:

  1. The release list for your channel is downloaded and its signature is checked against the Syntic release key. Nothing is trusted until that passes.
  2. The build for your system is downloaded and its SHA-256 is compared with the list.
  3. The new binary is started once with --version to make sure it runs.
  4. Only then is it put in place. Any failed check stops the process before anything is written.

Settings that steer releases

Environment variablePurposeDefault
SYNTIC_UPDATE_CHANNELRelease channel to followstable
SYNTIC_RELEASE_BASE_URLWhere release files are fetched fromhttps://releases.syntic.ai/code
SYNTIC_UPDATE_MANIFEST_URLFull address of the release listbuilt from the base URL and channel

Release channels

ChannelYou get
stableReleases that have had time to settle. The default.
latestEvery 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
FlagDoes
--checkReport only. Downloads nothing.
--channel stable|latestUse this channel for this run.
--rollbackSwap back to the previous version. Run it again to swap forward.
--manifest-url <url>Read the release list from another address.
--allow-downgradeInstall 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 codeMeaning
0Updated, or already current.
1Something failed (nothing changed).
2Bad 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.fish

PowerShell and elvish are supported too.

Check the install

syntic doctor

doctor 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.