HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
casey
just
Rust2016–2026
casey / just

just

🤖 Just a command runner

120Distinct people
152Mentions
4Explicit recommenders
36.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

🤖 Just a command runner

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

Reminds me of `just`. I love `just`. (Although I've never used make...) https://github.com/casey/just

arcanemachiner used a recommendation phrase. 4 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 8:03:49 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year152 dated mentions

Observed mentions: 2016-11-10 08:57:09 UTC to 2026-10-21 13:45:06 UTC.

0102030402016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20162017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 9 mentions; 3 submissions, 6 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 10 mentions; 3 submissions, 7 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 24 mentions; 6 submissions, 18 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 39 mentions; 1 submissions, 38 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 30 mentions; 2 submissions, 28 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 20 mentions; 3 submissions, 17 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 11 mentions; 1 submissions, 10 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC110
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC202
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC514
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC936
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC1037
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC24618
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC39138
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC30228
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC20317
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC11110

What Hacker News says

20 sources
Would creating a `main.py` with the dependencies installed either as a uv project or inline work for you? One thing I did recently was create a one-off script with functions to exercise a piece of equipment connected to the PC via USB, and pass that to my coworkers. I created a `main.py` and uv add'ed the library. Then when I wanted to use the script in the REPL, I just did `uv run python -i main.py`. This let me just call functions I defined in there, like `set_led_on_equipment(led='green', on=True)` directly in the REPL, rather than having to modify the script body and re-run it every time. Edit: another idea that I just had is to use just[0] and modify your justfile accordingly, e.g. `just pything` and in your justfile, `pything` target is actually `uv run --with x,y,z ipython` Edit edit: I guess the above doesn't even require just, it
Read the rest
could be a command alias or something, I probably am overengineering that lol. [0]: https://github.com/casey/just
In Uv is the best thing to happen to the Python ecosystem in a decade
The 21st century way might be some combination of watchexec[1] and just[2] but you can't assume the availability of these tools. You can almost assume the availability of make but a lot of distros (hello, Ubuntu) omit basic build tools. Admittedly I used an LLM recently to write me a Makefile because my brain doesn't have the capacity to remember all make's idiosyncrasies every few years that I touch a Makefile. Once the file is done, it's done, and it was easy to pare down from the verbosity that the LLM coughed up. I also wanted targets for intermediate build files (long story) so that would have required excessive poring over the man page. [1]: https://github.com/kurtbuilds/checkexec [2]: https://github.com/casey/just
In My other email client is a daemon
I manage a monorepo at my workplace. Different devs with various levels of seniority are on/off boarded on the project, some on mac some on linux. At first I offered mise as the recommended tool, and after a while I declared it's the only supported way to build the project and boom! All support requests that used to end with "oooh my XYZ's version was not matching the project's requirement" are gone now. I like asdf but it has quirks. Mise has been a better companion for me past few years. I also hear people say "but my node/ruby/elixir/java/foo version manager will break. My team uses that tool in our other projects, etc, etc" then I only have to show them what an amazing drop-in replacement mise is and nothing breaks; there's no going back for them. I just hope muse stays mise, and doesn't become just[1] (whom I also install via mise) [
Read the rest
In Tools I love: mise(-en-place)
If you want to use make, power to you, it’s definitely a useful tool. (What I’m trying to say is I’m bashing make, not you.) That being said, I absolutely hate make, there are so many footguns and weird quirks and implicit behavior that always end up biting me. I find that 90% of the time what I actually want is a command runner like Just (https://github.com/casey/just) and have the make file contain the absolute sheer minimum required to build code. While we’re at it, CMake is another build tool with the same problems as make - powerful, with an ugly syntax, unintuitive semantics, hidden dragons, and a manual that’s torturous to read.
In Show HN: I wrote a modern Command Line Handbook
FYI with pipefail enabled, if one of the pipes fails, your step will fail, there will be no error output, you won't know why it failed. Pipefail also doesn't prevent more complex error states. For example this step from your config: curl -L "https://github.com/casey/just/releases/download/${{ matrix.just-version }}/just-${{ matrix.just-version }}-x86_64-apple-darwin.tar.gz" \ | sudo tar -C /usr/local/bin -xzv just Here's the different error conditions you will run into: 1. curl succeeds, sudo succeeds, tar succeeds, but just fails to extract from the tarball. Tar reports error, step fails. 2. curl succeeds, sudo succeeds, tar fails. Sudo reports error, step fails. 3. curl succeeds, sudo fails. Shell reports error, step fails. 4. curl begins running. sudo begins running in a subshell/pipe. tar begins running under th
Read the rest
e sudo pipe, extracting half of the just binary. curl fails due to network error. Due to pipefail being enabled, shell exits immediately. There is no error message. A corrupt executable is left on-disk (which will be attempted to run if your step had failure-skipping enabled)
In Any program can be a GitHub Actions shell
This is why I've become a huge fan of Just, which is just a command runner, not a build caching system or anything. It allows you to define a central interface into your project (largely what I find people justify using Make for), but smoothes out so many of the weird little bumps you run into from "using Make wrong." Plus, you can an any point just drop into running a script in a different language as your command, so it basically "supports bash scripts" too. https://github.com/casey/just
In The Pain That Is GitHub Actions

Showing the 15 most recent of 20 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.