Follow guidance from CLI Output Proposal for ORAS CLI THe above document calls out the general problems with copy. Below I try to outline the possible set of improvements.
This is non trivial to implement and requires terminal manipulation to obtain things like progress which oras already supports.
The command below shows how a set of artifacts can be copied. We should consider if
~ oras copy -r $IMAGE registry.twnt.co/copy-testimage:latest
Starting copy...
Copying [registry] ghcr.io/toddysm/cssc-pipeline/copy-testimage:latest => [registry] registry.twnt.co/copy-testimage:latest
Digest: sha256:b4c0ed46d75ff7a1e8bcc166156db356dbb3768181d010a639ad4b4dd2f43db7
Copying referrer artifacts...
[artifact] application/vnd.cyclonedx+json (sha256:0c3b33f215cb656e66954bfdbb0a68929c7a23843100f2cafa0b3fb2d6be6375)
ββ Copying blob (sha256:...) (size: 12345 bytes) [in progress]
ββ Copied blob (sha256:...) (size: 67890 bytes) [done]
[artifact] application/sarif (sha256:bacff58d032857055dcacb3e4fe418e1dd00c54c636b0196b0efe565a6ba7817)
ββ referred by: (sha256:fae8a85a...)
ββ Copying blob (sha256:...) (size: 23456 bytes) [in progress]
ββ Copied blob (sha256:...) (size: 78901 bytes) [done]
[artifact] application/vnd.dev.cosign.artifact.sig.v1+json (sha256:fae8a85a05bfb8c9c6d63cda2b2c216a277458c7519e6382d6919d3c9926333f)
ββ referred by: (sha256:fae8a85a...)
ββ Copying blob (sha256:...) (size: 34567 bytes) [in progress]
ββ Copied blob (sha256:...) (size: 89012 bytes) [done]
[artifact] application/vnd.dev.cosign.artifact.sig.v1+json (sha256:26971ffc0fd8b5464ab7144e72f02c0ca7cbaf819d810dcab2cfb3488a0b0b53)
ββ referred by: (sha256:fae8a85a...)
ββ Copying blob (sha256:...) (size: 45678 bytes) [in progress]
ββ Copied blob (sha256:...) (size: 90123 bytes) [done]
Other options without the enclosing parenthisis
~ oras copy -r $IMAGE registry.twnt.co/copy-testimage:latest
Starting copy...
Copying [registry] ghcr.io/toddysm/cssc-pipeline/copy-testimage:latest => [registry] registry.twnt.co/copy-testimage:latest
Digest: sha256:b4c0ed46d75ff7a1e8bcc166156db356dbb3768181d010a639ad4b4dd2f43db7
Copying referrer artifacts...
[artifact] application/vnd.cyclonedx+json Digest: 0c3b33f215cb656e66954bfdbb0a68929c7a23843100f2cafa0b3fb2d6be6375
ββ Copying blob sha256:... size: 12345 bytes [in progress]
ββ Copied blob sha256:... size: 67890 bytes [done]
[artifact] application/sarif Digest: bacff58d032857055dcacb3e4fe418e1dd00c54c636b0196b0efe565a6ba7817
ββ Copying blob sha256:... size: 23456 bytes [in progress]
ββ Copied blob sha256:... size: 78901 bytes [done]
[artifact] application/vnd.dev.cosign.artifact.sig.v1+json Digest: fae8a85a05bfb8c9c6d63cda2b2c216a277458c7519e6382d6919d3c9926333f
referred by: 0c3b33f...
ββ Copying blob sha256:... size: 34567 bytes [in progress]
ββ Copied blob sha256:... size: 89012 bytes [done]
[artifact] application/vnd.dev.cosign.artifact.sig.v1+json Digest: 26971ffc0fd8b5464ab7144e72f02c0ca7cbaf819d810dcab2cfb3488a0b0b53
referred by: fae8a85a...
ββ Copying blob sha256:... size: 45678 bytes [in progress]
ββ Copied blob sha256:... size: 90123 bytes [done]
β The above with the parenthisis enclosed digest seems more readable but this might be incosistent with the rest of ORAS. So maybe minor tweak might help make it more readable but consistent.