| name | cli-recipes |
| description | This skill should be used when the user asks about "Infisical run", "infisical secrets", "inject secrets into a process", "Infisical export to .env", "infisical CLI commands", "manage secrets from the terminal", "Infisical folders", or "Infisical dynamic secrets lease" — the everyday Infisical CLI workflows for fetching, setting, injecting, and exporting secrets. |
Infisical CLI Recipes
Everyday command-line workflows. Assumes the CLI is installed, authenticated, and the project is linked (see the setup skill). All commands default to --env=dev and --path=/ unless overridden.
Link a project (init)
infisical init
.infisical.json resolves which environment a command uses, in this precedence: --env flag > gitBranchToEnvironmentMapping (current branch) > defaultEnvironment.
{
"workspaceId": "63ee5410a45f7a1ed39ba118",
"defaultEnvironment": "dev",
"gitBranchToEnvironmentMapping": { "main": "prod", "develop": "dev" }
}
Inject secrets into a process (run)
run is the core command — it fetches secrets and injects them as environment variables into the child process. No .env file ever touches disk.
infisical run -- npm run dev
infisical run --env=staging -- npm start
infisical run --env=prod --path=/api -- node app.js
infisical run --path=/common --path=/web -- npm run dev
infisical run --tags=backend,critical -- npm run dev
infisical run --watch -- npm run dev
infisical run --command "npm run migrate && npm start"
Useful run flags: --expand (resolve ${VAR} references in secret values, default on), --include-imports (default on), --secret-overriding (personal secrets win over shared, default on), --projectId (required under machine-identity auth without .infisical.json), --project-config-dir (point at the .infisical.json dir in a monorepo).
Read & write secrets (secrets)
infisical secrets
infisical secrets --env=prod --path=/api
infisical secrets --plain
infisical secrets get DATABASE_URL
infisical secrets get DATABASE_URL PORT
API_KEY=$(infisical secrets get API_KEY --plain --silent)
infisical secrets set STRIPE_KEY=sk_live_xxx DOMAIN=example.com
infisical secrets set TLS_KEY=@cert.pem
infisical secrets set DB_PASS=secret --type=personal
infisical secrets set --file=./.env
infisical secrets delete STRIPE_KEY DOMAIN
infisical secrets delete API_KEY --env=prod --path=/api
Folders
infisical secrets folders
infisical secrets folders create --path=/ --name=api
infisical secrets folders delete --path=/ --name=api
Seed a teammate's .env
generate-example-env produces a key-only template (reads DEFAULT:<value> hints from secret comments):
infisical secrets generate-example-env > .example-env
Export secrets to a file (export)
infisical export > .env
infisical export --format=dotenv-export --output-file=./.env
infisical export --format=json --output-file=./secrets.json
infisical export --format=yaml --output-file=./secrets.yaml
infisical export --format=csv --output-file=./secrets.csv
infisical export --env=prod --path=/api --tags=database
infisical export --expand=false
Formats: dotenv (default), dotenv-export, json, yaml, csv. For custom output, pass a Go template (Sprig functions available; secret "<projectId>" "<env>" "<path>" returns objects with .Key/.Value) and omit --format:
infisical export --template=./secrets.tmpl
Prefer infisical run over export for running apps — exporting writes plaintext secrets to disk. Export only when a tool genuinely needs a file.
Dynamic secrets & leases (dynamic-secrets)
Generate short-lived, on-demand credentials (DB users, SSH keys) and manage their leases:
infisical dynamic-secrets --env=dev --path=/
infisical dynamic-secrets lease create db-postgres --ttl=3600 --plain
infisical dynamic-secrets lease list db-postgres
infisical dynamic-secrets lease renew <lease-id> --ttl=3600
infisical dynamic-secrets lease delete <lease-id>
Scripting patterns
export API_KEY=$(infisical secrets get API_KEY --plain --silent)
infisical export --format=json | jq 'keys'
infisical run --token="$INFISICAL_TOKEN" --projectId="$PROJECT_ID" --env=prod -- ./deploy.sh
Useful global flags
| Flag | Description |
|---|
--env, -e | Environment slug (default dev) |
--path | Folder path (default /; repeatable in run/export) |
--projectId | Target project (required with machine-identity auth, no config file) |
--token | Machine-identity / service token (or INFISICAL_TOKEN) |
--domain | API URL for self-hosted / EU (or INFISICAL_API_URL) |
--plain | Raw values only, no formatting (script-friendly) |
--silent | Suppress update notices |