Repository navigation
Releases: shizhMSFT/oras-dotnet-cli
Release list
v0.4.0 — Full Command Implementation
- release: v0.4.0 — full command implementation (51f9e3d)
- docs: add CI formatting learning to Dallas history (b235e51)
- style: fix whitespace formatting for CI compliance (aa84e51)
- squad: Merge decision inbox, archive sprint batch decisions (b037a5b)
- feat: implement all 18 CLI commands with real OrasProject.Oras v0.5.0 API calls (c155f71)
Full Changelog: v0.3.0...v0.4.0
v0.3.0 — TUI Overhaul
- release: v0.3.0 — TUI overhaul with Unicode art, brand colors, and polished navigation (ac74607)
- docs: update TUI documentation for v0.3.0 release (e9cfaa2)
- style: remove blank line between menu title and options (68b7c43)
- Revert "style: remove extra blank line before grouped menus" (2cc8a0c)
- style: remove extra blank line before grouped menus (9c431f9)
- style: use exact ORAS brand colors for banner letters (8820970)
- style: align menu options by grouping all choices consistently (8fdb61e)
- style: match TUI banner colors to ORAS brand purple palette (89f7577)
- refactor: replace FigletText banner with Unicode block art and color gradient (29c7cf4)
- fix: make menu separators non-selectable and show all registries (0a1ccf9)
- feat: add visual separator before Quit/Back in TUI menus (c0ebcea)
- feat: enable cyclic wrap-around navigation in all TUI menus (2eed105)
- refactor: replace ASCII indicators with Unicode symbols in TUI (7193641)
- refactor: convert artifact group to sub-menu in TUI dashboard (8dc6f07)
- Add critical unit tests for Tier 1 and Tier 2 targets (e9dc515)
- refactor: extract shared utilities, remove dead code, standardize patterns (82f1f5c)
- Fix DI patterns and helper timeout (d930ed9)
- Propagate cancellation tokens in CLI commands (67809f7)
- Refactor TUI artifact actions (022467f)
- Fix AOT-safe output formatting (4c362d7)
- chore: remove unused .copilot example config (008b79a)
- feat: group artifact operations in TUI dashboard menu (115e7a1)
- fix: use source-generated JSON for AOT-compatible credential serialization (6500814)
- [Scribe] Log orchestration & merge decisions: credential helper list protocol (be16e27)
- docs: record original project prompt in CONTRIBUTING.md (4dba3af)
- fix: show registries from credential helpers in TUI dashboard (b5ac13c)
- chore: remove stale src/oras directory (4f494a6)
- chore: remove NuGet publishing from release pipeline (c942845)
- docs(.squad): v0.2.1 release history and decision (391a6a6)
Full Changelog: v0.2.1...v0.3.0
v0.2.1
- docs: bump version to v0.2.1 and document TUI bug fixes (2367841)
- docs(.squad): orchestration + session logs for v0.2.1 bugfix release (bc366a5)
- fix: left-align ORAS FigletText banner (3289a36)
- fix: escape Spectre.Console markup indicators and set UTF-8 output encoding (8091903)
Full Changelog: v0.2.0...v0.2.1
v0.2.0
- feat: TUI redesign -- FigletText header, context menus, caching, ASCII-safe indicators, fully interactive operations (7e81a61)
- docs(.squad): merge decision inbox and write orchestration logs (1ed5cb3)
- docs: fix broken links, remove unsupported dotnet tool install references (e520792)
Full Changelog: v0.1.3...v0.2.0
v0.1.3
oras .NET CLI v0.1.3
Three critical features land: copy, backup, and restore — with full TUI support.
What's New
📋 oras copy — Copy Artifacts Between Registries
Copy OCI artifacts between registries with live progress tracking. Supports separate source/destination credentials for cross-registry workflows.
oras copy ghcr.io/myorg/app:v1.0 docker.io/myorg/app:v1.0
oras copy ghcr.io/myorg/app:v1.0 ecr.aws/myorg/app:v1.0 --recursiveOptions: --recursive (include referrers), --concurrency, --from-username/--from-password (source auth), --platform
💾 oras backup — Save Artifacts Locally (New — .NET CLI exclusive)
Back up registry artifacts to a local OCI layout directory or tar archive. Perfect for air-gapped environments, disaster recovery, and offline workflows.
oras backup ghcr.io/myorg/app:v1.0 --output ./backup
oras backup ghcr.io/myorg/app:v1.0 --output backup.tar.gz --recursive🔄 oras restore — Push Local Backups to Registry (New — .NET CLI exclusive)
Restore artifacts from a local backup to any OCI-compliant registry.
oras restore ./backup ghcr.io/myorg/app-restored:v1.0
oras restore backup.tar.gz ghcr.io/myorg/app:v1.0 --recursive🖥️ TUI Interactive Workflows
All three commands are available from the TUI dashboard with guided prompts and real-time progress bars:
Select an action:
Browse Registry
Browse Repository Tags
Login
❯ Copy Artifact
Backup Artifact
Restore Artifact
Push Artifact
Pull Artifact
Tag Artifact
Quit
Download
| Platform | File |
|---|---|
| Windows x64 | oras-win-x64.zip |
| Windows ARM64 | oras-win-arm64.zip |
| Linux x64 | oras-linux-x64.tar.gz |
| Linux ARM64 | oras-linux-arm64.tar.gz |
| macOS x64 (Intel) | oras-osx-x64.tar.gz |
| macOS ARM64 (Apple Silicon) | oras-osx-arm64.tar.gz |
Full Changelog: v0.1.2...v0.1.3
v0.1.2
oras .NET CLI v0.1.2
New TUI features for working with registries that don't support the catalog API — like ghcr.io.
What's New
🔍 Catalog-Less Registry Support
Registries like ghcr.io, ECR, and others don't expose the /v2/_catalog endpoint for listing repositories. Previously, the TUI browser would show "No repositories found" — a dead end.
Now the TUI:
- Detects unsupported catalog and shows a clear message: "This registry does not support repository listing"
- Always offers manual entry — select "Enter repository name..." to type a repository path (e.g., oras-project/oras) and jump directly to tag listing
- Works seamlessly — the manual entry option appears alongside catalog results when available, and as the primary option when catalog is unavailable
📋 Browse Repository Tags (Dashboard Shortcut)
A new quick action on the TUI dashboard: "Browse Repository Tags". Enter a full reference like ghcr.io/oras-project/oras and jump straight to tag browsing — no catalog API required.
ext Select an action: ❯ Browse Registry Browse Repository Tags ← NEW Login Push Artifact ...
Example: Browsing ghcr.io
`�ash
$oras
→ Select "Browse Repository Tags"
→ Enter: ghcr.io/oras-project/oras
→ Browse tags: v1.2.1, v1.2.0, v1.1.0, ...
`
Download
| Platform | File |
|---|---|
| Windows x64 | oras-win-x64.zip |
| Windows ARM64 | oras-win-arm64.zip |
| Linux x64 | oras-linux-x64.tar.gz |
| Linux ARM64 | oras-linux-arm64.tar.gz |
| macOS x64 (Intel) | oras-osx-x64.tar.gz |
| macOS ARM64 (Apple Silicon) | oras-osx-arm64.tar.gz |
Full Changelog: v0.1.1...v0.1.2
v0.1.1
oras .NET CLI v0.1.1
Patch release updating documentation — TUI now launches via oras with no arguments (not oras tui).
What's Changed
- TUI launch UX — Running
oraswith no arguments launches the interactive TUI dashboard directly. There is notuisubcommand. All docs and guides have been updated to reflect this. - Documentation fixes — Updated installation guide, migration guide, TUI showcase, and TUI guide to use the correct invocation.
Upgrade from v0.1.0
This is a documentation-only change — the binary behavior is identical to v0.1.0. Upgrade by downloading the new binary:
`�ash
Linux/macOS
curl -LO https://github.com/shizhMSFT/oras-dotnet-cli/releases/download/v0.1.1/oras-linux-x64.tar.gz
tar -xzf oras-linux-x64.tar.gz && chmod +x oras-linux-x64
sudo mv oras-linux-x64 /usr/local/bin/oras
oras version
`
Download
| Platform | File |
|---|---|
| Windows x64 | oras-win-x64.zip |
| Windows ARM64 | oras-win-arm64.zip |
| Linux x64 | oras-linux-x64.tar.gz |
| Linux ARM64 | oras-linux-arm64.tar.gz |
| macOS x64 (Intel) | oras-osx-x64.tar.gz |
| macOS ARM64 (Apple Silicon) | oras-osx-arm64.tar.gz |
Full Changelog: v0.1.0...v0.1.1
v0.1.0
oras .NET CLI v0.1.0
The first release of the oras .NET CLI — a cross-platform .NET 10 reimagining of the Go oras CLI for managing OCI artifacts in container registries.
⚠️ Early release — some commands have stubbed implementations. See Known Limitations for details.
Highlights
- ��️ Interactive TUI — run
oraswith no arguments to launch a rich terminal dashboard powered by Spectre.Console, featuring registry browsing, manifest inspection, and live progress - 📦 20 CLI commands — full command parity with the Go CLI (push, pull, attach, discover, copy, login/logout, manifest/blob/repo/tag operations, resolve)
- 🔐 Docker-compatible credentials — seamlessly uses
~/.docker/config.jsonand Docker credential helpers; existing Docker/Go CLI credentials work automatically - 🌍 Cross-platform binaries — self-contained single-file executables for 6 platforms (no .NET runtime required)
- 📊 Rich terminal output — colored tables, tree views, real-time progress bars with transfer speed and ETA
Fully Implemented Commands
| Command | Description |
|---|---|
oras login |
Authenticate with a container registry |
oras logout |
Remove registry credentials |
oras version |
Show CLI version, library version, .NET runtime, and platform |
Download
| Platform | File |
|---|---|
| Windows x64 | oras-win-x64.zip |
| Windows ARM64 | oras-win-arm64.zip |
| Linux x64 | oras-linux-x64.tar.gz |
| Linux ARM64 | oras-linux-arm64.tar.gz |
| macOS x64 (Intel) | oras-osx-x64.tar.gz |
| macOS ARM64 (Apple Silicon) | oras-osx-arm64.tar.gz |
Quick Start
`�ash
Linux/macOS
curl -LO https://github.com/shizhMSFT/oras-dotnet-cli/releases/download/v0.1.0/oras-linux-x64.tar.gz
tar -xzf oras-linux-x64.tar.gz && chmod +x oras-linux-x64
sudo mv oras-linux-x64 /usr/local/bin/oras
oras version
`
Built With
- .NET 10 — self-contained, high-performance runtime
- System.CommandLine 2.0.3 — modern CLI parsing
- Spectre.Console 0.50.0 — beautiful terminal rendering
- OrasProject.Oras 0.5.0 — official ORAS .NET library
Links
- 📖 Documentation
- 🔄 Migration Guide — switching from the Go CLI
- 🖥️ TUI Showcase — visual tour of the interactive UI