Installation Guide
Install the ORAS .NET CLI on Windows, macOS, or Linux.
Early Release — v0.1.0 is the first release. Some commands have stubbed implementations — see the Migration Guide for details.
Quick Start
Choose the installation method that works best for you:
| Method | Best For | Requirements |
|---|---|---|
| Binary Download | Most users — zero dependencies | None |
| Build from Source | Contributors and developers | .NET 10 SDK, Git |
Binary Download
Download self-contained single-file binaries from GitHub Releases. No .NET runtime required.
Windows
Windows x64
# Download and extract
Invoke-WebRequest -Uri "https://github.com/shizhMSFT/oras-dotnet-cli/releases/download/v0.2.1/oras-win-x64.zip" -OutFile "oras-win-x64.zip"
Expand-Archive oras-win-x64.zip -DestinationPath .
# Move to a directory in your PATH
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\bin" | Out-Null
Move-Item oras-win-x64.exe "$env:USERPROFILE\bin\oras.exe" -Force
# Add to PATH (run once)
$userPath = [Environment]::GetEnvironmentVariable("PATH", "User")
if ($userPath -notlike "*$env:USERPROFILE\bin*") {
[Environment]::SetEnvironmentVariable("PATH", "$userPath;$env:USERPROFILE\bin", "User")
}
Windows ARM64
Invoke-WebRequest -Uri "https://github.com/shizhMSFT/oras-dotnet-cli/releases/download/v0.2.1/oras-win-arm64.zip" -OutFile "oras-win-arm64.zip"
Expand-Archive oras-win-arm64.zip -DestinationPath .
Move-Item oras-win-arm64.exe "$env:USERPROFILE\bin\oras.exe" -Force
macOS
macOS Apple Silicon (ARM64) — M1/M2/M3/M4
# Download and extract
curl -LO https://github.com/shizhMSFT/oras-dotnet-cli/releases/download/v0.2.1/oras-osx-arm64.tar.gz
tar -xzf oras-osx-arm64.tar.gz
# Install
chmod +x oras-osx-arm64
sudo mv oras-osx-arm64 /usr/local/bin/oras
# Remove macOS quarantine flag
sudo xattr -d com.apple.quarantine /usr/local/bin/oras
macOS Intel (x64)
curl -LO https://github.com/shizhMSFT/oras-dotnet-cli/releases/download/v0.2.1/oras-osx-x64.tar.gz
tar -xzf oras-osx-x64.tar.gz
chmod +x oras-osx-x64
sudo mv oras-osx-x64 /usr/local/bin/oras
sudo xattr -d com.apple.quarantine /usr/local/bin/oras
Linux
Linux x64
# Download and extract
curl -LO https://github.com/shizhMSFT/oras-dotnet-cli/releases/download/v0.2.1/oras-linux-x64.tar.gz
tar -xzf oras-linux-x64.tar.gz
# Install
chmod +x oras-linux-x64
sudo mv oras-linux-x64 /usr/local/bin/oras
Linux ARM64
curl -LO https://github.com/shizhMSFT/oras-dotnet-cli/releases/download/v0.2.1/oras-linux-arm64.tar.gz
tar -xzf oras-linux-arm64.tar.gz
chmod +x oras-linux-arm64
sudo mv oras-linux-arm64 /usr/local/bin/oras
Build from Source
Prerequisites
- .NET 10 SDK or later
- Git
Clone and Build
git clone https://github.com/shizhMSFT/oras-dotnet-cli.git
cd oras-dotnet-cli
# Build
dotnet build -c Release
# Run directly
dotnet run --project src/Oras.Cli -- version
# Or publish a self-contained single-file binary
dotnet publish src/Oras.Cli/oras.csproj -c Release -r linux-x64 \
--self-contained true -p:PublishSingleFile=true
Available Runtime Identifiers (RIDs)
| RID | Platform |
|---|---|
win-x64 | Windows x64 |
win-arm64 | Windows ARM64 |
osx-x64 | macOS Intel |
osx-arm64 | macOS Apple Silicon |
linux-x64 | Linux x64 |
linux-arm64 | Linux ARM64 |
Verify Installation
After installing, verify oras is working:
oras version
Expected output:
Version: 0.2.1
OrasProject.Oras: 0.5.0
.NET Runtime: 10.0.0
Platform: linux-x64
Test the help system:
oras --help
Credential Setup
The CLI uses Docker-compatible credential storage (~/.docker/config.json). If you already use Docker or the Go oras CLI, your existing credentials work automatically — no re-login needed.
# Log in to a container registry
oras login ghcr.io -u <username> -p <token>
# Verify authentication
oras repo ls ghcr.io/<username>
See the Migration Guide if you’re switching from the Go oras CLI.
Platform-Specific Notes
Windows
- Windows Defender: First run may be slower due to antivirus scanning; subsequent runs are fast
- PATH Configuration: The install commands above add
%USERPROFILE%\binto PATH — restart your terminal after the first install
macOS
- Gatekeeper: The
xattr -d com.apple.quarantinecommand in the install steps removes the quarantine flag. Alternatively, right-click → Open in Finder - Homebrew: A Homebrew formula will be available in a future release
Linux
- SELinux: If using SELinux, set the security context:
sudo chcon -t bin_t /usr/local/bin/oras - Installation Location:
/usr/local/binis standard, but any directory in$PATHworks
Troubleshooting
Command not found
Ensure the binary’s directory is in your PATH:
# Check where oras is
which oras # macOS/Linux
where oras # Windows
Permission denied (macOS/Linux)
chmod +x /usr/local/bin/oras
macOS “cannot be opened” warning
sudo xattr -d com.apple.quarantine /usr/local/bin/oras
Supported Platforms
| Platform | Architecture | Artifact |
|---|---|---|
| Windows | x64 | oras-win-x64.zip |
| Windows | ARM64 | oras-win-arm64.zip |
| macOS | Intel (x64) | oras-osx-x64.tar.gz |
| macOS | Apple Silicon (ARM64) | oras-osx-arm64.tar.gz |
| Linux | x64 | oras-linux-x64.tar.gz |
| Linux | ARM64 | oras-linux-arm64.tar.gz |
All binaries are self-contained single-file executables — no .NET runtime required.
Next Steps
- Command Reference — All 20 commands documented
- TUI Showcase — See the interactive terminal UI in action
- Migration Guide — Switching from the Go oras CLI
- Shell Completions — Tab completion for bash, zsh, PowerShell, fish