GH-SECRET-SET(1) GitHub CLI manual GH-SECRET-SET(1) NAME gh-secret-set - Create or update secrets SYNOPSIS gh secret set [flags] DESCRIPTION Set a value for a secret on one of the following levels: - repository (default): available to GitHub Actions runs, Agents sessions, or Dependabot in a repository - environment: available to GitHub Actions runs for a deployment environment in a repository - organization: available to GitHub Actions runs, Agents sessions, Dependabot, or Codespaces within an organization - user: available to Codespaces for your user Organization and user secrets can optionally be restricted to only be available to specific repositories. Secret values are locally encrypted before being sent to GitHub. OPTIONS -a, --app Set the application for a secret: {actions|agents|codespaces|dependabot} -b, --body The value for the secret (reads from standard input if not specified) -e, --env Set deployment environment secret -f, --env-file Load secret names and values from a dotenv-formatted file --no-repos-selected No repositories can access the organization secret --no-store Print the encrypted, base64-encoded value instead of storing it on GitHub -o, --org Set organization secret -r, --repos List of repositories that can access an organization or user secret -u, --user Set a secret for your user -v, --visibility (default "private") Set visibility for an organization secret: {all|private|selected} OPTIONS INHERITED FROM PARENT COMMANDS -R, --repo <[HOST/]OWNER/REPO> Select another repository using the [HOST/]OWNER/REPO format EXIT CODES 0: Successful execution 1: Error 2: Command canceled 4: Authentication required NOTE: Specific commands may have additional exit codes. Refer to the command's help for more information. EXAMPLE # Paste secret value for the current repository in an interactive prompt $ gh secret set MYSECRET # Read secret value from an environment variable $ gh secret set MYSECRET --body "$ENV_VALUE" # Set secret for a specific remote repository $ gh secret set MYSECRET --repo origin/repo --body "$ENV_VALUE" # Read secret value from a file $ gh secret set MYSECRET < myfile.txt # Set secret for a deployment environment in the current repository $ gh secret set MYSECRET --env myenvironment # Set organization-level secret visible to both public and private repositories $ gh secret set MYSECRET --org myOrg --visibility all # Set organization-level secret visible to specific repositories $ gh secret set MYSECRET --org myOrg --repos repo1,repo2,repo3 # Set organization-level secret visible to no repositories $ gh secret set MYSECRET --org myOrg --no-repos-selected # Set user-level secret for Codespaces $ gh secret set MYSECRET --user # Set repository-level secret for Dependabot $ gh secret set MYSECRET --app dependabot # Set multiple secrets imported from the ".env" file $ gh secret set -f .env # Set multiple secrets from stdin $ gh secret set -f - < myfile.txt SEE ALSO gh-secret(1) Sep 2026 GH-SECRET-SET(1)