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

@chabokan.net/cli

v0.9.1

Published

Chabokan Cli for PaaS Services

Readme

chabok

Deploy and manage your Chabokan services from the terminal.

Version Downloads/week oclif

Quick start

  # 1. Install
  npm install -g @chabokan.net/cli

  # 2. Sign in (or use an API token: chabok login -t <token>)
  chabok login

  # 3. See what you have
  chabok service list

  # 4. Deploy the project in the current directory
  cd my-project
  chabok deploy

To deploy the same project repeatedly without picking the service each time, add a chabok.json to its root:

{
  "service": "my-app"
}

Then chabok deploy alone is enough.

Files are excluded from the upload using .chabokignore, falling back to .dockerignore and then .gitignore. Run with CHABOK_DEBUG=true to see exactly what was skipped.

Usage

$ npm install -g @chabokan.net/cli
$ chabok COMMAND
running command...
$ chabok (--version|-v)
@chabokan.net/cli/0.9.1 darwin-arm64 node-v22.23.2
$ chabok --help [COMMAND]
USAGE
  $ chabok COMMAND
...

Environment variables

| Variable | Description | | --- | --- | | CHABOK_DEBUG | Set to true to print full error details (status code, endpoint, error code, response body) and ignored-file logs during deploy. | | CHABOK_API_URL | Override the API base URL. Defaults to https://apihub.chabokan.net/fa/api/v1/. | | CHABOK_INSECURE_TLS | Set to true to skip TLS certificate verification. Only for servers with a self-signed certificate — it disables protection against interception, so the CLI warns whenever it is active. | | CHABOK_NO_UPDATE_CHECK | Set to any value to disable the "new version available" check entirely. Also honours NO_UPDATE_NOTIFIER, and it is skipped automatically when CI is set. | | CHABOK_NPM_REGISTRY | npm registry used for the update check. Defaults to https://registry.npmjs.org. | | http_proxy / https_proxy | Route requests through an HTTP proxy. |

Credentials are stored in ~/.chabok.json with 0600 permissions (readable only by you).

The update check is designed to stay out of your way: it contacts the registry at most once every 24 hours, gives up after 1.5 seconds, writes its notice to stderr so it never pollutes piped output, and stays silent on any failure. If you are offline it costs one 1.5s timeout, and nothing at all on subsequent runs.

Commands

chabok account info

show information about the active account

USAGE
  $ chabok account info [-h]

FLAGS
  -h, --help  Show CLI help.

DESCRIPTION
  show information about the active account

EXAMPLES
  Show the active account's details

    $ chabok account info

See code: src/commands/account/info.ts

chabok account list

list the accounts you are logged in to

USAGE
  $ chabok account list [-h]

FLAGS
  -h, --help  Show CLI help.

DESCRIPTION
  list the accounts you are logged in to

EXAMPLES
  Show every logged-in account and which one is active

    $ chabok account list

See code: src/commands/account/list.ts

chabok account remove

sign out of an account and forget its stored token

USAGE
  $ chabok account remove [-h]

FLAGS
  -h, --help  Show CLI help.

DESCRIPTION
  sign out of an account and forget its stored token

EXAMPLES
  Pick the account to sign out of

    $ chabok account remove

See code: src/commands/account/remove.ts

chabok account use

switch the active account

USAGE
  $ chabok account use [-h] [-u <value>]

FLAGS
  -h, --help          Show CLI help.
  -u, --user=<value>  email of the account to switch to

DESCRIPTION
  switch the active account

EXAMPLES
  Pick the account to switch to from a list

    $ chabok account use

  Switch to a specific account without prompting

    $ chabok account use --user [email protected]

See code: src/commands/account/use.ts

chabok autocomplete [SHELL]

Display autocomplete installation instructions.

USAGE
  $ chabok autocomplete [SHELL] [-r]

ARGUMENTS
  [SHELL]  (zsh|bash|powershell) Shell type

FLAGS
  -r, --refresh-cache  Refresh cache (ignores displaying instructions)

DESCRIPTION
  Display autocomplete installation instructions.

EXAMPLES
  $ chabok autocomplete

  $ chabok autocomplete bash

  $ chabok autocomplete zsh

  $ chabok autocomplete powershell

  $ chabok autocomplete --refresh-cache

See code: @oclif/plugin-autocomplete

chabok cloudserver create

create a new cloud server (VPS) — walks through provider, location, plan, OS and wallet

USAGE
  $ chabok cloudserver create [-h] [--hostname <value>] [--wallet <value>]

FLAGS
  -h, --help              Show CLI help.
      --hostname=<value>  hostname for the new cloud server
      --wallet=<value>    name of the wallet to pay from

DESCRIPTION
  create a new cloud server (VPS) — walks through provider, location, plan, OS and wallet

EXAMPLES
  Create a cloud server, choosing every option interactively

    $ chabok cloudserver create

  Skip the hostname prompt

    $ chabok cloudserver create --hostname my-vps

See code: src/commands/cloudserver/create.ts

chabok cloudserver delete

permanently delete a cloud server

USAGE
  $ chabok cloudserver delete [-h] [--hostname <value>] [-y]

FLAGS
  -h, --help              Show CLI help.
  -y, --yes               skip the confirmation prompt
      --hostname=<value>  hostname of the cloud server to delete

DESCRIPTION
  permanently delete a cloud server

EXAMPLES
  Pick a cloud server from an interactive list, then confirm

    $ chabok cloudserver delete

  Delete a specific cloud server without a confirmation prompt

    $ chabok cloudserver delete --hostname my-vps --yes

See code: src/commands/cloudserver/delete.ts

chabok cloudserver list

list the cloud servers (VPS) on your account

USAGE
  $ chabok cloudserver list [-h]

FLAGS
  -h, --help  Show CLI help.

DESCRIPTION
  list the cloud servers (VPS) on your account

EXAMPLES
  List every cloud server on the active account

    $ chabok cloudserver list

See code: src/commands/cloudserver/list.ts

chabok cloudserver restart

restart a cloud server

USAGE
  $ chabok cloudserver restart [-h] [--hostname <value>]

FLAGS
  -h, --help              Show CLI help.
      --hostname=<value>  hostname of the cloud server to restart

DESCRIPTION
  restart a cloud server

EXAMPLES
  Pick a cloud server from an interactive list

    $ chabok cloudserver restart

  Restart a specific cloud server by hostname

    $ chabok cloudserver restart --hostname my-vps

See code: src/commands/cloudserver/restart.ts

chabok cloudserver start

turn on a cloud server

USAGE
  $ chabok cloudserver start [-h] [--hostname <value>]

FLAGS
  -h, --help              Show CLI help.
      --hostname=<value>  hostname of the cloud server to turn on

DESCRIPTION
  turn on a cloud server

EXAMPLES
  Pick a cloud server from an interactive list

    $ chabok cloudserver start

  Turn on a specific cloud server by hostname

    $ chabok cloudserver start --hostname my-vps

See code: src/commands/cloudserver/start.ts

chabok cloudserver stop

turn off a cloud server

USAGE
  $ chabok cloudserver stop [-h] [--hostname <value>]

FLAGS
  -h, --help              Show CLI help.
      --hostname=<value>  hostname of the cloud server to turn off

DESCRIPTION
  turn off a cloud server

EXAMPLES
  Pick a cloud server from an interactive list

    $ chabok cloudserver stop

  Turn off a specific cloud server by hostname

    $ chabok cloudserver stop --hostname my-vps

See code: src/commands/cloudserver/stop.ts

chabok deploy

upload the current project and deploy it to a service

USAGE
  $ chabok deploy [-h] [-p <value>] [-s <value>]

FLAGS
  -h, --help             Show CLI help.
  -p, --path=<value>     project directory to upload (defaults to the current directory)
  -s, --service=<value>  name of the service to deploy to

DESCRIPTION
  upload the current project and deploy it to a service

EXAMPLES
  Deploy the current directory, picking the service from a list

    $ chabok deploy

  Deploy the current directory to a named service

    $ chabok deploy --service my-app

  Deploy a project that lives somewhere else

    $ chabok deploy --path ./apps/api --service my-api

  Pin the target service in the project, so plain `deploy` always works

    echo '{"service": "my-app"}' > chabok.json && chabok deploy

  See exactly which files are excluded from the upload

    CHABOK_DEBUG=true chabok deploy -s my-app

See code: src/commands/deploy.ts

chabok help [COMMAND]

Display help for chabok.

USAGE
  $ chabok help [COMMAND...] [-n]

ARGUMENTS
  [COMMAND...]  Command to show help for.

FLAGS
  -n, --nested-commands  Include all nested commands in the output.

DESCRIPTION
  Display help for chabok.

See code: @oclif/plugin-help

chabok login

sign in to your hub.chabokan.net account

USAGE
  $ chabok login [-h] [-u <value>] [-p <value>] [-t <value>]

FLAGS
  -h, --help              Show CLI help.
  -p, --password=<value>  your password (prompted for if omitted)
  -t, --token=<value>     API token, for non-interactive sign-in
  -u, --username=<value>  your email address

DESCRIPTION
  sign in to your hub.chabokan.net account

EXAMPLES
  Sign in interactively (prompts for email and password)

    $ chabok login

  Sign in with an API token — the right choice for CI

    $ chabok login --token <your-api-token>

  Pass the email up front and be prompted only for the password

    $ chabok login --email [email protected]

  Add a second account (both stay signed in; switch with `account use`)

    $ chabok login --email [email protected]

See code: src/commands/login.ts

chabok plugins

List installed plugins.

USAGE
  $ chabok plugins [--json] [--core]

FLAGS
  --core  Show core plugins.

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  List installed plugins.

EXAMPLES
  $ chabok plugins

See code: @oclif/plugin-plugins

chabok plugins add PLUGIN

Installs a plugin into chabok.

USAGE
  $ chabok plugins add PLUGIN... [--json] [-f] [-h] [-s | -v]

ARGUMENTS
  PLUGIN...  Plugin to install.

FLAGS
  -f, --force    Force npm to fetch remote resources even if a local copy exists on disk.
  -h, --help     Show CLI help.
  -s, --silent   Silences npm output.
  -v, --verbose  Show verbose npm output.

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Installs a plugin into chabok.

  Uses npm to install plugins.

  Installation of a user-installed plugin will override a core plugin.

  Use the CHABOK_NPM_LOG_LEVEL environment variable to set the npm loglevel.
  Use the CHABOK_NPM_REGISTRY environment variable to set the npm registry.

ALIASES
  $ chabok plugins add

EXAMPLES
  Install a plugin from npm registry.

    $ chabok plugins add myplugin

  Install a plugin from a github url.

    $ chabok plugins add https://github.com/someuser/someplugin

  Install a plugin from a github slug.

    $ chabok plugins add someuser/someplugin

chabok plugins:inspect PLUGIN...

Displays installation properties of a plugin.

USAGE
  $ chabok plugins inspect PLUGIN...

ARGUMENTS
  PLUGIN...  [default: .] Plugin to inspect.

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Displays installation properties of a plugin.

EXAMPLES
  $ chabok plugins inspect myplugin

See code: @oclif/plugin-plugins

chabok plugins install PLUGIN

Installs a plugin into chabok.

USAGE
  $ chabok plugins install PLUGIN... [--json] [-f] [-h] [-s | -v]

ARGUMENTS
  PLUGIN...  Plugin to install.

FLAGS
  -f, --force    Force npm to fetch remote resources even if a local copy exists on disk.
  -h, --help     Show CLI help.
  -s, --silent   Silences npm output.
  -v, --verbose  Show verbose npm output.

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Installs a plugin into chabok.

  Uses npm to install plugins.

  Installation of a user-installed plugin will override a core plugin.

  Use the CHABOK_NPM_LOG_LEVEL environment variable to set the npm loglevel.
  Use the CHABOK_NPM_REGISTRY environment variable to set the npm registry.

ALIASES
  $ chabok plugins add

EXAMPLES
  Install a plugin from npm registry.

    $ chabok plugins install myplugin

  Install a plugin from a github url.

    $ chabok plugins install https://github.com/someuser/someplugin

  Install a plugin from a github slug.

    $ chabok plugins install someuser/someplugin

See code: @oclif/plugin-plugins

chabok plugins link PATH

Links a plugin into the CLI for development.

USAGE
  $ chabok plugins link PATH [-h] [--install] [-v]

ARGUMENTS
  PATH  [default: .] path to plugin

FLAGS
  -h, --help          Show CLI help.
  -v, --verbose
      --[no-]install  Install dependencies after linking the plugin.

DESCRIPTION
  Links a plugin into the CLI for development.

  Installation of a linked plugin will override a user-installed or core plugin.

  e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
  command will override the user-installed or core plugin implementation. This is useful for development work.


EXAMPLES
  $ chabok plugins link myplugin

See code: @oclif/plugin-plugins

chabok plugins remove [PLUGIN]

Removes a plugin from the CLI.

USAGE
  $ chabok plugins remove [PLUGIN...] [-h] [-v]

ARGUMENTS
  [PLUGIN...]  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ chabok plugins unlink
  $ chabok plugins remove

EXAMPLES
  $ chabok plugins remove myplugin

chabok plugins reset

Remove all user-installed and linked plugins.

USAGE
  $ chabok plugins reset [--hard] [--reinstall]

FLAGS
  --hard       Delete node_modules and package manager related files in addition to uninstalling plugins.
  --reinstall  Reinstall all plugins after uninstalling.

See code: @oclif/plugin-plugins

chabok plugins uninstall [PLUGIN]

Removes a plugin from the CLI.

USAGE
  $ chabok plugins uninstall [PLUGIN...] [-h] [-v]

ARGUMENTS
  [PLUGIN...]  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ chabok plugins unlink
  $ chabok plugins remove

EXAMPLES
  $ chabok plugins uninstall myplugin

See code: @oclif/plugin-plugins

chabok plugins unlink [PLUGIN]

Removes a plugin from the CLI.

USAGE
  $ chabok plugins unlink [PLUGIN...] [-h] [-v]

ARGUMENTS
  [PLUGIN...]  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ chabok plugins unlink
  $ chabok plugins remove

EXAMPLES
  $ chabok plugins unlink myplugin

chabok plugins update

Update installed plugins.

USAGE
  $ chabok plugins update [-h] [-v]

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Update installed plugins.

See code: @oclif/plugin-plugins

chabok service domain add

connect a custom domain to a service

USAGE
  $ chabok service domain add [-h] [-s <value>] [-d <value>]

FLAGS
  -d, --domain=<value>   domain name to connect, e.g. www.example.com
  -h, --help             Show CLI help.
  -s, --service=<value>  name of the service to connect the domain to

DESCRIPTION
  connect a custom domain to a service

EXAMPLES
  Pick the service and enter the domain interactively

    $ chabok service domain add

  Connect a domain in one non-interactive command

    $ chabok service domain add -s my-app -d www.example.com

See code: src/commands/service/domain/add.ts

chabok service domain remove

disconnect a custom domain from a service

USAGE
  $ chabok service domain remove [-h] [-s <value>] [-d <value>]

FLAGS
  -d, --domain=<value>   domain name to disconnect
  -h, --help             Show CLI help.
  -s, --service=<value>  name of the service the domain is connected to

DESCRIPTION
  disconnect a custom domain from a service

EXAMPLES
  Pick the service and enter the domain interactively

    $ chabok service domain remove

  Disconnect a domain in one non-interactive command

    $ chabok service domain remove -s my-app -d www.example.com

See code: src/commands/service/domain/remove.ts

chabok service list

list the services on your account

USAGE
  $ chabok service list [-h]

FLAGS
  -h, --help  Show CLI help.

DESCRIPTION
  list the services on your account

EXAMPLES
  List every service on the active account

    $ chabok service list

  Switch account first, then list that account’s services

    $ chabok account use -u [email protected] && chabok service list

See code: src/commands/service/list.ts

chabok service logs

read the latest logs from a service

USAGE
  $ chabok service logs [-h] [-s <value>]

FLAGS
  -h, --help             Show CLI help.
  -s, --service=<value>  name of the service to read logs from

DESCRIPTION
  read the latest logs from a service

EXAMPLES
  Pick a service from an interactive list

    $ chabok service logs

  Read logs for a specific service

    $ chabok service logs --service my-app

  Search the logs for errors

    $ chabok service logs -s my-app | grep -i error

  Save the logs to a file

    $ chabok service logs -s my-app > my-app.log

See code: src/commands/service/logs.ts

chabok service resize

change the RAM, CPU and disk allocated to a service

USAGE
  $ chabok service resize [-h] [-s <value>] [-r <value>] [-c <value>] [-d <value>]

FLAGS
  -c, --cpu=<value>      CPU cores, in steps of 0.5 (e.g. 0.5, 1, 2)
  -d, --disk=<value>     disk in GB, in steps of 5 (e.g. 5, 10, 30)
  -h, --help             Show CLI help.
  -r, --ram=<value>      RAM in GB, in steps of 0.5 (e.g. 0.5, 1, 2)
  -s, --service=<value>  name of the service to resize

DESCRIPTION
  change the RAM, CPU and disk allocated to a service

EXAMPLES
  Choose the service and every resource interactively

    $ chabok service resize

  Resize a service in one non-interactive command

    $ chabok service resize -s my-app --ram 2 --cpu 1 --disk 10

  Set only the RAM and pick the rest from the prompts

    $ chabok service resize -s my-app --ram 4

See code: src/commands/service/resize.ts

chabok service restart

restart a service

USAGE
  $ chabok service restart [-h] [-s <value>]

FLAGS
  -h, --help             Show CLI help.
  -s, --service=<value>  name of the service to restart

DESCRIPTION
  restart a service

EXAMPLES
  Pick a service from an interactive list

    $ chabok service restart

  Restart a specific service by name

    $ chabok service restart --service my-app

  Restart, then tail the logs to confirm it came back up

    $ chabok service restart -s my-app && chabok service logs -s my-app

See code: src/commands/service/restart.ts

chabok service start

start a stopped service

USAGE
  $ chabok service start [-h] [-s <value>]

FLAGS
  -h, --help             Show CLI help.
  -s, --service=<value>  name of the service to start

DESCRIPTION
  start a stopped service

EXAMPLES
  Pick a service from an interactive list

    $ chabok service start

  Start a specific service by name

    $ chabok service start --service my-app

  Same, using the short flag

    $ chabok service start -s my-app

See code: src/commands/service/start.ts

chabok service stop

stop a running service

USAGE
  $ chabok service stop [-h] [-s <value>]

FLAGS
  -h, --help             Show CLI help.
  -s, --service=<value>  name of the service to stop

DESCRIPTION
  stop a running service

EXAMPLES
  Pick a service from an interactive list

    $ chabok service stop

  Stop a specific service by name

    $ chabok service stop --service my-app

  Same, using the short flag

    $ chabok service stop -s my-app

See code: src/commands/service/stop.ts

chabok version

USAGE
  $ chabok version [--json] [--verbose]

FLAGS
  --verbose  Show additional information about the CLI.

GLOBAL FLAGS
  --json  Format output as json.

FLAG DESCRIPTIONS
  --verbose  Show additional information about the CLI.

    Additionally shows the architecture, node version, operating system, and versions of plugins that the CLI is using.

See code: @oclif/plugin-version

chabok wallet list

list the wallets on your account

USAGE
  $ chabok wallet list [-h]

FLAGS
  -h, --help  Show CLI help.

DESCRIPTION
  list the wallets on your account

EXAMPLES
  Show every wallet and its balance

    $ chabok wallet list

See code: src/commands/wallet/list.ts