Back to Moon

proto v0.44 - New terminal user interface and versions command

website/blog/2024-12-25_proto-v0.44.mdx

2.2.42.7 KB
Original Source

import Image from '@site/src/components/Image';

Merry Christmas and happy holidays 🎄! In this release, we're introducing a new terminal user interface.

<!--truncate-->

New terminal output

We're excited to introduce new terminal outputs, also known as a terminal user interface (TUI), for all commands! We stumbled upon the iocraft Rust crate, which is a library for rendering terminal output using components and JSX-like syntax. As fans of React and Ink, this felt like the perfect opportunity to revisit all of our commands and implement a new interface unique to proto (and moon in the future).

Here are some examples of this new output. A lot of it is still a work in progress and will be tweaked going forward, but we're already impressed with what iocraft can achieve!

Notices

<Image src={require('./img/proto/v0.44/notice-success.png')} width="90%" /> <Image src={require('./img/proto/v0.44/notice-caution.png')} width="90%" />

Information

<Image src={require('./img/proto/v0.44/info-env.png')} width="90%" /> <Image src={require('./img/proto/v0.44/info-plugin.png')} width="90%" />

Tables

<Image src={require('./img/proto/v0.44/table-outdated.png')} width="90%" /> <Image src={require('./img/proto/v0.44/table-search.png')} width="90%" />

Prompts

<Image src={require('./img/proto/v0.44/confirm.png')} width="90%" /> <Image src={require('./img/proto/v0.44/select.png')} width="90%" />

Progress

<Image src={require('./img/proto/v0.44/progress.png')} width="90%" />

New proto versions command

After much feedback, we've decided to merge the proto list and proto list-remote commands into a new command, proto versions. This command will list all versions available for the provided tool, while also annotating which of those versions has been installed locally.

This data can now be accessed as JSON by passing the --json flag.

shel
$ proto versions node
...
22.0.0
22.1.0
22.2.0
22.3.0
22.4.0
22.4.1
22.5.0
22.5.1
22.6.0
22.7.0
22.8.0
22.9.0
22.10.0
22.11.0
22.12.0
23.0.0
23.1.0
23.2.0
23.3.0
23.4.0 - installed 12/19/24
23.5.0 - installed 12/25/24

Other changes

View the official release for a full list of changes.

  • Added a --yes option to proto outdated, that skips confirmation prompts.
  • Added a --json option to proto clean, to capture the cleaned result as JSON.
  • Updated proto clean to accept a target in which to clean as the 1st argument. For example, proto clean cache.
  • Moved the --json and --yes options into global options.