ut

Dev tools

command line utilities

SHOW HN2025

170points
63comments
#411of 3,837 in 2025
Top 11%of 2025 by points

How HN took it

MixedNo clear lean

10 positive, 14 neutral or asking, 1 mixed, 16 critical, out of 41 comments about the project. Thread score -0.23.

Idea: 6 for, 9 againstExecution: 0 for, 4 againstDesign: 3 for, 1 againstDocs: 0 for, 1 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Convenient single binary of handy tools, busybox-like

    From 3 comments
    • The single binary thing reminds me of BusyBox - https://en.wikipedia.org/wiki/BusyBox Sometimes it can be quite convenient to grab a single binary that does a whole bunch of…
      simonw on HN
    • I think for packaging it's okay to "have" lots of things that individually "do" one thing. The important part is that the user controls the entry points. It's more Unixy to allow…
      01HNNWZ0MV43FF on HN
    • I agree. This feels like a level two busybox/toybox. Nice job.
      mrbluecoat on HN

Objections

  • Goes against Unix do one thing well philosophy; too much functionality

    From 3 comments
    • I can understand why people would find `ut` convenient. That said, I would caution against trying to include too much functionality. What is too much? I don't have a clear idea…
      xpe on HN
    • I agree. this tool feels like an all-in-one swiss knife. granted, it is useful. But it goes directly against one of the UNIX core values which is "do one thing and do it well".…
      Jotalea on HN
    • This is literally anti-unix.
      Aperocky on HN
  • Hashing reads stdin to EOF and requires valid UTF-8

    From 1 comment
    • The first thing I checked was how hashing is implemented and two things stand out to me: 1. Input must be valid UTF-8. 2. stdin is read to EOF instead of being read incrementally…
      heavensteeth on HN
  • No tests validating the tools

    From 1 comment
    • Thanks for disclosing your use of GenAI, that kind of transparency is nice to see up front. On that note though, I took a random example (`calc.rs`) and noticed there was no unit…
      klardotsh on HN
  • Dependency supply chain risk

    From 1 comment
    • When importing a library, it becomes part of your project, therefore it becomes your responsibility to ensure that the imported code is safe and sound. I am seeing the list of…
      BrouteMinou on HN

Requests

  • Add UUID v7

    From 2 comments
    • How about uuidv7? That’s catching on, as it’s got improved sortability / clustering behavior in DBs
      lukevp on HN
    • > Data Generation: uuid (v1, v3, v4, v5) The new versions 7 and 8 are really a must these days, especially v7.
      BerislavLopac on HN
  • Publish as Python and npm packages or via cargo-binstall

    From 2 comments
    • Slightly odd suggestion: package it up as both a Python and an NPM module - both just thin wrappers around the combined binary - and then people within those ecosystems will be…
      simonw on HN
    • I will personally never want to install uvx or npx. Another suggestion is to enable cargo-binstall, it allows just to install cargo binaries conveniently, and cargo-binstall is…
      pepa65 on HN
  • Add retry subcommand with exponential backoff

    From 1 comment
    • Would be cool if this also had a `retry` sub-command, for running any commands with an exponential backoff retry logic. Similar to these Rust tools:…
      Narushia on HN
  • Add compression with password

    From 1 comment
    • As it is a utility toolkit, I'd like to have: - the Web & Network section expanded: the copyparty features (github.com/9001/copyparty) and curlie (github.com/rs/curlie). -…
      dxxvi on HN

Questions

  • Why everything in one binary instead of separate binaries

    From 1 comment
    • Why is everything in the same binary? Why not multiple binaries, one for each function? That way people can install only the ones they need, a-la Unix tools: do only one thing…
      guessmyname on HN
  • What is the definition of done and scope limit

    From 1 comment
    • On what basis are new features included? Has the creator thought about the definition of "done"? Will it grow indefinitely like a katamari ball? [1]:…
      xpe on HN

Alternatives named

  • xh and miniserve for HTTP

    From 1 comment
    • I can understand why people would find `ut` convenient. That said, I would caution against trying to include too much functionality. What is too much? I don't have a clear idea…
      xpe on HN
  • coreutils base64

    From 1 comment
    • You don't even have to go that far, `base64` is a coreutil (https://github.com/coreutils/coreutils/blob/ebfd80083b4fe4ae37f50bbc2fcf3cfaee50a248/src/basenc.c#L467). The point of…
      ksdme9 on HN
  • DevToys CLI

    From 1 comment
    • DevToys (https://github.com/DevToys-app/DevToys) has a CLI version like this.
      gdotdesign on HN
  • openssl subcommands

    From 1 comment
    • Many of this utilities are bundled with the "openssl" tool: ``` $ echo -n foobar | openssl base64 -e Zm9vYmFy ```
      dolmen on HN
  • uutils coreutils

    From 1 comment
    • uutils/coreutils has a `base64` in Rust which just gained better performance due to the base64-simd crate for SIMD: https://github.com/uutils/coreutils/pull/8578
      westurner on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/45483531)