The CLI uses authentication to verify your identity. You can authenticate using:
Browser Login (default): Opens a browser for authentication
Direct Login: Provide email and password via flags or environment variables for non-interactive workflows
Interactive CLI Login: Use the --interactive flag to enter credentials via CLI prompts
When authenticated, a token is generated and saved in your system Keyring to allow you to make future interactions with the CLI.To change where the login credentials are stored, visit the vaults command.If you have added multiple users, you can switch between the users by using the user command.
JWT Token Output:
For user authentication with the --plain --silent flags: outputs only the JWT access token (useful for scripting)
For machine identity authentication: an access token is always printed to the console
Use the --plain flag to print only the token in plain text and the --silent flag to disable update alerts.Both flags are ideal for capturing the token in environment variables or CI/CD pipelines.
Machine identity authentication methods are designed for automated systems, services, and CI/CD pipelines.
Universal Auth
The Universal Auth method is a simple and secure way to authenticate with Infisical. It requires a client ID and a client secret to authenticate with Infisical.
The Native Kubernetes method is used to authenticate with Infisical when running in a Kubernetes environment. It requires a service account token to authenticate with Infisical.
Path to the Kubernetes service account token to use. Default: /var/run/secrets/kubernetes.io/serviceaccount/token.
1
Create a Kubernetes machine identity
To create a Kubernetes machine identity, follow the step by step guide outlined here.
2
Obtain access an token
Run the login command with the following flags to obtain an access token:
Copy
Ask AI
# --service-account-token-path is optional, and will default to '/var/run/secrets/kubernetes.io/serviceaccount/token' if not provided. infisical login --method=kubernetes --machine-identity-id=<machine-identity-id> --service-account-token-path=<service-account-token-path>
Native Azure
The Native Azure method is used to authenticate with Infisical when running in an Azure environment.
The login command supports a number of flags that you can use for different authentication methods. Below is a list of all the flags that can be used with the login command.
--method
Copy
Ask AI
infisical login --method=<auth-method> # Optional, will default to 'user'.
The ID of the machine identity. This is required if the --method flag is set to kubernetes, azure, gcp-id-token, gcp-iam, or aws-iam.
The machine-identity-id flag can be substituted with the INFISICAL_MACHINE_IDENTITY_ID environment variable.
--service-account-token-path
Copy
Ask AI
infisical login --service-account-token-path=<service-account-token-path> # Optional Will default to '/var/run/secrets/kubernetes.io/serviceaccount/token'.
The path to the Kubernetes service account token to use for authentication.
This is optional and will default to /var/run/secrets/kubernetes.io/serviceaccount/token.
The service-account-token-path flag can be substituted with the INFISICAL_KUBERNETES_SERVICE_ACCOUNT_TOKEN_PATH environment variable.
--service-account-key-file-path
Copy
Ask AI
infisical login --service-account-key-file-path=<gcp-service-account-key-file-path> # Optional, but required if --method=gcp-iam.
User email address. Required if you want to do a non-interactive login when the —method flag is set to user. Must be used together with the --password and --organization-id flag.
You can omit the —method=user if you want as it’s the default method.
The email flag can be substituted with the INFISICAL_EMAIL environment variable.
User password. Required if you want to do a non-interactive login when the —method flag is set to user. Must be used together with the --email and --organization-id flag.
For security in CI/CD environments, prefer using the INFISICAL_PASSWORD environment variable instead of passing the password as a command-line flag.
You can omit the —method=user if you want as it’s the default method.
The password flag can be substituted with the INFISICAL_PASSWORD environment variable.
User organization id. Required if you want to do a non-interactive login when the —method flag is set to user. Must be used together with the --email and --password flag.
You can omit the —method=user if you want as it’s the default method.
The organization-id flag can be substituted with the INFISICAL_ORGANIZATION_ID environment variable.
Forces interactive CLI login where you’ll be prompted to enter your email, password, and select your organization in the terminal, instead of opening a browser.
When used with direct user login or machine identity authentication, outputs only the JWT access token without any additional formatting. This is useful for scripting and CI/CD pipelines where you need to capture the token.
Copy
Ask AI
# Example: Capture token in a variableexport INFISICAL_TOKEN=$(infisical login --email=<email> --password=<password> --organization-id=<organization-id> --plain --silent)
Use it alongside the silent flag to disable all messages in the console except from the access token.
Specifies the Infisical API URL for non-US Cloud instances. This flag is required when connecting to any instance other than US Cloud (e.g. EU Cloud or self-hosted).
Copy
Ask AI
# Example for EU Cloudinfisical login --domain="https://eu.infisical.com"# Example for localhostinfisical login --domain="http://localhost:8080"# Example for self-hostedinfisical login --domain="https://your-self-hosted-infisical.com"
Critical: If you use --domain during login, you must also include it on all subsequent CLI commands (e.g., infisical secrets, infisical export, etc.). Alternatively, set the INFISICAL_API_URL environment variable to avoid having to use --domain on every command. Refer to the Domain Configuration section for more details.
Using Environment Variables (Recommended for CI/CD)
Copy
Ask AI
# Set credentials as environment variablesexport INFISICAL_EMAIL="[email protected]"export INFISICAL_PASSWORD="your-password"export INFISICAL_ORGANIZATION_ID="your-organization-id"# Login without additional flagsinfisical login# Or with plain output for token captureexport INFISICAL_TOKEN=$(infisical login --plain --silent)
For non-US Cloud instances: If you’re using EU Cloud or a self-hosted instance, you must set INFISICAL_API_URL before login or use --domain on all commands. Refer to the Domain Configuration section for more details.
Interactive CLI Login
Interactive login prompts you to enter credentials in the terminal instead of opening a browser.
Copy
Ask AI
# Force interactive CLI logininfisical login --interactive
You’ll be prompted to enter:
Email address
Password
After the prompt, you will be shown a list of organizations to choose from.
If you have SSO enabled, we recommend using the default browser login.
In this example we’ll be using the universal-auth method to login to obtain an Infisical access token, which we will then use to fetch secrets with.
1
Obtain an access token
Copy
Ask AI
export INFISICAL_TOKEN=$(infisical login --method=universal-auth --client-id=<client-id> --client-secret=<client-secret> --silent --plain) # silent and plain is important to ensure only the token itself is printed, so we can easily set it as an environment variable.
For non-US Cloud instances: If you’re using EU Cloud or a self-hosted instance, you must set INFISICAL_API_URL before login or use --domain on all commands. Refer to the Domain Configuration section for more details.
Now that we’ve set the INFISICAL_TOKEN environment variable, we can use the CLI to interact with Infisical. The CLI will automatically check for the presence of the INFISICAL_TOKEN environment variable and use it for authentication.Alternatively, if you would rather use the --token flag to pass the token directly, you can do so by running the following command:
Copy
Ask AI
infisical [command] --token=<your-access-token> # The token output from the login command.