Show HN: Zenta – Mindfulness for Terminal Users
ihiep
3 days ago
196
39
https://github.com/e6a5/zenta
car3 days ago
Great.

I only get a line animation in the MacOS terminal app, under zsh, it doesn't look like the description.

ihiepcar3 days ago
Thanks for the feedback! You're right. I haven’t tested it on Terminal.app yet. It works well on iTerm2 and most Linux terminals, but I’ll review it on Terminal.app soon and update the tool or the README to reflect compatibility. Really appreciate you pointing that out.
car ihiep2 days ago
Thank you for being so responsive, and making Zenta in the first place! It has already allowed me to calm my mind on a few occasions.

The cli is already so bare bones and focused, so Zenta fits in well.

ihiepcar3 days ago
Update: Just released v0.3.1 with Terminal.app compatibility fixed! The tool now auto-detects your terminal and adapts gracefully. You'll see a beautiful progressive breathing animation that flows like: Inhale: · → ○ → ●○○ → ●●●● (building up) Exhale: ●●●● → ●○○ → ○ → · (releasing down) Try the latest version - it should breathe beautifully on Terminal.app now. Thanks for helping make mindfulness accessible to everyone!
pizzalife ihiep2 days ago
I love this. Quick suggestion: make the width/height of the animation depend on your terminal size. Then you could make the animation a bit smoother for larger terminals.
aftergibson3 days ago
Well that's just neat, thanks for sharing!
ihiepaftergibson3 days ago
It is only what it is. Thank you for seeing
zipping15492 days ago
I always love this kind of silly tui tools. Thanks for sharing!
shubhamintech2 days ago
no analytics, no numbers, love that!
d--b2 days ago
Looks great, though I must say I am not a huge fan of the yoga-namaste-style theme. Reminds me of spas where the "relaxing" music is stock ambient crap.

If I had more time, I'd theme it with a more rock n roll approach.

ihiepd--b2 days ago
Whether spa or rock, both return you to now.
slowkoder2 days ago
Any plans for additional commands? I was thinking that a 'focus' command with a short to-do list (perhaps paired with some Stoic quips) could be useful in keeping one on track over the course of the day.
mgb1112 days ago
quite original, bringing mindfulness to coding good luck with it
j4cobgarby2 days ago
This is quite nice! I found the name zenta slightly inconvenient to remember and type, so I renamed the executable to 'relax', but the help messages still say 'zenta'. As a small fix, maybe you can make the help messages print argv[0] as the executable name?
ihiepj4cobgarby2 days ago
Great idea! Just fixed this. Now when you rename zenta to relax, all help messages automatically show "relax" instead of "zenta". Available in v0.3.2. Thanks!
tomhow2 days ago
[stub]
abhisektomhow2 days ago
I experienced mindfulness when I moved to i3wm.
piepiemumu2 days ago
Nice! Would be cool if implemented also as a progress bar.. :)
ashlance2 days ago
Thanks for this. We need more of this kind of energy in the world.
nakedneuron2 days ago
Great job!

I was looking for an app/cli that lets me adjust breathing patterns on the fly (think of extending the hold duration for 0.5s and a while after for instance extend the outbreathe duration 1s, while having my eyes closed using my bluetooth controller). Finding something like this on any app store with its thousands of bloated apps seems quite hopeless and it's a relatively simple feature. Can I hope for your kindness to implement something like that?

(I'm using 8bitdo controller and mapping of buttons is possible via keyd, so no need for adding configurations, any key combo would do).

I'm also happy for anyone else pointing me to a solution.

Keep on doing good!

(Happy to follow your repo if I can hope for this feature. No worries, I'm a patient man.)

ihiepnakedneuron2 days ago
Beautiful idea! I’ll explore how to let the breath respond to your keys.
ihiepnakedneurona day ago
Honestly, I spent a whole day trying it, but it doesn't work for me. Zenta's way is simple: notice you're stuck in thoughts, return to your breath, then continue working with awareness.
barbazoo2 days ago
Where do I put my OpenAi key though or are you saying this doesn’t even need a LLM :) /s
ihiepbarbazoo2 days ago
Runs offline. Powered by consciousness. :)
nathell2 days ago
Thumbs up for the philosophy. This is the way.
five9s2 days ago
Pretty cool. Have you thought about auto triggering a need for a breath at certain intervals?
ihiepfive9s2 days ago
The best breath is the one you notice, not the one you're told to take.
set5think2 days ago
This is elegant and tasteful in all the right ways. Really nice work!
justusthane2 days ago
Really neat! Some feedback: it seems Zenta looks at $TERM to determine whether or not to use "simple" mode, and it seems it might be overly conservative.

I'm a tmux user, and in tmux, $TERM must be "screen-256color" or "tmux-256color". With $TERM set to either of those, zenta uses simple mode.

I can get it to use "full" mode by running it as "TERM=xterm-256color zenta" within tmux and it works fine, but this shouldn't be necessary - I haven't run into any other TUI apps that don't work properly in tmux.

Edit: I just noticed in the README that it seems to be intentional that it uses simple mode in tmux, but I'm not sure why that should be the case, since it clearly works fine. Maybe you could use simple mode for $TERM=screen and normal mode for $TERM=tmux?

On a different note, it seems like it would be more immersive if it took over the entire terminal window while running. Maybe you've already considered that and decided not to.

Anyway, thanks again! I love this.

arp242justusthane2 days ago
I added a --complex flag so it's easier to use the complex animations on tmux: https://github.com/e6a5/zenta/pull/5

But yeah, I agree – I think this might be rather too conservative.

justusthanearp2422 days ago
I just installed the newest version (released 21 minutes ago!) and it works perfectly now. Thanks to both of you! The magic of open source :)
ihiepjustusthane2 days ago
Thank you both for this feedback! You're right. I made a mistake by not testing thoroughly enough. I was being overly conservative based on assumptions rather than actual testing. Your detailed feedback about $TERM values and real-world tmux usage is exactly what I needed. I should have tested more environments before making assumptions about terminal compatibility. Thanks for keeping me honest and helping improve Zenta!
justusthane ihiep2 days ago
No problem, you can't test everything!
ofirtwoa day ago
That's amazing and I would love seeing more and more projects directed at engineers & mindfulness. Sometimes I notice after a few hours of work that i'm not breathing / have super shallow breath. That's a cool beginning into incorporating tools into the workflow. Love it!
drag0sa day ago
nice! would exposing this as a tool for claude code improve performance when taking a deep breath?
ihiepdrag0sa day ago
Why connect it to Claude, when it already connects you to the universe through your breath?
pdabbadabba ihiepa day ago
Maybe the idea is to let Claude take a breath.
ihiep9 hours ago
Thank you again to everyone who shared feedback here — it helped a lot. I took some time to reflect and wrote about why I built Zenta, and how mindfulness became part of my work: https://hieptran.me/posts/zenta/ Just wanted to share this in case it resonates with anyone else.