Get started

Installation

Install the one binary on your machine, including macOS / Linux one-line install, Windows manual download, upgrades, downgrades, and uninstall.

6 min readUpdated 3 days agoEdit on GitHub

Install the one binary onto your PATH. It should take only a few seconds.

For: first-time install, upgrade / downgrade, custom install location, uninstall.

You will finish with: one --version working in your shell, plus a clear understanding of upgrade semantics and installer environment variables.

macOS / Linux One-line Install

curl -fsSL https://1cli.dev/install.sh | bash

The script:

  1. Detects $os/$arch (darwin / linux, amd64 / arm64)
  2. Resolves the latest version from the GitHub Releases latest redirect
  3. Downloads the matching tarball from release assets and verifies SHA256
  4. Extracts one into ~/.local/bin/one
  5. Tells you if PATH needs an update

Audit the script: open https://1cli.dev/install.sh in a browser. It is plain text.

Verify after installation:

one --version
# 0.1.0 (or later)

If PATH is missing, the script will tell you what to add:

# zsh:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc

# bash:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

Open a new shell.

Windows / Manual Download

Download the matching archive from GitHub Releases (darwin/linux/windows x amd64/arm64), unzip it, and put one on PATH.

Example for Linux amd64:

curl -L -o one.tar.gz \
  https://github.com/1cli-team/one-cli/releases/latest/download/one-cli_linux_amd64.tar.gz
tar -xzf one.tar.gz
mv one ~/.local/bin/
one --version

On Windows, download one-cli_windows_amd64.zip, unzip it, and put one.exe in a directory on PATH.

Upgrade And Downgrade

install.sh checks the installed one --version before deciding what to do:

Current stateBehavior
Not installedInstall
Target is newerUpgrade automatically
Target is the sameSkip; set ONE_FORCE=1 to reinstall a damaged binary
Target is olderRefuse downgrade; set ONE_FORCE=1 if you intentionally want to downgrade

For normal upgrades, rerun the install command. Use ONE_FORCE only for downgrade or repair.

After Install: Run one skills install

install.sh only puts the one binary on PATH. To let Claude Code / Cursor / Codex and similar agents discover One CLI skills, run this once:

one skills install

It detects supported agents on your machine and lets you choose where to install the skills. The default is all detected agents; use Space to toggle and Enter to confirm.

Non-interactive usage:

one skills install --yes              # install to every detected agent
one skills install --agent claude-code # install to a single target

After upgrading the binary, rerun one skills install to refresh the skill content. It is idempotent. Current skills include one-cli for create/add/dependencies/reference workflows and one-migrate for migrating existing projects.

Provider credentials are configured once with one configure add <domain>/<backend> --profile <name> and can be reused across workspaces. Current configurable pairs are:

pairuse when
env/infisicalInfisical machine identity
deploy/aliyun-ossAliyun OSS, S3 protocol object storage
deploy/tencent-cosTencent COS, S3 protocol object storage
deploy/aws-s3AWS S3
deploy/minioself-hosted MinIO
deploy/rustfsself-hosted RustFS
deploy/r2Cloudflare R2
deploy/kustomizeKubernetes kubeconfig + context
deploy/vercelVercel API token
deploy/cloudflareCloudflare API token
deploy/edgeoneTencent EdgeOne Pages API token
container/dockerGeneric Docker registry login
container/dockerhubDocker Hub login
container/ghcrGitHub Container Registry login
container/acrAliyun ACR login

env/dotenv does not need remote credentials; it reads and writes local project .env files. The S3-compatible deploy backends share the same profile shape, but their backend IDs stay explicit (deploy/aws-s3, deploy/aliyun-oss, deploy/r2, etc.).

Common examples:

one configure add env/infisical --profile work         # Infisical credentials
one configure add deploy/aws-s3 --profile web-prod     # AWS S3 endpoint + AK/SK
one configure add deploy/kustomize --profile prod-k8s  # kubeconfig context
one configure add container/ghcr --profile ghcr        # GHCR username + PAT

See Install skill to agent.

Environment Variables

install.sh accepts:

VariableDefaultMeaning
ONE_VERSIONresolved from the latest GitHub releaseLock the version, for example v0.1.0
ONE_INSTALL_DIR$HOME/.local/binInstall directory
ONE_FORCE0Set to 1 to allow downgrade, same-version reinstall, or overwrite a binary whose version cannot be read
ONE_REPO_URLhttps://github.com/1cli-team/one-cliGitHub repo URL override for debugging
ONE_RELEASE_BASE_URL$ONE_REPO_URL/releases/downloadRelease asset download base override
ONE_LATEST_URL$ONE_REPO_URL/releases/latestLatest release resolver override
ONE_SKIP_VERIFY0Set to 1 to skip SHA256 verification; debugging only

Install a specific older version into a custom directory:

curl -fsSL https://1cli.dev/install.sh | ONE_VERSION=v0.1.0 ONE_INSTALL_DIR=/opt/bin bash

Uninstall

rm ~/.local/bin/one

If you also want to remove skills installed by one skills install, delete the corresponding ~/.<agent>/skills/one-cli / ~/.<agent>/skills/one-migrate symlinks, or delete the whole ~/.one/skills-store/ directory. To remove local profile credentials and cache, delete ~/.config/one.

Local Repo Build For Contributors

If you are changing One CLI itself, read CONTRIBUTING.md. Short version:

git clone https://github.com/1cli-team/one-cli
cd one-cli
brew install go go-task     # macOS; adapt for Linux
task install-local           # build current branch and symlink to ~/.local/bin/one
hash -r
which one
one --version

For the full contributor flow, see CONTRIBUTING.md. For command-surface reference, see Command overview.

Installed?

Go to Quick start and create your first workspace.