Documentation

ZynOps CLI reference

Installing, signing in, pointing the CLI at a model provider, and what to do when something does not work. Requires Node.js 18 or newer on macOS, Linux, or Windows.

$ npm install -g @zynopssolutions/zynops-cli

That puts a single zynops binary on your PATH. Sign in once with zynops login, then run zynops inside any project.

Command reference

zynops
Starts an interactive session in the current directory. This is the main way to use it.
zynops login
Connects your account. Prints a short device code, opens your browser to approve it, then stores the session locally.
zynops logout
Clears the local session and revokes it on the server. If the server cannot be reached, the local copy is still removed and the session expires on its own.
zynops account
Prints the signed-in email, plan name and price, subscription status, and today’s request and credit counts.
zynops usage
Prints today’s usage against your plan limits and the time the counters reset.
zynops plans
Lists every plan with its daily limits and marks the one you are on. Works offline; the current-plan marker is skipped if the backend is unreachable.
zynops upgrade
Opens the pricing page in your browser.
zynops --version
Prints the installed version. Also available as -v.
zynops --help
Prints the command list. Also available as -h or zynops help.

Anything not in this list is handed to the ZynOps engine, so flags and subcommands you pass through are interpreted there rather than by the wrapper.

Choosing a provider

ZynOps talks to any endpoint that implements the OpenAI chat API. Provider settings are read from your environment when the CLI starts, so they can live in your shell profile, in a per-project script, or in your CI configuration.

VariableWhat it sets
OPENAI_API_KEYYour key for the provider. Read from the environment at run time and never sent to us.
OPENAI_BASE_URLThe endpoint to call. Point this at DeepSeek, at a local Ollama server on port 11434, or at LM Studio on port 1234.
OPENAI_MODELThe model name to request, as that provider spells it.

One further environment flag switches the engine into OpenAI-compatible mode. It is listed with worked examples for each provider in the README.md that ships inside the npm package — see it after installing, or on the package page.

Requests you send to your own provider are billed by that provider. A model running on your own machine costs nothing and needs no internet connection, and neither case counts against the daily limits on your ZynOps plan.

Config and tokens

~/.zynops/
Per-user configuration directory. Nothing is written into your project, so there is nothing to add to .gitignore.
~/.zynops/auth.json
Where the session token goes when no operating system keychain is available. File permissions are restricted to your user account. Only a hash of the token is held server-side, so the value in this file is the only copy.
ZYNOPS_API_URL
The API the CLI talks to for login, account, and usage. It has a built-in default of https://cli.zynopssolutions.online/api, so those commands work without any configuration. Set this to override it — https://your-deployment/api when you self-host, or http://localhost:3000/api against a local checkout. Setting it to an empty value (ZYNOPS_API_URL=) disables the backend deliberately: those three commands then print how to set it and exit instead of failing. Coding sessions do not use it, and neither do upgrade or plans.
ZYNOPS_CONFIG_DIR
Overrides the configuration directory. Useful for keeping separate accounts, or for tests that should not touch your real session.

Troubleshooting

Account commands say the backend cannot be reached
login, account, and usage reach https://cli.zynopssolutions.online/api by default, so an unset ZYNOPS_API_URL is not the cause. Check your network first. If you self-host or are working against a local checkout, set ZYNOPS_API_URL to your own deployment, or to http://localhost:3000/api; setting it to an empty value turns the backend off on purpose. These commands degrade with a message rather than crash, and coding sessions do not touch the API at all, so neither case ever stops you working. upgrade and plans are unaffected: upgrade only opens a browser URL, and plans reads its table from the CLI itself.
The browser did not open during login
The CLI prints the authorization URL and an eight-character code before it starts waiting. Copy the URL into any browser, on any machine, and enter the code if you are asked for it. The code is single-use and short-lived, so run zynops login again if it has expired.
Your session expired
Sessions have an expiry, and you can revoke one from another machine. When the CLI sees a rejected token it clears the local copy and asks you to run zynops login again.
A request came back over quota
You have used the day’s requests or credits. Either move up a plan, which applies immediately, or wait for the reset at 00:00 UTC. zynops usage shows exactly which of the two counters ran out.
The keychain was unavailable
Keychain support is optional. Without it the session token is written to ~/.zynops/auth.json with permissions restricted to your user account, and the CLI tells you it has done so. Set ZYNOPS_TOKEN_STORAGE=file to skip the keychain deliberately.