InfraDots logo
Documentation

idp-cli

idp is the InfraDots command-line tool. It runs the same plan and apply workflows and manages the same workspaces, variables, and VCS connections you see in the dashboard — straight from your terminal or CI.

💡 Tip

[!tip] Want your editor's AI assistant to run these commands for you? See AI in Your IDE. It adds a skill that teaches Claude Code, Cursor, and others to drive idp safely — plan before apply, never print secrets, watch jobs to completion.

Install

Homebrew (macOS / Linux)

brew install infradots/tap/idp

Go

go install github.com/infradots/idp-cli@latest

Release binaries

Download the archive for your platform from the Releases page and place the idp binary on your PATH.

Verify the install:

idp version

Authenticate

idp auth login

This opens your browser, signs you in, and saves an API token to ~/.idp/config.yaml. For a self-hosted or local install, point it at the right hosts:

idp auth login --host http://localhost:8000 --app-url http://localhost:3001

For CI or headless environments, skip the browser and pass a token created in the web app under Settings → Tokens:

idp auth login --host https://api.infradots.com --token "$INFRADOTS_TOKEN" --no-prompt

Confirm it worked:

idp org list

Configuration lives at ~/.idp/config.yaml and supports multiple profiles:

default_profile: prod

profiles:
  prod:
    host: https://api.infradots.com
    web_url: https://app.infradots.com
    token: <jwt>
    default_org: my-org

💡 Tip

[!tip] idp resolves credentials from flags first, then INFRADOTS_* environment variables, then the active profile in ~/.idp/config.yaml. Set default_org in your profile so you don't have to pass --org on every command.

Commands

GroupSubcommands
idp authlogin · logout · token list|create|revoke
idp orglist · get <org>
idp workspace (alias ws)list · get · create · update · delete
idp joblist · run · get · approve · cancel · discard · output
idp variable (alias var)list · set · delete
idp vcslist · create · delete
idp agentlist · history

Workspaces

idp workspace list --org my-org
idp workspace create --org my-org --name prod-vpc --vcs <vcs-id> --repo my-org/infra
idp workspace get prod-vpc --org my-org

Jobs (plan / apply)

idp job run --org my-org --workspace prod-vpc --type plan
idp job get <job-id> --org my-org --workspace prod-vpc --watch
idp job output <job-id> --org my-org --workspace prod-vpc --stage plan
idp job approve <job-id> --org my-org

--type accepts plan, apply, or plan_only. idp job get --watch polls until the job reaches a terminal state.

Variables

idp variable list --org my-org --workspace prod-vpc
idp variable set TF_VAR_region us-east-1 --org my-org --workspace prod-vpc
idp variable set TF_VAR_db_password '<secret>' --org my-org --workspace prod-vpc --sensitive

Omit --workspace to manage org-level variables. Use --sensitive for secrets and --hcl for HCL values.

VCS connections

idp vcs list --org my-org
idp vcs create --org my-org --name github-main --type github --token <pat>

Auth & tokens

idp auth token list
idp auth token create --description "ci pipeline"
idp auth token revoke <token-id>

Global flags & output

FlagBehavior
--org, -oOrganization name (or set default_org in your profile)
--profileConfig profile to use
--host / --tokenOverride the API host / token
--output, -fOutput format: table (default), json, yaml
--quiet, -qPrint only IDs/names (pipe-friendly)

Run idp <command> --help for the exact flags on any subcommand.

Drive it from your IDE

To let your editor's AI assistant run these commands on your behalf, add the InfraDots skill — see AI in Your IDE.