- Byteplus CLI Tool
- Minimum Go version required: 1.5+, recommended: 1.12+
- Download the latest version from: https://github.com/byteplus-sdk/byteplus-cli/releases
- Select the version for your OS, extract and use directly
- Use
build.shto compile the client
# For macOS
sh build.sh darwin
# For Windows
sh build.sh windows
# For Linux
sh build.sh linuxAdd bp to your system PATH
- Check if
$PATHincludes/usr/local/bin. If not, add it accordingly. - Run the following command to copy
bpto/usr/local/bin:
sudo cp bp /usr/local/binTo call services, you need AK, SK, and region. You can configure them in two ways:
- Use
bp configure set:
bp configure set --profile test --region cn-beijing --access-key ak --secret-key sk --endpoint endpointSupported Parameters:
profile: Configuration name. If it exists, it will be updated; otherwise, a new one will be created.
access-key: Your AK
secret-key: Your SK
region: Region, e.g., cn-beijing
session-token: Required for role-based access
disable-ssl: Whether to disable SSL, default is false
endpoint: Optional; the default value is open.volcengineapi.com. Ignored when endpoint-resolver is standard.
endpoint-resolver: Optional; set to standard (case-insensitive) to use the standard resolver. Otherwise, the CLI uses endpoint when provided.
use-dual-stack: Optional; enable dual-stack endpoints when true. The default value is false.- Use Environment Variables:
export BYTEPLUS_ACCESS_KEY=AK
export BYTEPLUS_SECRET_KEY=SK
export BYTEPLUS_REGION=cn-beijing
export BYTEPLUS_DISABLE_SSL=false
export BYTEPLUS_SESSION_TOKEN=sessionToken
export BYTEPLUS_ENDPOINT=endpoint
export BYTEPLUS_ENDPOINT_RESOLVER=standard
export BYTEPLUS_USE_DUALSTACK=truebpwill prioritize using the credentials in the active profile.- After adding or modifying a profile, it becomes the active profile.
- If multiple profiles exist, switch using:
bp configure profile --profile [profile_name]bp configure get --profile [profile_name]If omitted, current profile is shown. If profile doesn't exist, default values are returned.
bp configure listbp configure profile --profile [profile_name]If profile doesn't exist, the switch fails with an error message.
bp configure set --profile [name] --region [region] --access-key [AK] --secret-key [SK] --endpoint [endpoint]Additional Fields:
- access-key
- secret-key
- region
- session-token
- disable-ssl
- endpoint
- endpoint-resolver
- use-dual-stack
bp configure delete --profile [profile_name]If the deleted profile is the current one, bp will randomly pick another available profile.
bp configure sso-session --name [session name] --start-url [SSO Start URL] --region [region] --registration-scopes [scope1,scope2]This command creates or updates an SSO session for later use with configure sso. Behaviors and parameters:
name: SSO session name; if omitted, enter interactive selection/creation mode
start-url: SSO Start URL; required; if editing an existing session, Enter keeps the default
region: SSO region; required; default is cn-beijing, existing session values are used as defaults
registration-scopes: SSO scope list (comma-separated); allowed values are cloudidentity:account:access, offline_accessInteractive flow notes:
- If no sessions exist, you will be prompted to enter a non-empty session name
- If sessions exist, you get a searchable list with "" to add one
- When editing, Start URL, Region, and Scopes are pre-filled; press Enter to keep defaults
- Scopes are deduplicated and validated; empty input falls back to cloudidentity:account:access, offline_access
bp configure sso --profile [profile name] --sso-session [session name]This command configures an SSO profile, links an SSO session, runs the device authorization flow, and writes the profile to ~/.byteplus/config.json. Behaviors and parameters:
profile: profile name; empty uses {sso-role-name}-{sso-account-id} as the default
sso-session: SSO session name; if omitted, enter interactive selection/creation mode
no-browser: Adding the `--no-browser` parameter to the command line disables the browser from opening; omitting it will automatically open the browser by default.Notes:
- If the profile already exists and is not an SSO profile, the command will refuse to overwrite it
- If the SSO session does not exist, you will be guided to create it and enter Start URL, Region, and Scopes
bp sso login --profile [profile name]
# or
bp sso login --sso-session [session name]This command performs an explicit SSO login, runs a new authorization flow, obtains an access token, and caches it. Each execution re-authenticates the current SSO session and does not silently exchange an existing refresh_token for an access_token. Parameters:
profile: the SSO profile to use; must exist, be of sso type, and have sso-session configured
sso-session: the SSO session to use; the session must exist and be valid
no-browser: Adding the `--no-browser` parameter to the command line disables the browser from opening; omitting it will automatically open the browser by default.Login behavior:
- If neither profile nor sso-session is provided: error when no sessions are configured; use the only session if one exists; otherwise enter interactive selection with search
- Only the device code flow is supported; use
--no-browserto disable auto-opening the browser - When running business commands, if the cached SSO access token is expired or close to expiry, the CLI attempts to silently refresh the access token with the cached refresh_token before requesting role credentials
- If the refresh_token is missing, the client registration has expired, or refresh fails, business commands do not automatically open a browser for re-authorization and will ask you to run
bp sso loginagain
bp sso logout --sso-session [session name]This command logs out from SSO by revoking the cached token and clearing local credentials. Parameters:
sso-session: the SSO session name to log outLogout behavior:
- If sso-session is not provided: error when no sessions are configured; logout the only session if one exists; otherwise enter interactive selection that includes "All SSO sessions"
- Batch logout logs out each session and returns aggregated errors on failure
Run bp completion --help to check how to enable shell auto-completion.
- View bash script:
bp completion bash - Install bash-completion:
yum install bash-completion
# or
apt-get install bash-completion- Enable it:
source /usr/share/bash-completion/bash_completionAdd it to ~/.bashrc for persistence.
- Configure auto-completion:
echo 'source <(bp completion bash)' >> ~/.bashrc
bp completion bash > /etc/bash_completion.d/bpThen reload shell or run source ~/.bashrc
- Enable
compinit:
echo "autoload -U compinit; compinit" >> ~/.zshrc- Configure:
bp completion zsh > "${fpath[1]}/_bp"Then reload shell or run source ~/.zshrc
Enable color:
bp enable-colorDisable color:
bp disable-color- View available services:
bp [-h|--help]- View service's supported actions:
bp ecs [-h|--help]bp versionbp -vBasic structure:
bp <service> <action> [--param1 val1 --param2 val2 ...]Example:
bp ecs DescribeInstances
bp rds_mysql ListDBInstanceIPLists --InstanceId "xxxxxx"Support JSON input:
bp rds_mysql ModifyDBInstanceIPList --InstanceId "xxxxxx" --GroupName "xxxxxx" --IPList '["10.20.30.40", "50.60.70.80"]'Support --body for application/json:
bp rds_mysql ModifyDBInstanceIPList --body '{"InstanceId":"xxxxxx", "GroupName": "xxxxxx", "IPList": ["10.20.30.40", "50.60.70.80"]}'