Show HN: Zenta – Mindfulness for Terminal Users

(github.com)

203 points | by ihiep 13 days ago

23 comments

  • justusthane 12 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.

    • ihiep 12 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 12 days ago
        No problem, you can't test everything!
    • arp242 12 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.

      • justusthane 12 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 :)
  • nakedneuron 12 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.)

    • ihiep 12 days ago
      Beautiful idea! I’ll explore how to let the breath respond to your keys.
    • ihiep 11 days 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.
  • ihiep 10 days 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.
  • neiesc 12 days ago
  • d--b 12 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.

    • ihiep 12 days ago
      Whether spa or rock, both return you to now.
  • zipping1549 12 days ago
    I always love this kind of silly tui tools. Thanks for sharing!
  • ofirtwo 11 days 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!
  • slowkoder 12 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.
  • set5think 12 days ago
    This is elegant and tasteful in all the right ways. Really nice work!
  • shubhamintech 12 days ago
    no analytics, no numbers, love that!
  • car 12 days ago
    Great.

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

    • ihiep 12 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 12 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.
    • ihiep 12 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 12 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.

  • five9s 12 days ago
    Pretty cool. Have you thought about auto triggering a need for a breath at certain intervals?
    • ihiep 12 days ago
      The best breath is the one you notice, not the one you're told to take.
  • j4cobgarby 12 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?
    • ihiep 12 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!
  • nathell 12 days ago
    Thumbs up for the philosophy. This is the way.
  • aftergibson 12 days ago
    Well that's just neat, thanks for sharing!
    • ihiep 12 days ago
      It is only what it is. Thank you for seeing
  • drag0s 11 days ago
    nice! would exposing this as a tool for claude code improve performance when taking a deep breath?
    • ihiep 11 days ago
      Why connect it to Claude, when it already connects you to the universe through your breath?
      • pdabbadabba 11 days ago
        Maybe the idea is to let Claude take a breath.
  • ashlance 12 days ago
    Thanks for this. We need more of this kind of energy in the world.
  • piepiemumu 12 days ago
    Nice! Would be cool if implemented also as a progress bar.. :)
  • mgb111 12 days ago
    quite original, bringing mindfulness to coding good luck with it
  • barbazoo 12 days ago
    Where do I put my OpenAi key though or are you saying this doesn’t even need a LLM :) /s
    • ihiep 12 days ago
      Runs offline. Powered by consciousness. :)
  • nfrench17 12 days ago
    [dead]
  • tomhow 12 days ago
    [stub]
    • abhisek 12 days ago
      I experienced mindfulness when I moved to i3wm.
  • g0db1t 12 days ago
    [dead]