npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@zevcloud/cli

v0.5.0

Published

ZevCloud CLI — Deploy applications from the command line

Downloads

34

Readme

@zevcloud/cli

⚡ Deploy applications, WordPress sites, databases, and static sites to ZevCloud from your terminal.

npm version License: MIT Docs

cd my-app
zevcloud init

Install

npm install -g @zevcloud/cli

Requires Node.js 18 or newer.

Quick start

Generate an API key in your dashboard at Settings → API Keys, authenticate the CLI, then run init from your project directory:

# Authenticate the CLI for a team
zevcloud login

# From inside your project directory
cd my-app
zevcloud init

zevcloud init walks you through everything interactively:

  • Auto-detects your source. A .git/ with a GitHub origin → GitHub-source service. No git or non-GitHub remote → direct terminal upload (no git setup required).
  • Auto-detects your framework from package.json so the picker defaults to the right one.
  • Lists existing services in the chosen environment first, so you can redeploy or run other actions against them without memorising service IDs.
  • Picks a plan from the live catalog and checks your credits before creating the service.
  • Triggers the first deploy and tails until it succeeds or fails. Prints the live URL.

Already deployed? Use deploy for subsequent builds:

# Redeploy — the CLI does the right thing per service (GitHub pull or terminal upload)
zevcloud deploy <serviceId>

# Tail live logs
zevcloud logs <serviceId> -f

Commands

| Command | What it does | |---------|--------------| | zevcloud login | Authenticate with an API key (adds a team to the CLI) | | zevcloud logout | Remove the active team (--all to wipe every configured team) | | zevcloud whoami | Show the active team and any others configured | | zevcloud team list | List configured teams | | zevcloud team switch [name] | Switch active team (interactive picker if no name given) | | zevcloud team remove <name> | Drop a configured team | | zevcloud init | Create a new service from the current directory (interactive wizard) | | zevcloud projects | List projects in the active team | | zevcloud services [projectId] | List services | | zevcloud deploy <id> | Trigger a deployment (source-mode + type aware) | | zevcloud restart <id> | Recycle a service container | | zevcloud stop <id> | Stop a service (storage and config preserved) | | zevcloud logs <id> [-f] | View runtime logs, with optional follow mode | | zevcloud env list <id> | List environment variables on a service | | zevcloud env set <id> <key> <value> | Set an environment variable | | zevcloud env remove <id> <varId> | Remove an environment variable | | zevcloud config --api-url <url> | Override the API endpoint | | zevcloud version | Show CLI version, latest on npm, and runtime info | | zevcloud help [command] | Show help text for the CLI or a specific command |

For per-command help and option details:

zevcloud help deploy
zevcloud deploy --help

Multi-team support

If you belong to multiple teams as member or admin, configure each one separately. ZevCloud API keys are team-scoped, so you generate one key per team and add them all to the CLI:

# Add Team A
zevcloud login

# Later, add Team B without losing Team A
zevcloud login

# See everything that's configured
zevcloud team list

# Switch the default team
zevcloud team switch acme-corp

# Or run a single command against a non-active team without switching
zevcloud --team acme-corp deploy 9c4f1e2b-...

The --team flag works on any command. It does not change your default team, only the team for that one invocation.

Source modes

zevcloud init picks a source mode automatically based on what's in your project directory:

  • GitHub source — when .git/ exists with a GitHub origin URL. Coolify clones your repo on every deploy. Subsequent zevcloud deploy <id> runs trigger a fresh pull + build. Auto-deploy on git push works too (configure via the GitHub App).
  • Direct upload — when there's no git remote (or it isn't GitHub). The CLI tars your current directory (respecting .gitignore + .zevcloudignore), uploads via a pre-signed URL, and the build runs against that tarball. Subsequent zevcloud deploy <id> re-tars and re-uploads from your current directory.

Upload mode supports Next.js, Astro, Nuxt, Remix, SvelteKit, Vite, and Node.js. Frameworks outside this set need a GitHub repo so nixpacks can handle the build.

Service-type awareness

ZevCloud has four service types and the CLI commands route correctly per type:

  • Web app / workerdeploy triggers a fresh build (GitHub pull or terminal upload, depending on how the service was created).
  • WordPressdeploy provisions the site on first run; restart recycles the PHP container after that.
  • Static site — files are pushed via the dashboard or SFTP; use restart to recycle.
  • Databaserestart and stop for lifecycle; deploy is not applicable.

Run zevcloud deploy <id> against any service type and the CLI will do the right thing or guide you to the correct command.

API key scopes

When you generate an API key, you choose a scope. The CLI is bound to that scope on every request and cannot escalate.

| Scope | Permissions | |-------|-------------| | read | List and inspect projects, services, deployments, env-var keys, logs, billing. No mutations. | | deploy | Everything read can do, plus trigger deployments, restart/stop services, set or delete env vars, verify a custom domain. The right choice for CI and AI agents. | | full | Equivalent to a human admin. Adds project/service/environment create + delete, custom-domain management, terminal commands, SFTP password rotation, public DB toggling, and DNS-record management on purchased domains. |

Some actions always require interactive authentication and are not reachable from any API key, even full. These include creating/revoking API keys themselves, deleting a team, inviting members, billing changes, and connecting GitHub. Use the dashboard for those.

Environment variables

The CLI honors a few environment variables, useful in CI pipelines and AI agent workflows:

| Variable | Purpose | |----------|---------| | ZEVCLOUD_API_KEY | Authenticate without storing a key on disk. Takes precedence over the configured active team when set. | | ZEVCLOUD_TEAM_ID | Pair with ZEVCLOUD_API_KEY to set the team-id header explicitly. | | ZEVCLOUD_DISABLE_UPDATE_CHECK | Set to true to skip the daily "is there a newer version?" check. | | ZEVCLOUD_DISABLE_POSTINSTALL | Set to true to silence the postinstall welcome message. | | CI | Auto-detected. The CLI suppresses the postinstall message and update-check banner when set. |

Update behavior

The CLI checks the npm registry once every 24 hours for a newer version. If one is available, you'll see a small notice after your command completes:

  ✨ Update available: 0.2.1 → 0.3.0
     Run "npm install -g @zevcloud/cli@latest" to update.

The check runs in the background, never blocks your command, and is silent on any network failure. To disable it, set ZEVCLOUD_DISABLE_UPDATE_CHECK=true.

Diagnostics

For bug reports, paste the output of:

zevcloud version

This shows the installed version, the latest known version on npm, the last update-check time, and your Node and platform info.

Documentation

Full guides and API reference at docs.zevcloud.net.

License

MIT © ZevOP Technologies