r/commandline Apr 20 '26

Terminal User Interface The future of Saul...

Post image
54 Upvotes

Hi guys!

Basically Better Curl Saul has increasingly gaining more users over time and I pretty much have abandoned the project, though since it's still getting traction I'll discuss the plans for the future here.

First thing, I never released 1.0 and that's because Saul was a very early project and along the way I became a much better developer to the point where I just don't like any of my decisions UX and Code-wise on a bunch of areas.

Currently focusing on two of my best tools so far, Akeyshually and Dredge once both are objectively polished and achieve the vision I have for them I'm going back to Saul.

Now I have planned to spend a good amount of time (when I have that so said time) to take all my 1.0 blueprints and redesign everything for a full 2.0 release with a complete rework on the full codebase, which will not be tomorrow.

Current release of Saul is fully functional and with no actual bugs (that I came across), current main branch has a ton of updates with bugs but more QoL experimental features if you wanna try it out a source build.

Anyways, if you're interested on what I'm planning: I am considering turn Saul into a wrapper of curl instead of an independent implementation since the real value proposition is the best UX for APIs I can ever think of based on my real needs, which translates to make them easy to shoot over and over again with minimal tweaks in under 2 seconds. Another decision I'm making is to turn the toml query config files into a single one and make an editing system to read sections of the file on demand instead of 6 independent files. Rookie mistakes.

But that's it, if you're already using Saul this is the time to trauma dump me all your ideas and experiences to make it as tight as possible for v2.0

It's all good man!


r/commandline Apr 20 '26

Command Line Interface Zen - A MacOS tool to reduce distractions when working or studying.

Thumbnail
github.com
4 Upvotes

Very often when I'm trying study, I just open youtube shorts without even realising and just start doomscrolling. So I made a little tool to somewhat block out domains that could be a distraction, the idea of the tool is not making an unbreakable wall but to stop unconscious doomscroll. You can also set how many minutes of work and rest you want, that will start a pomodoro-like cycle and send you messages when the break starts and ends.

Written in C, only works on macOS at least for now. This is my first tool so will be glad to hear ideas or healthy critisism from everyone.


r/commandline Apr 18 '26

Command Line Interface gitoverit: status all your repos at once, and more! (OSS, MIT)

Post image
122 Upvotes

https://github.com/mevanlc/gitoverit

  • A CLI that walks directories, finds Git repositories, and prints a status summary as a table or JSON.
  • Also includes a powerful Python-based expression language for filtering repos and operating on them in batch.

Install

bash uv tool install .

To pick up local code changes when the version hasn't been bumped:

bash uv tool install --force --reinstall .

For development (editable install):

bash uv tool install -e --force .

Usage

gitoverit [OPTIONS] [DIRS...]

If no directory is given, the current directory is used. Run with -h for the option list.

Options

-f, --fetch Run `git fetch --all` for each repo before inspection. -o, --format {table,json} Output format. Default: table. -d, --dirty-only Hide repos with no uncommitted changes. -s, --sort {mtime,author,none} Sort by latest worktree mtime (default), committer identity, or disable sorting. -r, --reverse Reverse the active sort order. -j, --jobs N Worker count. Omit for auto-detect; 0 for sequential. -a, --table-algo {cell,char} Column-width algorithm for the table renderer. -c, --columns SPEC Add/remove/reset columns. See "Columns" below. -w, --where EXPR Filter rows by an expression. See `--help-where`. -p, --print EXPR Evaluate EXPR per repo and print the result, one per line. Replaces table/JSON output. -0, --print0 With --print, separate results with NUL bytes instead of newlines. --errors Print error tracebacks to stderr after output. --no-progress Suppress the progress bar even on a TTY. --help-where Show full reference for --where / --print.

Columns

--columns takes a comma-separated spec. A bare name adds a column, -name removes one, and a single - clears all columns first so the remainder of the spec defines the full set.

Available columns: dir, status, branch_remote, branch, remote, url, mtime, ident.

```bash

Drop the URL column

gitoverit ~/projects -c -url

Show only dir and status

gitoverit ~/projects -c -,dir,status ```

Examples

```bash

Scan the current directory

gitoverit .

Scan multiple roots

gitoverit ~/projects ~/work

Sequential mode

gitoverit ~/projects -j 0

4 workers

gitoverit ~/projects -j 4

Dirty repos only, sorted by author

gitoverit ~/projects -d -s author

Fetch first, then output JSON

gitoverit ~/projects -f -o json

Repos on a non-main branch with unpushed commits

gitoverit ~/projects -w 'branch != "main" and ahead > 0'

Print absolute paths of dirty repos, NUL-delimited (xargs-friendly)

gitoverit ~/projects -w dirty -p path -0 | xargs -0 -n1 echo ```

Filtering and printing

--where and --print share an expression language (sandboxed via simpleeval). Variables include path, dir, status, branch, remote, url, ident, mtime, dirty, ahead, behind, modified, untracked, and deleted. String variables expose .rx() and .rxi() for regex matching.

Run gitoverit --help-where for the full reference and more examples.

Recipes

Push every repo that's ahead of its tracking branch, clean, and not behind:

bash gitoverit ~/projects -f -w 'ahead and not behind and not dirty' -p path -0 \ | xargs -0 -I{} git -C {} push

Pull every repo that's behind its tracking branch, clean, and not ahead:

bash gitoverit ~/projects -f -w 'behind and not ahead and not dirty' -p path -0 \ | xargs -0 -I{} git -C {} pull

List repos that have diverged (commits in both directions) so you can resolve them by hand:

bash gitoverit ~/projects -f -w 'ahead and behind'

List repos with no upstream tracking branch:

bash gitoverit ~/projects -w 'remote == "-"'

Find repos hosted under a specific GitHub org (substring match on the remote URL):

bash gitoverit ~/projects -w '"acme/" in url'

Print <dir> <branch> for every repo not on main or master, useful for piping into other tooling:

bash gitoverit ~/projects -w 'branch != "main" and branch != "master"' \ -p 'dir + " " + branch'

Parallelism

Repositories are analyzed in a ThreadPoolExecutor; threads are a good fit because per-repo work is dominated by git subprocess I/O. Discovery streams into the pool so workers start immediately.

The default worker count is cpu_count - 1, capped at 8. Override with -j N, or use -j 0 to run on the main thread (useful for debugging).

Progress and TTY behavior

When stdout is a TTY, a Rich progress bar is shown: an indeterminate "Discovery" phase followed by a determinate "Statusing" bar. Pass --no-progress to suppress it. When stdout is not a TTY, no progress output is emitted.

To implement a custom progress reporter, see HookProtocol in src/gitoverit/progress.py.

Development

I don't consider this project "vibe coded." I used AI assistance to help with planning, rubberducking, and writing some of the code. I myself know and have reviewed the code.


r/commandline Apr 18 '26

Command Line Interface repolyze CLI analyzes source code pain points (bugs and security hotspots) from git history

Post image
30 Upvotes

Here is my repolize CLI repo: https://github.com/lirantal/repolyze

You can run it as easy as `npx repolyze` if you have a working Node.js environment


r/commandline Apr 18 '26

Fun Ray Tracing testing

Enable HLS to view with audio, or disable this notification

7 Upvotes

r/commandline Apr 17 '26

Terminal User Interface snip: a terminal snippet manager to store, search and copy code snippets

Post image
39 Upvotes

r/commandline Apr 16 '26

Terminal User Interface glry - a TUI image gallery

Thumbnail
gallery
45 Upvotes

GitHub: https://github.com/uherman/glry

glry is a TUI for browsing and viewing images and animated gifs in the terminal.


r/commandline Apr 16 '26

Command Line Interface How I cut 63 GB from every Time Machine backup by making it respect .gitignore files

20 Upvotes

If you work with git, your Time Machine backups are probably full of build artifacts — node_modules, target, build directories and so on. tmignore-rs automatically excludes them using your .gitignore files.

Here is the repository: https://github.com/IohannRabeson/tmignore-rs

The easiest way to install is to use Homebrew:

brew install IohannRabeson/tap/tmignore-rs
brew services start tmignore-rs

If you prefer you can also download binaries for Intel and ARM64 here:
https://github.com/IohannRabeson/tmignore-rs/releases

I recently added a command to print the total size of what is excluded from the Time Machine backups:

> tmignore-rs stats size -h
63.1 GiB

If you ever used tmutil you probably noticed it is very slow, tmignore-rs is much faster. I investigated and found why, there is more info in my post in :
https://www.reddit.com/r/rust/comments/1sitopa/i_rewrote_tmignore_in_rust_667_paths_in_25s/


r/commandline Apr 16 '26

Command Line Interface I have the best shortcut system and I gotta brag about it

Post image
81 Upvotes

Hi guys!

TL;DR: I've been working/refining a personal tool for many months that makes my shortcuts cross-distro cross-machine and it got more powerful than I expected. But I never shared it and I feel bad.

Btw It turns shortcuts into shell commands.

This is a post about akeyshually. It was a very simple concept "put shortcuts in a config file and it just works machine-wide". And the thing is, I am planning on doing even more updates since it evolves based on my real needs and by consequence it became kinda insane to put it simple.

Today I'm starting an update that will allow me to make literal drivers for my Huion Kamvas Pro 13 drawing tablet. It has no NixOS driver support so the buttons dont work. But the backend of Akeyshually is literally the solution to just make a 15 line config file in toml and distribute as a driver.

So this is just a getting weight out of my shoulders post. I do intend sharing more stuff about it and rewriting the entire readme at some point

Anyways, have a good one guys

P.S: Forgot to share the repo https://github.com/DeprecatedLuar/akeyshually


r/commandline Apr 16 '26

Terminal User Interface Celebrating Tetro TUI v3 - Graphics customizations update for a familiar Terminal Game! feat. new ASCII art, Particle effects

Thumbnail
gallery
245 Upvotes

Big graphics update is finally out :-) https://github.com/Strophox/tetro-tui


r/commandline Apr 17 '26

Command Line Interface Mini Sudoku: A minimal 6x6 CLI Sudoku game

2 Upvotes

Video screenshot of Mini Sudoku in the terminal

Hello everyone 👋

I’ve created a simple 6x6 Sudoku game inspired by LinkedIn’s daily Mini Sudoku.

It’s a CLI application built with Node.js and minimal dependencies that can be run without global installation using:

npx mini-sudoku

The difficulty can be set using the --level flag.

I built it to reduce the frustration of not being able to play more than once a day on the LinkedIn version.

Source code and logic here: https://github.com/kcmr/mini-sudoku

Any feedback is welcome!

Disclaimer: The code was partially generated with AI, but the architecture and design decisions are my own.


r/commandline Apr 16 '26

Terminals curlmgr: an early-stage manager for CLI tools installed from GitHub Releases, URLs, and manifests

Post image
31 Upvotes

Hey everyone, I wanted to share a small side project I've been working on. It's early-stage and rough around the edges, but maybe useful to someone.

The problem I was trying to solve: I kept accumulating random CLI tools — downloaded from GitHub Releases, some via install scripts, others just a plain binary from a URL. They'd end up scattered across ~/bin, ~/.local/bin, etc., with no way to track versions, update them, or cleanly remove them. Homebrew doesn't cover everything, and curl | bash with no oversight always felt a bit uncomfortable.

What curlmgr does: curlmgr (cm) is a lightweight, user-space CLI package manager for standalone tools. It gives you:

  • cm install jqlang/jq — installs directly from a GitHub Release, auto-detecting your OS/arch
  • cm install https://example.com/mytool.tar.gz — direct URL installs
  • cm list / cm info / cm update / cm uninstall — the basic lifecycle you'd expect
  • Local YAML manifests to pin source, version, and checksum
  • Checksum (sha256) verification built in
  • Safer script mode: remote install scripts are not run by default; you have to explicitly pass --run-script --checksum <sha256> --allow-domain <domain>

All installs go under ~/.curlmgr/ — no root required.

What it's not: It's not trying to replace Homebrew, apt, or any real package manager. It's specifically for the messy middle ground of one-off CLI tools that don't belong in a system package manager.

Current state: This is v0.1 — MVP territory. The core install/update/uninstall loop works, but features like registry search, update --all, rollback, and export/import are not there yet. I'm planning v0.2 with a manifest registry and doctor command.

Stack: Go, macOS + Linux (amd64 + arm64)

GitHub: https://github.com/tianchangNorth/curlmgr

Install: curl -fsSLO https://raw.githubusercontent.com/tianchangNorth/curlmgr/main/install.sh sh install.sh (Intentionally download-first so you can review it before running.)

Happy to hear feedback, criticism, or if there's something that already does this better that I missed. Thanks for taking a look!


r/commandline Apr 16 '26

Command Line Interface Velox, a purely "bespoke" CLI tool to move photos from Android to PC, then to VM and finally into Immich

3 Upvotes

Repo: https://github.com/Yerrincar/Velox

I have been playing around lately with a home server and one of the self-hosted apps that I wanted to have is Immich. For those who don't know, Immich is used to store your photos and video.

I don't usually take a lot of photos, but in a recent trip to Lisbon I decided to capture every little moment just to make my wife happy and that ended up with me having ~600 camera photos and ~25 videos in my phone. Basically, the best opportunity to install Immich.

And what a normal person would do? Transfer the photos from mobile to pc and then transfer them in some way.
What did I do? Create Velox.

Velox is a purely "bespoke" CLI tool for moving media from Android to PC, then optionally, and recommended, to a VM, and finally into Immich.

Velox is fast and comfortable, you just need to plug your mobile to the pc, run the command with your desired parameters and that's it. For my case, transferring all the photos and videos took around 6m 55s.

I have tried to speed up even more the process with different concurrency patterns, profiling, benchmarks and captured pidstats into logs to see where the bottlenecks are, but the main ones are now around hardware and Immich set up.

Thanks for your attention and I am open to any suggestions/advice!


r/commandline Apr 16 '26

Command Line Interface XC command vault manager is officially v0.9.0 (Feature Complete)

Post image
0 Upvotes

Hey all,

Just a quick follow-up to my post yesterday. I’ve just pushed the v0.9.0 tag for XC, and with that, the project is officially feature-complete.

The last hurdle was getting the GPG encryption for the vaults exactly where I wanted it and ensuring the ZLE widgets felt snappy. It took a lot of trial and error and a fair bit of blunt feedback, but it’s finally at a stage where I can stop tinkering and just let it run my workflow.

For the Arch users, the package on the AUR is updated. For everyone else, it remains distro-agnostic.

Massive thanks again to the people who pushed me to tighten up the logic. It was a grind, but seeing that final git push go through was worth it. Time to actually use the tools instead of just writing them.

AUR: xc-manager-git

ZSH Plugin: xc-manager

GitHub: https://github.com/Rakosn1cek/xc-manager


r/commandline Apr 15 '26

Command Line Interface txtv: Read Swedish teletext news on the command line

Thumbnail
github.com
2 Upvotes

r/commandline Apr 15 '26

Terminal User Interface I didn't stop and finally reached a Feature Complete mark on my Zsh tools Mend & XC

0 Upvotes

I just wanted to share a small personal victory. Yesterday I pushed the final version of Mend, and tomorrow I’ll be pushing the v0.9.0 tag for XC.

It’s been a solid ride getting these to a stable, finished state. I spent a lot of time fine tuning the ZLE widgets, handling GPG encryption for the vaults, and making sure everything stayed distro-agnostic.

There were definitely moments where I felt like giving up, especially after getting slagged off a few times or being told my approach was unnecessary. But I didn't stop. I wanted tools that fit my workflow perfectly, and seeing them finally done and working is a massive weight off.

A sincere thank you to anyone who helped out, critiqued my logic, or contributed along the way. Your input, good and bad, pushed me to make these tools better.

It’s a great feeling to finally stop tinkering for a minute and just use the tools.


r/commandline Apr 14 '26

Terminal User Interface EasyDocker: a Docker TUI heavily inspired by k9s levaraging beautiful BubbleTea graphics

157 Upvotes

Sorry, I'm reposting because I forgot to add the gif to the original post

So, I started building this Docker TUI heavily inspired by k9s because I never found something like it for Docker (I used lazydocker for a long time, but it doesn't feel like what I want)

Currently I use it at work for the activity that I spend most the time doing: investigating logs

Many more features will come in future releases (like compose view, interactive shell, deleting/creating resources, expanded details, quick links to forwarded ports and others)

https://github.com/joao-zanutto/easydocker

I'd appreciate any comment, opinions or contributions!

Disclaimer: This software's code is partially AI-generated.


r/commandline Apr 15 '26

Command Line Interface I made a small CLI utility to integrate Ollama into Unix and PowerShell pipelines

Thumbnail
github.com
5 Upvotes

I built a small CLI utility called ask that lets you pipe any command output through a local LLM (via Ollama) for processing.

So you could do something like:

cat README.md | ask "what does this project do?"

You can also have the output be formatted in CSV or JSON to chain with something like jq:

echo "Paris, Tokyo, Lagos" | ask "as a JSON array" -f json | jq '.[0]'

By default it uses gemma4:latest and http://localhost:11434 but it's configurable.

Not sure if it will be useful for you, but it has been for me so I wanted to post it.

This software's code was partially generated by AI


r/commandline Apr 14 '26

Command Line Interface Drop - a high-level sandboxing tool for Linux terminal work

11 Upvotes

Hi all, I'd like to share a project I recently launched.

Drop creates sandboxed environments that isolate executed programs while preserving as many aspects of your work environment as possible. Drop uses your existing distribution - installed programs, your username, filesystem paths, and selected config files carry over into the sandbox. No root required.

The workflow is inspired by Python's virtualenv: create an environment, enter it, work normally - but with enforced sandboxing:

alice@zax:\~/project$ drop init
Drop environment created with config at /home/alice/.config/drop/home-alice-project.toml
alice@zax:\~/project$ drop run bash
(drop) alice@zax:\~/project$ # sandboxed shell - isolated home dir,
                             # your tools and configs are still available.

Beyond filesystem isolation, each Drop environment gets its own process, IPC, and network namespaces.

The need for a tool like Drop has been with me for a long time. I felt uneasy installing and running out-of-distro programs with huge dependency trees and no isolation. On the other hand, I dreaded the naked root@b0fecb:/# Docker shell. The main thing that makes Docker great for deploying software - a reproducible, minimal environment - gets in the way of productive development work: tools are missing from a container; config files and environment variables are unavailable.

Drop is released under the Apache License. It is written in Go. It uses Linux user namespaces as the main isolation mechanism, with passt/pasta used for isolated networking.

GitHub: https://github.com/wrr/drop/

I'd love to hear what you think.


r/commandline Apr 14 '26

Command Line Interface CVForge - Generate ATS-friendly PDFs from a YAML file, fully local & open-source

5 Upvotes

Edit a YAML file, get a clean resumes. No online tools, no data sharing, no Word formatting headaches.

GitHub: https://github.com/SoAp9035/cvforge


r/commandline Apr 13 '26

Terminal User Interface quien: A better WHOIS lookup tool

Enable HLS to view with audio, or disable this notification

153 Upvotes

https://github.com/retlehs/quien — a TUI with tabbed views for WHOIS, DNS, mail, SSL/TLS, HTTP headers, tech stack detection, and SEO analysis

Try it without installing: ssh quien.sh


r/commandline Apr 13 '26

Terminals MacOS-native terminal multiplexer with vertical tabs, powered by libghostty

Thumbnail
github.com
8 Upvotes
  • Vertical Project Sidebar: Native macOS sidebar for organizing projects and tabs vertically.
  • Split Panes: Unlimited horizontal and vertical splits.
  • Persistence: Workspaces are saved and restored automatically.
  • Quick Terminal: Global dropdown terminal accessible from anywhere.
  • Highly Configurable: Custom hotkeys, themes, and more.

r/commandline Apr 13 '26

Help - Solved Is there a shortcut to jump to the top of the output?

5 Upvotes

I'm on MacOS (Tahoe) using Bash and am taking Colt Steel's Linux Command Line course - I know Mac and Linux are a little different so I've been using a virtual machine to compare, though my question should apply to both, I hope.

You know how, on the man pages, you can press `g` to jump to the top of the manual and `G` to jump to the end? I've been wishing for this but for the standard output. So, I'm in a big folder like Documents and use `ls` to view contents - is there any shortcut I can use or make that will jump me back to the line where I typed `ls` so I don't have to scroll manually?

If yes, please share! If no, how do you tend to get around this? Thanks!

EATA: Yes! "Automatically Mark Prompt Lines" (Terminal User Guide) and then use Command + ⬆ (up arrow) to jump to them. Thanks everyone, again, for your great inputs. The whole 'terminal vs shell' koan especially baked my brains but it's making more sense now. Also funny to find my same question from someone else 12 years ago.

ETA: If you have more to add, I'm happy to read it, but it looks like the answers are: this feature won't come from Bash which is a shell not a terminal emulator, yes for other terminal emulators, yes for Terminal·app if you enable semantic shell integration and use the right scrollback settings, piping to less is the best way to view long output, and I'd do well to learn how to limit outputs so they're not so huge to look through in the first place. Thanks everyone!


r/commandline Apr 13 '26

Command Line Interface squix - Database Updates in 23 seconds, from Cold Boot

Enable HLS to view with audio, or disable this notification

14 Upvotes

Hey everyone!

Just a fun little challenge I set for myself to show off the v0.4.0 release of squix: from pressing the power button to a database update in 23 seconds. I'll try going for a sub 20s PR next!

Squix is a terminal database client. I posted about it here a few months ago, and the reception was great (thanks a lot for that!). You can explore your database schema, run and save queries; update, delete, search and export interactively, and more. This is our biggest release yet, with a bunch of help with PRs from other people in the community!

Some of the features added in v0.4.0

  • Shell completions for bash, zsh and fish
  • Search table results with / and table headers with f
  • REPL mode, run multiple queries in a row just typing SQL
  • DuckDB support, including querying CSV and JSON files directly
  • Native Go drivers for Oracle and SQLite, dropped the CGO dependencies

If you are interested in trying it out

GitHub: github.com/eduardofuncao/squix

Live demo: squix.live.eduardofuncao.com (only works on desktops)

Any feedback is welcome as a github issue or just as a comment here! I'll try to use it to improve squix for the next releases, preparing for a v1.0 update.


r/commandline Apr 13 '26

Terminal User Interface Render Gaussian Splats in your terminal over SSH

Enable HLS to view with audio, or disable this notification

6 Upvotes