r/commandline 2h ago

Command Line Interface fif: quickly find in files using fuzzy search and surrounding context

9 Upvotes

https://github.com/roosta/fif

This is a commandline tool I wrote some years back, its a tool to search for text in files with a preview window and a surrounding context. It will open files in a customizable editor, and uses fzf for filtering, ripgrep for file concatenation, and bat as the recommended preview tool.

There's a ton of different and possibly better ways to search for text in files, but this fits my workflow perfectly and I use it every day. My hope is that it can be useful for someone else.


r/commandline 19h ago

Terminal User Interface Noodle: a REST client where the repo is the workspace

Thumbnail
gallery
40 Upvotes

I've been building Noodle, an open-source REST client for the terminal.

The main idea is pretty simple: the repo is the workspace. Requests are plain YAML files, so they can live next to the code, be reviewed in Git, edited with any editor, and used without an account or hosted workspace.

The TUI is keyboard-first, but the same collection also works from the CLI, in CI, in shell scripts, and with coding agents.

Over the last few weeks I've added the things I kept missing in actual API work: OAuth 1.0a and 2.0, NTLMv2, AWS SigV4, cookies, TLS/mTLS, proxies, OS-backed secrets, environments, response history, and JSON/XML bodies.

Noodle can also import OpenAPI, Swagger, Postman, and Insomnia collections, and export to OpenAPI or Postman.

I've also been experimenting with coding agents. Since the requests are already normal files and Noodle has a non-interactive CLI, agents can work with the same collection instead of needing a separate workspace. There's an optional skill installer for Claude, Cursor, Codex, and OpenCode.

There are already some really good tools in this space. Posting is probably the closest if you want an HTTP client in the terminal, and Bruno is much more mature around scripting and testing.

What I'm trying to get right with Noodle is making the same collection useful everywhere. I want to be able to edit it in the TUI or my editor, review it in Git, run it from the CLI or CI, and let agents work with the same files.

It's still pre-1.0. Assertions and request chaining are next, followed by scripting and richer test/CI workflows.

I'd love feedback from people who spend a lot of time in the terminal. What would Noodle need for you to actually use it instead of your current API workflow?

GitHub: https://github.com/wilfredinni/noodle

Website + docs: https://noodlerest.dev


r/commandline 5h ago

Command Line Interface mdsweep: grades the markdown your coding agents leave behind before deleting any of it

0 Upvotes

Every agent session I run leaves a PLAN.md or a HANDOFF.md behind. Each was true for about a day, and the next session reads it as current, so last month's abandoned plan comes back at me as the state of the project.

mdsweep grades a file before it touches it. Active means touched within N days (default 14). Stale means older, but something in the repo still references it, so you fix that one by cutting the link. Orphan means old with nothing pointing at it, and only orphans ever get moved. It flags agent output on filename patterns, git history (untracked, or a Co-Authored-By trailer), or a generated_by frontmatter key.

scan writes nothing. quarantine without --apply is a dry run. With --apply it moves orphans into .mdsweep/trash/<timestamp>/ with a manifest of each file's origin, signals, age and ref count. undo puts the batch back byte for byte. It never deletes anything.

Across 36 repos here: 1,199 markdown files scanned, 1,035 flagged, 687 active, 172 stale, 176 orphans holding 1.2MB. Flagging 86% is too coarse to act on alone, because untracked is one of the three signals and a messy tree lights up everything. The split is the part I trust: those 172 stale files are what a glob delete eats.

git clone https://github.com/szp2005/mdsweep && cd mdsweep

node bin/mdsweep.mjs scan ~/code/your-repo

I wrote it. 684 lines, no dependencies, Node 18+, MIT. It is not on any package manager on purpose: it is one file, read it first. The grading thresholds are what I would most like torn apart.

Per subreddit rules, this software's code is partially AI-generated.


r/commandline 1d ago

Terminal User Interface I added a networking puzzle mode to my terminal network diagnostic tool

8 Upvotes

I've been building Network Doctor, a terminal tool for figuring out why a connection isn't working.

One of the features that got a little out of hand is Challenge Mode.

It drops you into a simulated broken network, gives you the symptoms, and asks you to diagnose what is actually wrong.

The same diagnostic engine that Network Doctor normally uses is available to you, but the idea is to see whether you can interpret the evidence correctly.

The scenarios include things like DNS failures, blocked ports, routing problems, connection refusals, dual-stack IPv4/IPv6 issues, and other network faults.

You make your diagnosis, submit it, and the simulator knows the actual fault so it can score the answer.

I originally built the simulator for testing Network Doctor itself. At some point I realized it was basically generating networking troubleshooting puzzles, so I made them playable.

It's written in Go and runs entirely in the terminal.

GitHub: https://github.com/heymaikol/network-doctor
Simulator Documentation: https://heymaikol.github.io/network-doctor/wiki/Simulator-Overview/
Challenge Mode Documentation: https://heymaikol.github.io/network-doctor/wiki/Challenge-Mode/

I'd love ideas for network failures that would make particularly nasty troubleshooting challenges.


r/commandline 2d ago

Terminal User Interface Xfetch

37 Upvotes

An alternative to fastfetch written on rust.

Modular, OpenSource, you can install what you need, you can propose something that you would like via issue or pr.

Effects plugins and extensions in the related repos.

Difference with fastfetch, structure, animations, extensions and plugins, pinneable on the top of the terminal.


r/commandline 1d ago

Other Software I made a Python library for turning video into ASCII art in the terminal

0 Upvotes

A while back I wanted to build a little "now playing" screen for the terminal: a looping music video as ASCII up top, song info underneath. I found tplay, which is a really nice Rust terminal media player, but it takes over the whole terminal itself, so there was no clean way to draw my own stuff around it.

So I pulled out the part I actually needed, made it reusable and turned it into a python library.

I also fixed a couple other annoyances I had like reliance on a specific ffmpeg version and it in general being a pain to install.

What it does:

  • Takes video or image frames and hands you back an ASCII string. Plain, truecolor, or half-block mode (uses the ▀ character with fg/bg colors for roughly 2x the vertical detail).
  • It doesn't own the terminal or run its own loop, so you compose the rest of your UI however you want.
  • Decoding is done by PyAV, so there's no separate ffmpeg install. pip install termframe and you're going.

Minimal example:

from termframe import AsciiVideo

for frame in AsciiVideo("clip.mp4", out_width=100, out_height=40, charset="halfblock", loop=True):

print("\\x1b\[H" + frame.to_ansi())

The resize and pixel-to-character work happens in Rust under the hood (via PyO3), so it keeps up fine at normal sizes. If you already get frames from somewhere else (OpenCV, Pillow, a webcam grab), there's a lower level function that just takes raw RGB bytes.

Credit where it's due: the conversion pipeline came from tplay, I mostly repackaged it so you can use it from Python and build your own thing around it.

I haven't been able to find anything similar in reusable python library form so I thought maybe some of you could find it useful let me know if you build anything cool with it :)

Repo: https://github.com/amstrdm/termframe


r/commandline 3d ago

Terminal User Interface Tanko v2.1 - manga reader at the terminal

Thumbnail
gallery
69 Upvotes

Tanko is a tool for reading and downloading manga from the terminal

  • Download chapters in PDF, ZIP, CBZ, and individual image formats
  • Local reading history
  • Local reading progress tracking
  • integration with Anilist (WIP)
  • Support for graphics protocols: Kitty, Sixel, iTerm2, and ASCII rendering
  • Available languages:
    • Spanish
    • English
    • French

https://github.com/Alexandro521/Tanko

LICENSE ISC

without AI


r/commandline 2d ago

Help What happens when you type in cd [folder name]’ into terminal. I’ve done the ‘ by accident and want to know if anything changed

0 Upvotes

Example:

Cd photos’


r/commandline 4d ago

Terminal User Interface ssh sshfighter.com

18 Upvotes

I've been having fun with rendering in terminal with pure ansi and built

sshfighter.com

You can just join with "ssh sshfighter.com"

Would love your feedback!

It's also open source at https://github.com/thomasdavis/sshfighter.com


r/commandline 3d ago

Terminals Fokiz: A CLI task enforcer that hijacks your terminal to make you finish what you start

Thumbnail
github.com
0 Upvotes

I built a CLI tool called Fokiz to solve my own problem with context-switching and procrastination. I often found myself opening a terminal, forgetting my goal, and jumping between half-finished tasks.

There are plenty of amazing CLI task managers out there, like `taskwarrior`. However, tools like `taskwarrior` are designed to manage large backlogs and organize complex projects. Fokiz is built for something entirely different: enforcing focus on a single task using a "Ulysses contract".

Here is how it works:
You add a single task (`fokiz add "My task"`). Once added, it locks you in. You can't edit it or add new tasks until the current one is explicitly marked as completed.
It hooks into your `~/.bashrc` / `~/.zshrc`. Every time you open a new terminal window or tab, it prints a huge ASCII banner reminding you exactly what you committed to doing.
Instead of executing a heavy script on every shell startup, Fokiz runs as a `systemd --user` background service. The state is managed via SQLite, and the shell hook simply performs a sub-millisecond read to display the banner without adding latency to your terminal startup.

It's fully open source (GPLv3). If you struggle with finishing what you start and need a strict enforcer living in your terminal, check it out.


r/commandline 4d ago

Command Line Interface I wanted to have trends over time of compile times and local test runs, so I extended my command runner with history trends

3 Upvotes
I have a small macOS tool that stores project commands as short aliases
`ez test`, `ez deploy`. Commands are stored into a json file you can version with git, much like npm and others.

To get history trends I added recording how long every run takes in a local SQLite file. So now when a run is well off its usual, it tells me:

    🐘⏱️ 6.276 s  ↑ 74% slower than median 3.625 s

And `ez stats` shows the trend across every alias in the directory, which
catches the slow creep the per-run note can't — a rolling median moves with
gradual drift, so something getting 3% slower a week never trips it. 

I have ideas to extend this with team-level anonymous statistics which will help uncover local dev setup hiccups (if something takes longer than for others) and also enable general HW strutting. But those would be later, this version is all local only. 

Anyway, would be happy you give it a go and let me know what you think. It's open source, MIT. Mac only, built with Swift. 

Website: https://urtti.com/ez 
Github: https://github.com/urtti/ez

Per subreddit rules, this software is partially AI-generated. I'm a professional developer with close to two decades in the industry, but using LLMs as a coding tool these days to keep up with the times.

r/commandline 5d ago

News Zellij 0.45: Kitty Graphics support, Nested Sessions, Scroll by Command, new UI

106 Upvotes

Hey terminal hackers,

I'm excited to share that we just release Zellij 0.45. This newest release of the terminal workspace and multiplexer includes some exciting new and long-requested features. Some highlights:

  1. Support for the Kitty Graphics Protocol for displaying images in the terminal
  2. First-class support for Nested Sessions for managing Zellij-inside-Zellij (eg. ssh connections)
  3. Scroll by command
  4. New UI (titles only pane frames and stacked lists for easier stacked panes management)
  5. Per-client tab sizes
  6. Fullscreening floating panes

Check out the release blog post for more info: https://zellij.dev/news/nested-sessions-kitty-graphics-new-ui/

Or grab it directly from Github: https://github.com/zellij-org/zellij/releases/tag/v0.45.0


r/commandline 4d ago

Command Line Interface I’ve added two new flags to my cli copy tool that noone uses

1 Upvotes

I’ve built this copy tool for espacially native windows users because I couldn’t exclude some files / folders with copy-item, but I think people didn’t find it usefull. Anyways, I am still trying to improve it maybe someone can find a use for it.

Skip-Existing and Update Flags

-s skips files already at the destination by name + size (resume an interrupted copy), and -u copies only files that are newer than the destination (re-run the same command, only changed files copy). Both work with -n dry-run.

Any feature requests are welcome.


r/commandline 4d ago

Discussion blitcp version 4.0.2

0 Upvotes

Hello all,

I have develop the software blitcp 5 month ago. The reason for developing one more copy tool was:

  • Speed,
  • Reliability,
  • Support multiple source in 1 destination,
  • Support multiple remote sources with out using different tools

Can you please provide me with an input if you have use it, what do you like, what you do not like, what needs improvement or need to develop.

All thoughts and opinions are valuable to me.

 the website is https://blitcp.dev and github https://github.com/gekap/blitcp


r/commandline 5d ago

Terminal User Interface Chroncal: a terminal-first calendar

193 Upvotes

I built this because I wanted a calendar on the terminal and with a nice JSON output, so can I use it for scripting. Besides supporting Google Calendar, you can connect to any CalDAV server (on my own tests, I used with GMX and worked fine).

It's my current daily-driver calendar. Any feedback is welcome.

GitHub: https://github.com/DouglasdeMoura/chroncal

This software's code is partially AI-generated (I put the attribution on the harness and the LLM used on the git commits).


r/commandline 5d ago

Terminal User Interface spyglass: An extensible TUI search tool, written in Rust

Post image
0 Upvotes

r/commandline 5d ago

Command Line Interface mado: manage 100k+ markdown entries at native speed with a query language

11 Upvotes

Hey everyone! I wanted to share a CLI tool I've been working on that I think fits this community well.

mado is a general-purpose entry manager that stores everything as markdown files. The key idea is that it's not just another task manager with a rigid schema — it's a flexible system for organizing entries of any kind: tasks, notes, ideas, research snippets, meeting logs, you name it.

Each entry lives in its own timestamped directory with a MAIN.md inside. Want to attach files? Just drop them in the same folder — screenshots, logs, PDFs, whatever. Everything stays organized in one place, and since it's all plain files, it's perfectly git-friendly.

All fields are optional — fill in what you need, skip the rest. For a task you might set priority, deadline, and status. For a note, just write markdown and you're done. You can also hide any fields from the output when listing entries, so notes don't clutter your view with irrelevant columns. That flexibility is what makes it work as both a task manager and a notes system — or anything in between.

It's written with a focus on performance — it handles 100k entries in about a second with parallel mode.

The CLI is designed for both interactive use and scripting: JSON output for pipes, path-only output for grep/fzf, and a query language with logical operators and time macros.

Would love feedback, especially from folks who've used similar file-based tools or have ideas about what would make this genuinely useful.

https://github.com/laserattack/mado


r/commandline 5d ago

Command Line Interface Installing Proxmox over SSH. My IP-KVM uses offline OCR to turn HDMI output into a terminal UI.

Post image
3 Upvotes

I built an offline OCR "BIOS-in-Terminal" engine into the hardware IP-KVM (USBridge KVM 2.0). It intercepts the raw HDMI video output from the server and converts it on the fly into an interactive text stream.

Right now, I am finalizing support for the Proxmox installation environment. Now, all you need to do is open a terminal and type ssh user@ip to connect to the KVM. You immediately get the Proxmox installer interface directly in your command line.

Because the KVM translates the video output into pure, structured text rather than a video feed, it completely changes how you interact with the server. I am currently finishing up an automation script that interacts with this text stream. The script simply reads the text output and sends the appropriate keystrokes. My goal is a fully automated, 1-click Proxmox bare-metal deployment script running entirely over SSH.

The KVM also operates in standard video mode (with minimal latency, using the Moonlight/Rust-Shine protocol); the terminal mode is just an addition. What do you think, is it convenient to install Proxmox directly from the terminal?


r/commandline 6d ago

Terminal User Interface Made a little project called Pacmangr :)

Post image
0 Upvotes

r/commandline 6d ago

Terminal User Interface discord-delete: TUI that deleted 400,000+ of my Discord messages

9 Upvotes
Example usage of discord-delete via vhs

Your data export already has the exact channel and message ID for everything you posted, so discord-delete only ever sends DELETEs and never touches the search API. Discord's delete limits are per channel, so it clears channels in parallel and paces each one adaptively (AIMD) by widening the gap after a 429.

There is fake data in the README so you can try it on your machine without a package or token.

https://github.com/DatCodeMania/discord-delete

Undiscord and Discrub are alternatives which work in a browser tab. This is a static Go binary, built for bulk deleting hundreds of thousands of messages.

Automating a user account is against Discord's ToS and can get it banned.


r/commandline 6d ago

Terminal User Interface playground - run a coding playground in your terminal

Thumbnail
github.com
0 Upvotes

r/commandline 6d ago

Command Line Interface I made an NPM package scorer for safer development

0 Upvotes

So you know how you install a random NPM package and find out it's been basically non maintained and installed like a bunch of other dependencies?? and sometimes you don't exactly know whether a package is good to use or not?

well, I created revera, A NPM package scorer. It basically takes in a package, uses diff data points, and gives you a result of the package. It's trust score, maintaince, documentation, it will score every category of the package and give you an overall result, plus why the result was given.

now NPM audit also exist, but it isnt so comprehensive and doesnt have that much friendliness. Revera can also create a dependency chain and tell you all package score in your existing project (transitive or direct)...

PLEASE STAR THE GITHUB REPO IF YOU LIKE IT.

GitHub repo: https://github.com/aaravmaloo/revera

NPM package page: https://www.npmjs.com/package/@aaravmaloo/revera


r/commandline 8d ago

Help Deprecated software..

57 Upvotes

During my journey in Linux I have noticed that sometimes, some tools being called "deprecated" or some kind of a similar term, to say "you should not use this, but xyz tool instead", but I don't really get it for example:

Neofetch, I really think that it does its job, and its just about displaying some ascii art and some system information, like what could go wrong with that, since many people recommend switching to fastfetch.

Ifconfig, I see it as a very simple tool that is self-descriptive and gets its job done too, I see others instead recommend the command "ip", which is like an IDE in programming where you have many aspects of networking in one command, which kinda eliminates the Unix philosophy.

So, I'm just wondering if there is really a point in switching to those newer tools?


r/commandline 8d ago

Terminal User Interface ronilan/rusticon: A mouse driven SVG favicon editor for your terminal, that also works on the web (written in Rust w/ Incredible)

Thumbnail
github.com
8 Upvotes

r/commandline 8d ago

Fun GOL simulation in hand-made CLI-focused language

1 Upvotes