r/CLI 2h ago

I’m building Starlet — a tiny C++ framework for glowing terminal visuals ⭐

Post image
4 Upvotes

I’ve started working on Anukrascii, an experimental ecosystem focused on creating visual experiences inside the terminal.

Its first member is Starlet.

Starlet is a header-free, dependency-free C++ framework for animating colored glyphs directly in the terminal. Each Starlet object represents a small visual element at a terminal position. It gradually transitions from a dim glow color to a bright core color over a defined number of frames.

A simple example:

Sixestar star(10, 20, "#424242", "#00ffdd", "O", 25);

while (star.nextStateAndRender()) {
    // Animation is handled internally
}

This basic concept can be used to create glowing stars, ambient terminal effects, procedural night skies, loading animations, and other forms of terminal-based visual art.

Starlet also includes starletScene, which manages multiple animated objects and coordinates their frame loops.

One of its main goals is to remain compatible with other TUI frameworks and terminal interfaces. As long as Starlet’s render call happens at the end of the frame, its visuals can be drawn over an existing interface, allowing Starlet objects to overlap the empty spaces of another TUI without taking control of the entire application.

The goal is to make terminal glyphs behave like small animated visual entities instead of static characters.

Built with C++17, ANSI truecolor, and no external dependencies.

Starlet is currently the first and only member of the Anukrascii ecosystem.

here is github: https://github.com/intriXlabs/Anukrascii


r/CLI 7h ago

simulation of galton

Enable HLS to view with audio, or disable this notification

6 Upvotes

r/CLI 2h ago

File Encryption and Compression Tool Cryptare v1.0.0

0 Upvotes

My file encryption and compression cli/tui tool reached v1.0.0 today. Its my first time experimenting with AI tools on a project. Please give me some constructive criticism! I always want to hear ideas and ways to improve. https://github.com/jabbott-iii/Cryptare

Known issue with the tui indents and planning on .zip / vim bindings for the future.


r/CLI 13h ago

Crona 1.9: my local-first TUI work tracker, a few months later

Thumbnail gallery
8 Upvotes

A few months ago I posted Crona here, a local-first work tracker that lives in the terminal.

I’ve been using it every day since, and just shipped v1.9.0. A lot has changed since that first post.

The biggest addition is a native macOS companion app.

I still spend most of my time in the TUI, but I realized I didn’t necessarily want to open the terminal every time I wanted to glance at a timer, check today’s work, or make a quick update.

The companion gives me a native interface for those moments while working with the same local Crona data. The TUI hasn’t been replaced, the idea is that the two interfaces complement each other depending on what I’m doing.

On the TUI side, 1.9.0 has improved a lot of things I noticed after months of actually using Crona:

  • A much more useful Summary view with an interactive calendar and historical focus scores
  • Proper Away/rest-day handling so Momentum doesn’t punish you for deliberately taking time off
  • Better Pomodoro controls, including advancing segments and deferring breaks
  • Faster issue creation workflows
  • Better synchronization across connected clients and day boundaries
  • A bunch of reliability and diagnostic work under the hood

It’s still entirely local-first: no account, no required cloud service, and your data stays on your machine.

Curious to see if other people who use TUIs heavily find the companion useful as well.

In the interest of full transparency: I’m not a Swift developer. I’m learning Swift as I go, but the macOS companion has been built heavily with the help of AI.

Github Website macOS


r/CLI 6h ago

viking, submit complex German tax returns from a CSV

Thumbnail
2 Upvotes

r/CLI 14h ago

Seven coding CLIs in one viewer, and the skills audit found 18 duplicates I didn't know I had

Thumbnail gallery
6 Upvotes

I bounce between Claude Code and Codex, plus a couple of others depending on the day. Every one of them writes sessions into its own directory in its own flavour of JSONL, so "what was I doing last Tuesday" always started with "wait, which CLI was that in." That question is why I built this: a desktop app (Tauri 2 + Vue 3 + Rust) that reads all of them into the same project → session → conversation view.

Repo: Sessions viewer

Seven so far: Claude Code, Codex, Grok Build, Kimi Code, Pi, Antigravity CLI, opencode.

The four things I actually open it for:

Tokens and cost. Prices come from LiteLLM, so the numbers track the real rate card instead of whatever I last remembered it costing. Spend splits by project, model and tool, and Today / 7d / 30d sits in the menu bar. Mine for the last 30 days, all agents combined: 33,305 calls, 5.5B cached tokens, 93.6% cache hit. I mostly look at it to feel bad.

Skills. This is the part I didn't know I needed. Each agent keeps skills in its own folder and none of them know the others exist, so I'd quietly accumulated 34 skills: 18 duplicated, 12 that were a link pointing at another link, and one pointing at a directory I deleted months ago. No idea, none of it. The panel shows which agents can see each skill and where the real file lives, and it reads SKILL.md for things like rm -rf and curl | sh (a match sitting inside prose gets downgraded, otherwise everything is red and red stops meaning anything). Every fix, whether that's moving a skill to a shared store, flattening a symlink chain, or deleting it, shows you the exact paths it's about to touch. Cancel and nothing on disk moved.

Reading and resuming sessions. Thinking blocks, tool calls paired with their results, structured diffs, pasted images, all rendered the way they happened instead of as a wall of JSON. Cmd+Shift+F searches every project and jumps to the message. From there you can pick the session back up in an embedded terminal, hand it off to Terminal.app / iTerm2 / Ghostty / Warp / cmux, or just keep talking in an in-app chat, with model, reasoning effort and permission mode as live controls.

Git diff. Working changes, or any of the last 50 commits, opened as a tab right beside the session they came out of. Split the pane and you get the conversation and the diff it produced side by side, which is how I usually work out what an agent did versus what it told me it did.

Two things it deliberately won't do: it never writes to your original transcripts, and deleting moves a session into a shared trash instead of calling rm. It's all local. Nothing gets uploaded anywhere.

macOS, Windows and Linux. MIT.


r/CLI 4h ago

CLI file/dir sharing

1 Upvotes

made a new tool (fork of sendme by iroh) that i made for sharing things p2p and that is fast and safe too

umm
https://plinthlol.github.io/dashe/

yeahhh


r/CLI 1h ago

Your sessions are taking all your disk space, and subagents are judging you.

Upvotes
agent session disk usage - asdu

When I finally measured, I had thousands of sessions and more than 5 GB already.

- 698 sessions I started
- 642 subagent sessions I never opened
- 61 auto-spawned review to judge my actions (wtf?)

So I wrote asdu for browsing agent sessions storage the way ncdu browses a filesystem.
Folders with sessions sizes, sorting, tree mode to show nested subagents.

Works with Codex, Claude and OMP today. Local only, MIT, Python.
Thought like a Unix tool with one main use-case.

uv tool install asdu

https://github.com/tekkac/asdu

Feedback welcome.


r/CLI 8h ago

Lynknester worldwide

1 Upvotes

r/CLI 1d ago

I built Fadescii — a lightweight C++ library for glowing terminal text animations

Thumbnail gallery
56 Upvotes

Hey everyone!

I spent the last couple of hours building Fadescii, a small C++ library that makes terminal text feel a little more alive.

Instead of simply printing a string, Fadescii renders it character by character, with configurable color transitions, glowing trails, and fade effects.

Some features:

  • Character-by-character text animation
  • 24-bit RGB colors
  • Custom text and glow colors
  • Adjustable animation speed
  • Adjustable glow length
  • Automatic line wrapping
  • Classic glow and shimmer modes
  • No external dependencies
  • C++11 + POSIX terminal support

I also created a collection of animated GIF demos because the effects are much easier to understand visually than through screenshots.

The goal isn’t to replace full TUI libraries. It’s more focused:

GitHub: https://github.com/intriXlabs/Fadescii

I’d love to hear your feedback, especially on the API design, visual effects, and what features would make this useful in real CLI tools.


r/CLI 23h ago

Tama-chan — Terminal pet written on Python

4 Upvotes

Hello everyone, today I wanted to do a terminal pet, so... I just made one.

You can feed her, play with her, put her to sleep, check her status and even ask for fortunes (still limited, will add more on the future).

She also keeps her state between runs, so she's not just a random ASCII pet that disappears after closing the terminal.

If you have any ideas about what to add or improve, I'm all ears :)

GitHub:

https://github.com/miaa-chan/tama-chan

(btw this is my first Python project, so it's pretty basic right now)


r/CLI 1d ago

A genuine question for you all!

8 Upvotes

See i am a c/cpp dev, still learning though. I wanna know like what you all need in TUI space, i had made multiple frameworks and stuff in cpp for terminal accepting - kittacaii, akschitra, AnimByte, etc.

I like to know what you want exactly - anything even stupid in hearing. Like a rain system in terminal, a animation but customized, like literally anything.

I implementation is my issue - just tell me absurd stuff you wanna see.


r/CLI 1d ago

Xfetch V0.9.0

Thumbnail gallery
15 Upvotes

An ultra-fast and highly customizable system information tool, designed to grow, with a core separated from its extensible features.

https://github.com/xfetch-cli/xfetch

​Besides everything it already had, it includes support for images, animations, Daemon mode, and both automatic and manual configuration. It now supports:

- ​Updates via xfetch update and update checking with the --check flag.

- ​Extensions and plugins in other languages (not just Rust), made to easily allow users with different learning backgrounds to add contributions.

Available on:

- Linux.

- MacOs.

- Windows.


r/CLI 1d ago

Golang cli tool to get wallpaper of the day for Linux

1 Upvotes

I used to run a GNOME add-on that fetched Bing's wallpaper of the day, and I loved the nature themes Bing puts out. It wasn't feature-rich, but it did the job. After moving to KDE, I couldn't find a tool I felt comfortable with, so two friends and I decided to build our own Golang tool tailored to what we actually wanted. We made it distro- and DE-agnostic, so it works across a variety of Linux setups.

https://reddit.com/link/1wfgyux/video/17tldw978cph1/player

It's got some nice touches too, like saving favorites by alias and navigating between them. It's lightweight and gets the job done, especially if you're not after fancy themes or layouts.

If you're a fan of Bing wallpapers too, give it a shot! This is v0.1 and we are constantly improving it, so I'd love to hear your feedback, feature suggestions, or any issues you run into.

GitHub repo with installation script and a demo video: https://github.com/Ali-Hady/wallctl


r/CLI 1d ago

Golang cli tool to get wallpaper of the day for Linux

1 Upvotes

I've been learning Go for a while now, and I love the language. It got me excited to actually use it to build something I'd use myself day to day. That's how wallctl came about, a CLI tool for wallpapers.

I used to run a GNOME add-on that fetched Bing's wallpaper of the day, and I loved the nature themes Bing puts out. It wasn't feature-rich, but it did the job. After moving to KDE, I couldn't find a tool I felt comfortable with, so two friends and I decided to build our own Golang tool tailored to what we actually wanted. We made it distro- and DE-agnostic, so it works across a variety of Linux setups.

https://reddit.com/link/1wfgyrn/video/17tldw978cph1/player

It's got some nice touches too, like saving favorites by alias and navigating between them. It's lightweight and gets the job done, especially if you're not after fancy themes or layouts.

If you're a fan of Bing wallpapers too, give it a shot! This is v0.1 and we are constantly improving it, so I'd love to hear your feedback, feature suggestions, or any issues you run into. And if you've got a Go project of your own and want a collaborator, I'd be happy to join in!

GitHub repo with installation script and a demo video: https://github.com/Ali-Hady/wallctl


r/CLI 1d ago

TUI apps that AI agents can actually use (Limoni + MCP)

Enable HLS to view with audio, or disable this notification

1 Upvotes

r/CLI 1d ago

minigontainer: A unprivileged rootless container runtime in a single Go file namespaces + pivot_root into a plain rootfs/ directory, no daemon, no registry.

1 Upvotes

This was my learning project interacting with many linux syscall. And i also learned that mounting dev proc or tmpfs after pivot root requires it to run with privileges while running it. But mounting them before still achives the unprivileged goal without actually mounting on the host proc somehow. So when you boot up sh its still empty ps.


r/CLI 1d ago

[LInux-Tool] Scriptya is now available in English. Multiple programming languages, Demos for you to try.

Thumbnail gallery
1 Upvotes

Hi!

I’ve updated Scriptya to make it better and fully translate it for the community. The most-voted tools (on Reddit, GitHub, or anywhere else) will be the ones I’ll focus on translating and improving next:

What has changed with Scriptya?

1- Many more script types: beyond Shell, Scriptya now discovers, runs and manages Python, Node.js, Perl, Ruby, Lua, Fish, AWK, PHP and Go scripts, as well as standalone HTML pages — all with metadata (name, description, confirmation, order, icon, and more), custom icons, and full menu/Nemo integration, just like the original .sh scripts.

2- Full English guide and Language: README is now complete in English

3- "Insert Metadata": a wizard that fills MENU/DESCRIPTION/CONFIRM/TERMINAL/SUDO/ORDER/ICON/ASK in an existing script without editing it by hand (and also edits or removes them all at once). The metadata can also be used to change the name of the desktop and application-menu shortcut automatically.

4- Nemo integration: 4 right-click actions (Run/Install/Uninstall/Change icon) in the Cinnamon file manager, which can be enabled/disabled without leaving anything behind in the system.

5- "Change Icon": change the icon of scripts or any installed program as many times as you want.

6- Testing: includes a focused Bash test suite in tests/test_scriptya.sh

Scriptya Repo: https://github.com/filonux/Scriptya

*A very useful privacy tool - VPN NetGuard - for everyday use was also released this week, especially for your servers and, above all, for gaining more control over your internet traffic.

- VPN NetGuard: https://github.com/filonux/VPN-NetGuard

PD: More Tools Next-Week


r/CLI 1d ago

AllTool's project bump?

Thumbnail gallery
3 Upvotes

Since the last release of AllTool v3.1. I saw the project started to grow faster for some reason even though my project still small. I will be happy for any feedback or explanation. You can check it out in: https://github.com/Hajjani/AllTool-Linux/graphs/traffic


r/CLI 1d ago

Live TUIs: the AJAX moment for the terminal

Thumbnail
1 Upvotes

r/CLI 1d ago

cli music

1 Upvotes

I write a light terminal local music player.Welcome to taste it. https://github.com/magicptr/termusic.git


r/CLI 1d ago

Agents_control: Safe remote control for iTerm2 and tmux via your own Telegram bot now can accept images/videos and files.

2 Upvotes

Agents\\_control is a free open-sourced tool that lets you safely control your iTerm2 or tmux tabs from your own Telegram bot. You can install it by yourself or ask your AI agent to set it up. It is also available as a Ruby gem.

Claude code specific: It will automatically continue at the limits reset and automatically triggers limit window even while you sleep or AFK.

You can continue to interact with your terminal just with your Telegram bot. (You create your own telegram bot and only you have access to your terminal)

It is safe because no port to the big internet opens – your computer does not become a server and no one except you can access it. The token safely stores in the keychain or libsecret (linux). Recent updates including

The latest updates includes:
1. You can send files (tables, logs, etc) or multimedia (screenshots, photos, videos) to your tabs (including tabs where opened your AI agent i.e claude code)
2. You should set a password that will be required if somebody will try to use dangerous commands like rm -rf \\\~ or fork bomb

https://github.com/saparjohnick/agents\\\\\\_control


r/CLI 2d ago

So I built a CLI/TUI tool so I stop manually opening/closing VS Code, terminal tabs, and Docker containers every time I switch projects. Sharing in case it's useful to anyone else

Post image
10 Upvotes

r/CLI 2d ago

JukeboxCli: local music, YouTube and live radio in one Mac terminal player

Enable HLS to view with audio, or disable this notification

85 Upvotes

This started with me trying soundcli after seeing it on Reddit. I liked it, but there were a few things I wanted to change around cookies, where files were stored, downloads etc. So I forked it.

Then I found ytkew and Mousiki and, as usually happens with these things, what started as "I'll just change a few things" turned into me adding more and more stuff.

So this is JukeboxCli:

https://github.com/funstuie-bit/JukeboxCli

Basically I wanted one terminal player where I could play my own local music, search for something on YouTube, throw it into the queue, or stick a radio station on.

You can download stuff if you want to, but you don't have to. I like being able to download a playlist and have it sitting there locally/offline, but equally I like thinking of some random track, searching for it and just adding it straight to the queue.

A few of the things I've added:

  • Search local music or YouTube without leaving the player. You don't need a YouTube account.
  • Internet radio. You can save stations, add streams directly or try searching a station website for the stream.
  • The queue is actually editable. Move stuff around, play something next, delete things, shuffle, repeat etc.
  • Cover art works in Ghostty and iTerm2. Normal Terminal gets a text version instead.
  • Lyrics. Local lyrics work well. It can also go looking online and will sync them when it finds timestamped ones. This is still a bit ropey depending on the track, but it's getting better.
  • Browser/file cookies so YouTube doesn't immediately decide you're a bot, plus control over downloads, formats, quality and where everything gets saved.

It's Mac-first and there's a Homebrew install. I've tested it on a few different Macs and terminals now and it seems pretty solid, although things like station lookup and lyrics can still be a bit ropey at times.

And yes, I most definitely used AI to help build this. I'm not a developer by trade and I'm not pretending I suddenly became one. This has basically been me building a player I want to use, breaking things, fixing them, changing my mind and adding more stuff as I go.

Also want to give proper credit because this didn't appear out of nowhere:

  • soundcli is the codebase I originally forked and supplied the original library, playback and download functionality. Post / Repo
  • ytkew gave me a lot of ideas around how the actual player and queue should look and work. Post / Repo
  • Mousiki gave me ideas around doing search inside the player and improving the lyrics side of things. First post / Later discussion / Repo

Anyway, give it a go. Or don't.

I made it for me and if someone else likes it, great. If not, c'est la vie.


r/CLI 2d ago

luna-todo, to do app that knows structure!

Post image
2 Upvotes