@chabokan.net/cli
v0.9.1
Published
Chabokan Cli for PaaS Services
Maintainers
Readme
chabok
Deploy and manage your Chabokan services from the terminal.
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 deployTo 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 infochabok account listchabok account removechabok account usechabok autocomplete [SHELL]chabok cloudserver createchabok cloudserver deletechabok cloudserver listchabok cloudserver restartchabok cloudserver startchabok cloudserver stopchabok deploychabok help [COMMAND]chabok loginchabok pluginschabok plugins add PLUGINchabok plugins:inspect PLUGIN...chabok plugins install PLUGINchabok plugins link PATHchabok plugins remove [PLUGIN]chabok plugins resetchabok plugins uninstall [PLUGIN]chabok plugins unlink [PLUGIN]chabok plugins updatechabok service domain addchabok service domain removechabok service listchabok service logschabok service resizechabok service restartchabok service startchabok service stopchabok versionchabok wallet list
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 infoSee 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 listSee 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 removeSee 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-cacheSee 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-vpsSee 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 --yesSee 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 listSee 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-vpsSee 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-vpsSee 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-vpsSee 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-appSee 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 pluginsSee 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/somepluginchabok 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 mypluginSee 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/somepluginSee 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 mypluginSee 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 mypluginchabok 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 mypluginSee 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 mypluginchabok 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.comSee 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.comSee 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 listSee 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.logSee 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 4See 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-appSee 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-appSee 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-appSee 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 listSee code: src/commands/wallet/list.ts
