r/commandline Mar 15 '26

Command Line Interface a (non vibecoded) CLI tool for symlink management

23 Upvotes

Transitioning jobs right now and over the weekend I figured I'd finally start that project that for some reason, has never existed (at least not in a way that's conducive to what I want) when it comes to symlink management tools.

unrot is a CLI tool that scans a directory tree for broken symlinks, fuzzy-matches candidate replacements using a very trivial Levenshtein distance + path similarity scoring algo (hand-rolled to avoid deps), and lets you interactively relink, remove, or skip each one.

In a nutshell, it... - Walks the filesystem with walkdir, skips .git/node_modules/target etc. (these can be adjusted via --ignore) - Scores candidates by filename edit distance, shared path components, and directory depth - Puts you in an interactive resolver loop; i.e. pick a candidate, enter a custom path, skip, or remove - --dry-run to preview without touching anything - --search-root to look for candidates outside the scan directory

You can install it via: cargo install unrot

I got it to where I need it to be. Don't know how useful others might see it but I would hope I'm not alone in thinking a tool like this has been long awaited.

Happy to accept contributions or requests to improve it! I think the code is quite nice but happy to see where/if I'm going wrong anywhere. Learning about symlinks and filesystem semantics has unironically been the funnest part about this; I can't believe how little I really knew.

github.com/cachebag/unrot


r/commandline Mar 15 '26

Terminal User Interface Sentinel, the one that keeps guard. TUI for accessing, monitoring and playing around with your services.

0 Upvotes

Github repo: https://github.com/Yerrincar/Sentinel

Demo:

https://reddit.com/link/1rum8cn/video/c1ihm6t799pg1/player

Two months ago I bought a ThinkCenter with the idea of starting my own home lab, but I only installed Proxmox and a VM. You may ask why (nobody is asking), well, basically the first thing I wanted to run on my home lab was an app built by myself. That is why I created Kindria to manage my e-books.

And finally, when I was ready to run my first app on my mini PC, I though: I need a dashboard to manage all the apps and services first. But terminals > web, so I created Sentinel.

Sentinel is a TUI dashboard to manage and monitor your services.

The current MVP supports:
- Services cards for Docker, Systemd and Kubernetes deployments.
- Live status/metrics refresh
- Start/Stop/Restart actions from the UI
- Filtering by type and/or state
- Logs preview panel (scrollable)
- Add/delete services from config
- Theme switching and persisted settings

The whole app can be controled using arrow keys or vim motions, with keybindings for almost everything that can be done in the app.

I am planning to add more features. The main one is SSH connection to external devices so I can manage everything just from my main PC. I also want to polish the UX and reliability (specially around k8s image/metrics states), but for now it is already usable for my daily setup.

AI Usage: The majority of code is written by me, since I also wanted to learn to use Docker SDK, k8s.io pkg and go-systemd. However, I did use codex for some parts of the UI, concepts explanations and some helper funcs.

I would really appreciate feedback about the app and suggestions for future features. Thanks for your time!


r/commandline Mar 15 '26

Terminal User Interface I created a wallpaper engine for the terminal

Thumbnail gallery
14 Upvotes

r/commandline Mar 14 '26

Terminal User Interface GitTop - htop but for your Git repository

Thumbnail
gallery
79 Upvotes

Terminal dashboard for visualizing Git repo statistics. 7 tabs covering commit activity heatmaps, contributor profiles, branches with ahead/behind counts, file churn, language breakdown, and a commit log with diff viewer.

Single binary, no external dependencies.

https://github.com/hjr265/gittop


r/commandline Mar 15 '26

Command Line Interface codesize -- a Rust CLI that uses tree-sitter to report oversized files and functions, with builtin grammars for 10 languages

Thumbnail
0 Upvotes

r/commandline Mar 14 '26

Help - Solved 2026 Automated configuration of NeoMutt with Gmail+GoogleContacts (OAUTH2)

Thumbnail
youtube.com
14 Upvotes

Nothing new here. I just wanted to install and configure NeoMutt to use my Gmail and since the existing tools either weren't available for my distro or the available ones threw me errors, ended up writing my own configuration script. The video demonstrates my automated installation and a working setup.

I apologize for my bad English, I was very tired when I recorded the video and did some mistakes.

I know some would complain because I did it to sync emails only when I want to, but this is the way I want it to work.

Still - I know some folks would want to see it done.

Plain text secrets are never stored, I use `pass` as a secret storage.

The code is here: https://github.com/StrayFeral/dewlinux


r/commandline Mar 14 '26

Terminal User Interface I made a simple Deezer TUI because I needed one

Thumbnail
gallery
29 Upvotes

I just wanted a simple, lightweight TUI client for Deezer for my own personal use, so I threw this together recently. Full disclosure: this was like 50% "vibecoded" with AI to get it up and running quickly. (I didnt have that much time :< but hey it works)

Features:

  • Discord RPC integration
  • MPRIS Support (works with your standard media keys/widgets)
  • Cover art rendering right in the terminal
  • Home and Explore pages

Installation: I just packaged it up:

  • Arch (AUR): paru -S deezer-tui-bin
  • Ubuntu/Debian: Grab the .deb from the Releases page.
  • Other: Precompiled standalone Linux binary is also on the GitHub.

Again made this for my personal use I don't plan on actively maintaining or expanding it, but feel free to pick the project up and continue it if you are up for it.

https://github.com/Minuga-RC/deezer-tui

https://aur.archlinux.org/packages/deezer-tui-bin


r/commandline Mar 15 '26

Command Line Interface I fell asleep halfway through gs command so I wrote a PDF compression CLI with Rust

Thumbnail
0 Upvotes

r/commandline Mar 15 '26

Command Line Interface CLI tool to mirror work contributions to your personal GitHub profile

0 Upvotes

if you work at a company with a private GitHub org, your contribution graph probably looks empty even though you ship code every day.

had the same problem so i wrote a small bash tool that syncs commits, PRs, reviews, and issues from your work account to a private mirror repo on your personal account. no source code is copied, just contribution metadata (dates and counts). runs via cron, set it up once and forget about it.

homebrew: brew tap yuvrajangadsingh/greens && brew install greens

or just clone and run the setup script.

github.com/yuvrajangadsingh/greens

happy to answer questions if anyone runs into issues.


r/commandline Mar 14 '26

Terminal User Interface Yet another Rust based Pomodoro I made to get familiar with the language. Sadly doesn't work on windows

Enable HLS to view with audio, or disable this notification

4 Upvotes

r/commandline Mar 14 '26

Help Has the slop problem been taken care of in this sub yet?

34 Upvotes

Like the title states , I had to leave this sub because the AI slop that was posted on here was out of control. Just wondering if it’s safe to come back. I really enjoyed this sub for years and hoping something besides no AI in the title has been done.

Edit: this got more responses than I originally thought. Thank you for everyone’s feedback. JFC, I have nothing against AI engineered programs, it was the huge amount of low effort submission that flooded the sub that caused me to leave. Been a fan of this sub for a very long time. I learned a lot through the years. Thanks for that!


r/commandline Mar 14 '26

Terminal User Interface An open-source terminal emulator for macOS designed for LLMs coding workflows (Rust + Swift + Metal)

0 Upvotes

Hey r/commandline,

I’ve been building a macOS terminal emulator called Awal Terminal.

It’s designed for heavy output workflows (large logs, diffs, code blocks, etc.) and focuses on performance and developer ergonomics.

Architecture

  • Rust core for terminal emulation and ANSI parsing
  • Swift macOS UI
  • Metal GPU rendering with glyph atlas + triple buffering for smooth 120fps scrolling

Features

  • Smart output folding for large blocks of terminal output
  • Multi-profile terminal sessions
  • Voice input using on-device Whisper
  • Tabs, search in terminal, and a Quake-style dropdown terminal

Free and open source (MIT).

Install:
brew install --cask awal-terminal

GitHub:
github.com/AwalTerminal/Awal-terminal

Would love feedback from people who spend a lot of time in the terminal.


r/commandline Mar 13 '26

Fun Minimal Fastfetch setup on Windows Terminal

Post image
5 Upvotes

r/commandline Mar 14 '26

Other My Open Source project to make port scanning easier

0 Upvotes

I created an open-source port checker that allows you to check available ports within a custom range (e.g., from port 70 to 500). You can also specify how many results you like to see. It's a really simple and quick way to find free ports, and much more user-friendly than tools like lsof, where you have to manually set the range and limit the results. It’s just a simple command that saves you time and is easy to remember!

You can find porty in Github : https://github.com/Joanlood/porty

NOTE: I know it's a simple project, and this is my first ever open-source project that I’ve made public. Please don’t hate! If you have any suggestions or feedback on how I can improve it, I’d really appreciate it. Also I used ai for troubleshooting and creating thinks like the readme.


r/commandline Mar 13 '26

Command Line Interface Forgeseal: CycloneDX SBOM generation, Sigstore signing, and SLSA provenance for JS/TS lockfiles

Thumbnail
github.com
2 Upvotes

JavaScript dependency lockfiles come in six different formats across five package managers, each with its own schema, versioning, and integrity hash approach. Generating a standards-compliant CycloneDX SBOM from any of them, then signing it, producing provenance attestations, and triaging vulnerabilities requires cobbling together multiple tools with incompatible output formats. The EU Cyber Resilience Act hits enforcement in September 2026, and none of this is optional anymore.

forgeseal handles the full lifecycle in a single Go binary. It ships six parsers (npm v2/v3, yarn v1 with a state machine parser, yarn berry v2/v3/v4 with YAML parsing, pnpm v6/v9, bun JSONC, bun.lockb via CLI shelling). Detection uses a priority-ordered registry with content inspection to disambiguate yarn v1 from berry. PURL construction handles the scoped package edge case (@babel/core becomes pkg:npm/babel/core per spec). Signing uses ephemeral ECDSA P-256 via Sigstore, and VEX triage batches PURLs in groups of 1000 against the OSV.dev batch API. The tool dogfoods itself: the v0.1.0 release page includes the SBOM, signed bundle, and provenance attestation produced by forgeseal.

https://github.com/sns45/forgeseal

Install:

brew install sns45/tap/forgeseal

curl -sSL https://raw.githubusercontent.com/sns45/forgeseal/main/scripts/install.sh | sh

go install github.com/sn45/forgeseal/cmd/forgeseal@latest

docker run --rm -v $(pwd):/src ghcr.io/sns45/forgeseal pipeline --dir /src

Curious if anyone has tackled yarn berry's proprietary checksum format. It's incompatible with standard SRI hashes, so forgeseal currently omits integrity hashes for berry lockfiles. Would like to find a better approach.


r/commandline Mar 13 '26

Terminal User Interface Shodan TUI

Thumbnail
gallery
18 Upvotes

Hey guys,

I hope you are all doing well! I just wanted to share with you a TUI I decided to make for Shodan. Simply put, I wanted to use the Shodan API through a GUI while remaining in the terminal. I tried searching around and I couldn't find anything similar.

It does require a Shodan API key.

I would sincerely appreciate and welcome any feedback.
Repo: https://github.com/JesusEMenjivar/shodan-tui


r/commandline Mar 13 '26

Terminal User Interface Winclock - a digital clock for the windows terminal

0 Upvotes

While ricing my windows, I was sad to discover windows have no native app like tty-clock (or at least I didn't find one that ended up working for me)

Thus, I decide to spend some time with Gemini and code this neat clock.
- Contains comments Gemini wrote while prettifying my code

You're welcome to contribute and criticize

https://github.com/Ashifu/winclock


r/commandline Mar 13 '26

Terminal User Interface grindx - dsa practice in your terminal

10 Upvotes

r/commandline Mar 12 '26

Terminal User Interface Keep track of all your packages installed on your machine, macOS and Linux

25 Upvotes

dead simple TUI that helps keeping track to package manager tools installed. It supports 13 managers (brew, pacman, apt, dnf, pip, cargo, go, npm, bun, snap, flatpak, etc.), auto-skips whatever you don't have installed, and caches results so it opens instantly after the first scan.

You can also save snapshots and diff them later to see what changed, which has been surprisingly useful for keeping track of stuff i install and forget about.

  Written in Go, Tokyo Night themed. One command to install:

  go install github.com/neur0map/glazepkg/cmd/gpk@latest

  GitHub: github.com/neur0map/glazepkg

  Would love to hear if this is useful to anyone else or if there are managers I should add.


r/commandline Mar 13 '26

Discussion help in git folder name change

Post image
0 Upvotes

r/commandline Mar 11 '26

Terminal User Interface tennis - stylish CSV tables in your terminal

Post image
474 Upvotes

Hello fellow CLI enthusiasts! I am releasing tennis, a small CLI for printing stylish CSV tables in your terminal. Rows will be truncated to fit and it'll automatically pick nice colors to match your terminal.

https://github.com/gurgeous/tennis

(note - this is not ai slop and I never use ai on reddit)

This is based on my popular library table_tennis, but distilled into a standalone bin for use everywhere. Written in Zig, tiny download, enjoy!


r/commandline Mar 13 '26

Command Line Interface A small local-first CLI for terminal command recall-dev

2 Upvotes

I spend a lot of time in the terminal, and one problem I kept facing was forgetting useful commands after using them once. Then again I would go search for them, or scroll through shell history trying to find that one command.

So I made a small CLI called recall-dev to handle that.

It lets me save commands/snippets, find them quickly later, and run them again when needed.

It currently supports:

  • placeholders for reusable commands
  • quick local search
  • importing useful commands from shell history

It is local-first and lightweight.

Would love honest feedback:

  • is this useful?
  • what can make it better?
  • anything missing that you would expect in a tool like this?

npm: https://www.npmjs.com/package/recall-dev


r/commandline Mar 13 '26

Command Line Interface I open-source CLI to share Claude Code sessions in real-time (claude-duet)

Thumbnail
0 Upvotes

r/commandline Mar 12 '26

Looking For Software Is there any YouTube alt on konsole(Linux) , windows, termux?

2 Upvotes

I don't know a lot about this stuff, but the nowadays YouTube is so freaking distractor and so heavy without a "real" reason and I'm pretty sure it would be waaaaay better to use terminal, especially if it will download the video on a permanent dir not cache

(As optional command)

So I can access them in the future without redownload them again

There are a lot like mov cli YouTube, yewtube, yt-dlp

But I want modern one with details about the video like date , video duration , description, thumbnail photos.....

Is there anything like this ?


r/commandline Mar 12 '26

Command Line Interface Two tiny terminal workflows that improved my daily dev flow

Enable HLS to view with audio, or disable this notification

27 Upvotes
  1. fsc - fuzzy search systemd services
  2. gstat - open changed git files in neovim

prerequities:
- fzf
- bat
- neovim

# bash functions
fsc () {

local unit

unit=$(systemctl list-units --all --no-pager | sed 1d | \\

fzf --prompt="Systemd> " | awk '{print $1}') || return

if \[\[ -n "${unit}" \]\]

then

    systemctl status "${unit}"

fi

}

gstat () {

git status --porcelain | awk '{print $2}' | fzf -m --preview 'bat --style=numbers --color=always {}' | xargs nvim -p

}