Install & sign-in problems
Install
syntic: command not found
The installer puts syntic in ~/.syntic/bin and does not edit your shell files. Add the folder to your PATH with the line the installer printed, for example:
echo 'export PATH="$HOME/.syntic/bin:$PATH"' >> ~/.zshrc && source ~/.zshrcOn Windows, open a new terminal after installing; the installer adds the folder to your user PATH.
The installer stops
| Message | Meaning and fix |
|---|---|
| ”do not run the installer as root” | Run it as your normal user. Nothing needs root. (SYNTIC_INSTALL_ALLOW_ROOT=1 overrides.) |
| A signature or checksum failure | The download did not match the signed release list. Nothing was installed. Try again; if it repeats, report it. |
| ”no Syntic release key” | Releases are not published yet for this build. Nothing was changed. |
| ”unsupported operating system” | Only macOS, Linux and Windows are supported. |
Missing curl, openssl or shasum | Install them with your package manager and run the installer again. |
If the installer keeps failing after these checks, contact Syntic support with the full message it printed.
Updates
| Situation | What to do |
|---|---|
syntic update says to run brew upgrade syntic | You installed with Homebrew; update with Homebrew. |
It refuses because the binary is in /nix/store, /usr/bin or /bin | Update with the package manager that installed it. |
| A session will not start: “no longer supported” (exit code 4) | Run syntic update. For one run, SYNTIC_SKIP_VERSION_GATE=1 starts anyway. |
| A new version misbehaves | syntic update --rollback puts the previous version back. |
update.json is not valid JSON | Updates stop with an error rather than guess. Fix or delete ~/.syntic/update.json. |
”Syntic Code is already running here”
Each shell a session runs carries SYNTIC_CODE=1, and a second interactive session in it is refused so the two do not fight over the terminal. Open a new terminal, or use syntic -p for a one-off answer. To start anyway, unset the variable: env -u SYNTIC_CODE syntic.
Sign-in
The browser opens but the terminal keeps waiting
- Finish the whole flow in the browser, including the approval step.
- The browser must be able to reach your computer at the local address it returns to. Over SSH or a remote desktop it cannot: set
SYNTIC_NO_BROWSER=1and runsyntic auth loginagain to use the paste flow. /login copycopies the sign-in address so you can open it in another browser on the same machine.
Messages you may see
| Message | Meaning and fix |
|---|---|
”Not signed in. Run syntic login in a terminal to sign in (or set SYNTIC_API_KEY), then run this command again.” | No credential was found. Sign in, or set a credential for CI (Sign in). |
”Your session has expired. Run syntic login to reconnect billing.” | Your sign-in was revoked or could not be renewed. Run syntic login. |
| ”Your account is a free one. Please upgrade to use Syntic Code.” | Syntic Code needs a paid plan. See Plans & models. |
| ”Your plan isn’t active. Please update your billing to use Syntic Code.” | Update your billing at app.syntic.ai, then try again. |
| A sign-in to the wrong organization is refused | Your administrator limits sign-ins to one organization (forceLoginOrgUUID). Sign in with your work account. |
Check which credential is used
syntic auth status shows whether you are signed in and how. /doctor shows where the credential came from (SYNTIC_API_KEY, settings, saved sign-in or a helper) and when it expires. A stray SYNTIC_API_KEY in your shell wins over everything else; unset it if you meant to use your browser sign-in.
Start over
syntic auth logout
syntic auth loginProxies and company networks
If requests fail on a company network, set SYNTIC_HTTPS_PROXY (and SYNTIC_NO_PROXY for exceptions). If your company inspects TLS, point SYNTIC_EXTRA_CA_CERTS at its certificate bundle. See Privacy & network.