Edit a JFrog CLI Server Configuration
jf config edit updates an existing server entry in the JFrog CLI configuration. In a normal terminal, the command opens interactive prompts so you can change fields safely. In continuous integration and continuous delivery (CI/CD) or scripts, you can pass --interactive=false and flags for only the values you want to change. You must understand which fields clear when you do not supply them.
Prerequisite. JFrog CLI is installed on your PATH, and at least one server is already configured. To list server IDs, use jf config show. To create a server, see Add a JFrog CLI server configuration.
Warning
— data loss risk
When you run non-interactively (either by passing
--interactive=falseor in any environment where$CIis set, since the JFrog CLI automatically disables interactive mode when$CI=true), any field you do not explicitly pass as a flag is cleared and saved as empty. The command exits 0 with no error or warning. Always pass every field you want to preserve when you run non-interactively, and verify results withjf config show <server-id>afterwards.
This topic covers:
- Edit a server configuration interactively
- Edit a server configuration non-interactively
- Replace a full configuration with add and overwrite
Synopsis
jf config edit <server-id>Aliases: jf c edit
Where:
<server-id>: The configured server ID to edit. Runjf config showto list IDs.
Arguments
The following table describes command arguments.
| Argument | Required | Description |
|---|---|---|
server-id | Yes | The server ID to edit. Run jf config show to list configured server IDs. |
Options
The following table describes command options.
| Flag | Default | Description |
|---|---|---|
--url | — | JFrog Platform URL (for example, https://acme.jfrog.io) |
--access-token | — | JFrog Platform access token |
--access-token-stdin | false | Read the access token from standard input instead of the flag value |
--user | — | JFrog Platform username |
--password | — | JFrog Platform password or API key |
--password-stdin | false | Read the password from standard input instead of the flag value |
--interactive | true (auto false when $CI=true) | Set to false to disable prompts and apply values from flags directly |
--artifactory-url | — | Override the JFrog Artifactory URL (for example, https://acme.jfrog.io/artifactory) |
--distribution-url | — | Override the JFrog Distribution URL |
--xray-url | — | Override the JFrog Xray URL |
--pipelines-url | — | Override the JFrog Pipelines URL |
--mission-control-url | — | Override the JFrog Mission Control URL |
--ssh-key-path | — | Path to an SSH key file |
--ssh-passphrase | — | Passphrase for the SSH key |
--client-cert-path | — | Client certificate file in PEM format |
--client-cert-key-path | — | Private key for the client certificate in PEM format |
--basic-auth-only | false | Disable automatic replacement of username and password with a refreshed access token |
--enc-password | true | Set to false to skip encrypting the password through the JFrog Artifactory encryption REST API |
--insecure-tls | false | Skip TLS certificate verification (use with --enc-password=false in self-signed certificate environments) |
--disable-token-refresh | false | Disable automatic hourly refresh of the access token |
Examples
Edit a Server Configuration
The JFrog CLI presents each field with the current value shown in brackets. Press Enter to keep it, or type a new value.
To edit a server configuration interactively:
-
Run the following command:
jf config edit <server-id>Where:
<server-id>: The server ID to edit.
For example:
jf config edit myserver -
Complete the prompts. Example session (current values shown in brackets. Pressing Enter keeps them):
JFrog Platform URL [https://mycompany.jfrog.io/]: User [admin]: Password: Access Token [***]: SSH Key File Path []: Client Certificate File Path []: Client Certificate Key Path []: -
Confirm the update. After all prompts complete, the JFrog CLI prints no output.
To verify your changes:
-
Run:
jf config show <server-id>Where:
<server-id>: Same server you edited.
For example:
jf config show myserver
Non-Interactive Usage (CI/CD)
Pass --interactive=false along with the flags for every field you want to retain. Only the fields you specify are written. All other fields are cleared, so always pass every field you need to keep.
To rotate an access token non-interactively:
-
Run the following command, supplying every field you must preserve (including URL and new token):
jf config edit <server-id> \ --interactive=false \ --url=<your-server-url> \ --access-token=<Token>Where:
<server-id>: The server ID to edit.<your-server-url>: JFrog Platform URL for this server.<Token>: New access token. Do not use a sample value in real environments.
For example:
jf config edit myserver \ --interactive=false \ --url=https://mycompany.jfrog.io/ \ --access-token=<Token>
To update the platform URL after a domain change:
-
Run:
jf config edit <server-id> \ --interactive=false \ --url=<new-platform-url> \ --access-token=<Token>Where:
<server-id>: The server ID to edit.<new-platform-url>: The new JFrog Platform base URL.<Token>: Current valid access token.
For example:
jf config edit myserver \ --interactive=false \ --url=https://newdomain.jfrog.io/ \ --access-token=<Token>
Note
In CI/CD environments,
$CIis typically set totrue, which causes--interactiveto default tofalseautomatically. The same data-loss risk applies. Always pass all required flags explicitly.
Replace a full configuration with add and overwrite
Alternatively, jf config add --overwrite --interactive=false replaces the entire configuration entry and helps when you want to fully re-provision a server configuration from scratch.
To replace a server configuration using add and overwrite:
-
Run:
jf config add <server-id> \ --url=<your-server-url> \ --access-token=<Token> \ --interactive=false \ --overwriteWhere:
<server-id>: Existing server ID to replace.<your-server-url>: JFrog Platform URL.<Token>: Access token for authentication.
For example:
jf config add myserver \ --url=https://mycompany.jfrog.io/ \ --access-token=<Token> \ --interactive=false \ --overwrite
When to Use
Use jf config edit when you need to update 1 or more fields in an existing server configuration, including rotating an access token or updating a URL after a domain change. It works in both interactive terminal sessions and non-interactive environments (CI/CD, scripts) when combined with --interactive=false and the relevant flags.
Use jf config add --overwrite instead when you want to fully replace an existing configuration entry from scratch rather than patch specific fields.
Important Notes
- Non-interactive mode clears unspecified fields. When
--interactive=falseis set (or when$CI=true, which triggers non-interactive mode automatically), any field you do not pass as a flag is saved as empty. There is no warning. Always pass every field you want to keep, and verify withjf config show <server-id>afterwards. $CI=truedisables interactive mode automatically. In CI/CD pipelines where theCIenvironment variable is set, the command runs non-interactively by default, even without--interactive=false. This matches the behavior ofjf config add.- Blank input clears the field (interactive mode). In interactive mode, pressing Enter without typing keeps the current value. Typing a blank value clears the field immediately. There is no undo.
- No confirmation step. Changes are committed immediately after the final prompt (interactive) or after the command runs (non-interactive). There is no "save changes? (y/N)" prompt.
- The command produces no success output. On success the command exits 0 silently. Run
jf config show <server-id>to verify your changes. - Editing does not change the server ID. To rename a server, remove it with
jf config removeand add a new one withjf config add. - The default server status is editable during the prompts. If you step through prompts on your default server, confirm the default field to avoid unintentionally changing it.
- If you have
JFROG_CLI_ENCRYPTION_KEYset, edited credentials are re-encrypted with the same key. If the key has changed since the server was originally configured, re-enter your credentials during the edit so they are encrypted correctly.
