Installation
Install dotsecenv on your system and verify it’s working correctly.
-
Choose your installation method
The universal installer is the fastest way to install dotsecenv. It auto-detects your platform, downloads the correct binary, verifies checksums and GPG signatures, and installs shell completions, man pages, and the shell plugin automatically.
Terminal window curl -fsSL https://get.dotsecenv.com/install.sh | bashInstall a specific version:
Terminal window curl -fsSL https://get.dotsecenv.com/install.sh | bash -s -- --version v1.2.3Customize with flags:
Terminal window curl -fsSL https://get.dotsecenv.com/install.sh | bash -s -- \--install-dir ~/.local/bin \--no-install-shell-pluginOr use environment variables (useful for CI/CD):
Terminal window VERSION=v1.2.3 INSTALL_DIR=/opt/bin \curl -fsSL https://get.dotsecenv.com/install.sh | bashRun with
--helpfor all available options. CLI flags take precedence over environment variables, which take precedence over defaults.Terminal window brew tap dotsecenv/tapbrew install dotsecenvThis automatically installs shell completions.
Download the binary directly:
Terminal window # Apple Silicon (M1/M2/M3)curl -LO https://get.dotsecenv.com/darwin/dotsecenv_0.5.2_Darwin_arm64.tar.gz# Intel Maccurl -LO https://get.dotsecenv.com/darwin/dotsecenv_0.5.2_Darwin_x86_64.tar.gz# Verify and installcurl -s https://get.dotsecenv.com/darwin/checksums.txt | sha256sum -c --ignore-missingtar -xzf dotsecenv_*.tar.gzsudo mv dotsecenv /usr/local/bin/Add the apt repository:
Terminal window # Trust the GPG keycurl -fsSL https://get.dotsecenv.com/key.asc | \sudo gpg --dearmor -o /etc/apt/keyrings/dotsecenv.gpg# Add the repositoryecho "deb [signed-by=/etc/apt/keyrings/dotsecenv.gpg] \https://get.dotsecenv.com/apt/ ./" | \sudo tee /etc/apt/sources.list.d/dotsecenv.list# Installsudo apt-get updatesudo apt-get install dotsecenvAdd the yum repository:
Terminal window cat <<EOF | sudo tee /etc/yum.repos.d/dotsecenv.repo[dotsecenv]name=DotSecEnv Repositorybaseurl=https://get.dotsecenv.com/yum/enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://get.dotsecenv.com/key.ascEOFsudo dnf install dotsecenvAdd to pacman:
Terminal window # Add to pacman.confcat <<'EOF' | sudo tee -a /etc/pacman.conf[dotsecenv]Server = https://get.dotsecenv.com/arch/$archSigLevel = Required DatabaseOptionalEOF# Trust the keycurl -fsSL https://get.dotsecenv.com/key.asc | sudo pacman-key --add -sudo pacman-key --lsign-key E60A1740BAEF49284D22EA7D3C376348F0921C59# Installsudo pacman -Sy dotsecenvIf you use mise:
Terminal window mise use github:dotsecenv/dotsecenvDownload the
.zipfor your architecture from the Releases page:dotsecenv_vX.X.X_Windows_x86_64.zipfor 64-bit Intel/AMDdotsecenv_vX.X.X_Windows_arm64.zipfor ARM64
Extract and add the binary location to your PATH.
GPG Requirement: Install Gpg4win for GPG support. When you run
dotsecenv init config, it will detect GPG automatically and set the path. You can also manually configure it in your config file:gpg:program: "C:\\Program Files (x86)\\GnuPG\\bin\\gpg.exe"Build from source (requires Go 1.25+):
Terminal window git clone https://github.com/dotsecenv/dotsecenv.gitcd dotsecenvmake buildsudo mv bin/dotsecenv /usr/local/bin/ -
Verify the installation
Terminal window dotsecenv versionYou should see output like:
version: v0.5.2commit: abc1234build at: 2025-01-15T10:30:00Zgo version: go1.24.0crypto: GOFIPS140=v1.26.0 (FIPS 140-3 mode enabled) -
Install shell completions (if not automatic)
Terminal window # System-widedotsecenv completion bash | sudo tee /etc/bash_completion.d/dotsecenv# Or user-level (add to ~/.bashrc)eval "$(dotsecenv completion bash)"Terminal window # Add to ~/.zshrceval "$(dotsecenv completion zsh)"Terminal window # Add to ~/.config/fish/config.fishdotsecenv completion fish | sourceTerminal window # Add to your PowerShell profile ($PROFILE)dotsecenv completion powershell | Out-String | Invoke-Expression
Expected Result
Section titled “Expected Result”After installation, you should be able to:
# Check versiondotsecenv version
# See available commandsdotsecenv --help
# Tab-complete commands (after shell restart)dotsecenv <TAB>Variations
Section titled “Variations”Install Script Reference
Section titled “Install Script Reference”The universal install script (install.sh) supports both CLI flags and environment variables for every setting. This makes it equally convenient for interactive use (curl | bash -s -- --flags) and automated CI/CD pipelines (ENV_VAR=value curl | bash).
Precedence order: CLI flags > environment variables > defaults.
# Piped (simplest)curl -fsSL https://get.dotsecenv.com/install.sh | bash
# Piped with CLI flagscurl -fsSL https://get.dotsecenv.com/install.sh | bash -s -- [OPTIONS]
# Piped with environment variablesVERSION=v1.2.3 curl -fsSL https://get.dotsecenv.com/install.sh | bash
# Downloaded and run locallycurl -fsSL https://get.dotsecenv.com/install.sh -o install.shchmod +x install.sh./install.sh --version v1.2.3Options
Section titled “Options”Every setting can be configured via a CLI flag or an environment variable. CLI flags take precedence over environment variables.
| Setting | CLI Flag | Env Var | Default | Description |
|---|---|---|---|---|
| Version | --version VERSION | VERSION | latest | Version to install (e.g., v1.2.3) |
| Install directory | --install-dir DIR | INSTALL_DIR | ~/.local/bin | Binary install path |
| System install | --system | SYSTEM_INSTALL | 0 | Install everything system-wide |
| Shell plugin | --[no-]install-shell-plugin | INSTALL_SHELL_PLUGIN | 1 (yes) | Install the shell plugin for zsh/bash/fish |
| Completions | --[no-]install-completions | INSTALL_COMPLETIONS | 1 (yes) | Install shell completions for bash, zsh, and fish |
| Man pages | --[no-]install-man-pages | INSTALL_MAN_PAGES | 1 (yes) | Install man pages |
| TF credentials helper | --[no-]install-tf-credentials-helper | INSTALL_TF_CREDENTIALS_HELPER | 1 (yes) | Install the Terraform credentials helper |
| Verification | --[no-]verify | VERIFY | 1 (yes) | Verify SHA-256 checksums and GPG signatures |
| Help | -h, --help | — | — | Show help and exit |
What the Installer Does
Section titled “What the Installer Does”- Detects your platform — OS (Linux or macOS) and architecture (x86_64 or arm64)
- Resolves the version — Queries the GitHub API for the latest release, or uses the version you specified
- Downloads the release archive — From GitHub Releases
- Verifies integrity — SHA-256 checksum verification and GPG signature verification (when
gpgis available) - Installs the binary — To
~/.local/binby default (or/usr/local/binwith--system) - Installs shell completions — For bash, zsh, and fish, placed in
~/.local/share/by default (or system directories with--system) - Installs man pages — To
~/.local/share/man/man1/by default (or system man directories with--system) - Installs the shell plugin — Clones to
~/.local/share/dotsecenv/plugin/by default (or system share path with--system). Additionally integrates with detected plugin managers (Oh My Zsh, Zinit, Antidote, Oh My Bash, Fisher, Oh My Fish). Fishconf.dis linked automatically if fish is present. - Installs the Terraform credentials helper — To
~/.terraform.d/plugins/by default (or system share path with--system). Skip with--no-install-tf-credentials-helper
Install Paths
Section titled “Install Paths”| Component | Default (user) | --system (macOS) | --system (Linux) |
|---|---|---|---|
| Binary | ~/.local/bin/ | /usr/local/bin/ | /usr/local/bin/ |
| Completions | ~/.local/share/ | /usr/local/share/ | /usr/share/ |
| Man pages | ~/.local/share/man/man1/ | /usr/local/share/man/man1/ | /usr/local/share/man/man1/ |
| Shell plugin | ~/.local/share/dotsecenv/plugin/ | /usr/local/share/dotsecenv/plugin/ | /usr/share/dotsecenv/plugin/ |
| TF helper | ~/.terraform.d/plugins/ | /usr/local/share/terraform/plugins/ | /usr/share/terraform/plugins/ |
Examples
Section titled “Examples”CI/CD: Install specific version, skip interactive components:
VERSION=v1.2.3 INSTALL_SHELL_PLUGIN=0 INSTALL_MAN_PAGES=0 \ curl -fsSL https://get.dotsecenv.com/install.sh | bashCustom install directory with Terraform helper:
curl -fsSL https://get.dotsecenv.com/install.sh | bash -s -- \ --install-dir /opt/dotsecenv/bin \ --install-tf-credentials-helperMinimal install (binary only):
curl -fsSL https://get.dotsecenv.com/install.sh | bash -s -- \ --no-install-shell-plugin \ --no-install-completions \ --no-install-man-pagesDownload and inspect before running:
curl -fsSL https://get.dotsecenv.com/install.sh -o install.shless install.sh # review the scriptbash install.sh --version v1.2.3Installing a Specific Version
Section titled “Installing a Specific Version”Download a specific version from GitHub releases:
VERSION="0.5.2"curl -LO "https://github.com/dotsecenv/dotsecenv/releases/download/v${VERSION}/dotsecenv_${VERSION}_Linux_x86_64.tar.gz"Verifying Package Signatures
Section titled “Verifying Package Signatures”All packages are signed with the dotsecenv release key:
pub rsa4096 2025-12-19 [SC] [expires: 2027-12-19] E60A1740BAEF49284D22EA7D3C376348F0921C59uid DotSecEnv Releases <release@dotsecenv.com>Verify the key from multiple sources:
# OpenPGP Keyservergpg --keyserver keys.openpgp.org --recv-keys E60A1740BAEF49284D22EA7D3C376348F0921C59
# Keybasecurl https://keybase.io/dotsecenv/pgp_keys.asc | gpg --importVerifying macOS Notarization
Section titled “Verifying macOS Notarization”All macOS binaries are code-signed with an Apple Developer ID certificate and notarized by Apple. This ensures Gatekeeper allows the binary to run without security warnings.
Verify code signature:
codesign --verify --verbose /usr/local/bin/dotsecenv# Expected: valid on diskVerify notarization status:
spctl --assess --verbose /usr/local/bin/dotsecenv# Expected: accepted# source=Notarized Developer IDView signature details:
codesign -dv --verbose=4 /usr/local/bin/dotsecenvUninstalling
Section titled “Uninstalling”brew uninstall dotsecenvbrew untap dotsecenv/tapsudo apt-get remove dotsecenvsudo rm /etc/apt/sources.list.d/dotsecenv.listsudo rm /usr/local/bin/dotsecenvNext Steps
Section titled “Next Steps”- First Secret — Store and use your first secret
- Getting Started — Complete initial setup