# Mist: ANSI Friendly Terminal Toolkit

**URL:** <https://forum.modular.com/t/mist-ansi-friendly-terminal-toolkit/2709>\
**Category:** Community Showcase\
**Created:** [February 9, 2026, 7:49pm UTC](https://forum.modular.com/t/mist-ansi-friendly-terminal-toolkit/2709 "2026-02-09T19:49:09Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![miktavarez](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/miktavarez/32/446_2.png) [@miktavarez](https://forum.modular.com/u/miktavarez)\
**Post date:** [February 9, 2026, 7:49pm UTC](https://forum.modular.com/t/mist-ansi-friendly-terminal-toolkit/2709/1 "2026-02-09T19:49:09Z")

</div>

Hello everyone! I’ve recently refactored `mist` to be more of a terminal manipulation library. It includes everything from text styling to parsing terminal events.

Short list of features:

- Text styling (emphasis and coloring)
- ANSI Aware text transformations (padding, indent, dedent, wrapping, etc.)
- Terminal control (alternate screen buffer, focus tracking, mouse capture, screen/session state, cursor manipulation support)
- Convenient TTY context manager
- Terminal Event Parsing (Key Events, Focus Gain/Lost, Bracketed Paste, Mouse Events)

Please check out the README for more information on the features available! I created this project to learn more about TUI development and saw how deep the rabbit hole really goes. There’s a lot of differences between different terminal emulators, so I’m always open to PRs and to learn more about the topic.

> **[GitHub - thatstoasty/mist: Advanced ANSI style & color support for your terminal...](https://github.com/thatstoasty/mist/tree/main)**
>
> main

---

<div class="post-metadata">

**Author:** ![duck\_tape](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/duck_tape/32/432_2.png) [@duck\_tape](https://forum.modular.com/u/duck_tape)\
**Post date:** [February 9, 2026, 8:52pm UTC](https://forum.modular.com/t/mist-ansi-friendly-terminal-toolkit/2709/2 "2026-02-09T20:52:08Z")

</div>

I have some projects that need refactoring to use this! 🔥 Great updates!

---

<div class="post-metadata">

**Author:** ![miktavarez](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/miktavarez/32/446_2.png) [@miktavarez](https://forum.modular.com/u/miktavarez)\
**Post date:** [February 9, 2026, 9:06pm UTC](https://forum.modular.com/t/mist-ansi-friendly-terminal-toolkit/2709/3 "2026-02-09T21:06:31Z")

</div>

Awesome! Let me know how it goes. I’ll be opening up a PR to get the latest version into the modular-community channel soon.

---

<div class="post-metadata">

**Author:** ![miktavarez](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/miktavarez/32/446_2.png) [@miktavarez](https://forum.modular.com/u/miktavarez)\
**Post date:** [February 24, 2026, 4:03pm UTC](https://forum.modular.com/t/mist-ansi-friendly-terminal-toolkit/2709/4 "2026-02-24T16:03:01Z")

</div>

I’ve added a few TUI examples leveraging `mist` for terminal control and `mog` for terminal styling.

There are gifs of them in action here: [GitHub - thatstoasty/banjo: Mojo termios via libc](https://github.com/thatstoasty/banjo)

Examples:

> **[banjo/examples/elm/sample at main · thatstoasty/banjo](https://github.com/thatstoasty/banjo/tree/main/examples/elm/sample)**
>
> Mojo termios via libc. Contribute to thatstoasty/banjo development by creating an account on GitHub.

> **[banjo/examples/elm/snake at main · thatstoasty/banjo](https://github.com/thatstoasty/banjo/tree/main/examples/elm/snake)**
>
> Mojo termios via libc. Contribute to thatstoasty/banjo development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![miktavarez](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/miktavarez/32/446_2.png) [@miktavarez](https://forum.modular.com/u/miktavarez)\
**Post date:** [March 30, 2026, 10:48pm UTC](https://forum.modular.com/t/mist-ansi-friendly-terminal-toolkit/2709/5 "2026-03-30T22:48:19Z")

</div>

Mist has been updated to support Mojo 0.26.2, no changes of note this time!

---

<div class="post-metadata">

**Author:** ![miktavarez](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/miktavarez/32/446_2.png) [@miktavarez](https://forum.modular.com/u/miktavarez)\
**Post date:** [June 28, 2026, 4:21pm UTC](https://forum.modular.com/t/mist-ansi-friendly-terminal-toolkit/2709/6 "2026-06-28T16:21:49Z")

</div>

Mist has been updated to support Mojo 1.0.0b2. There’s a couple of new Style methods:

```mojo
def render[T: Writable, W: Writer, //](self, text: T, mut writer: W):
    ...

def render_many[*Ts: Writable](self, *text: *Ts, sep: StringSlice = " ") -> String:
    ...

def render_many[W: Writer, *Ts: Writable](self, *text: *Ts, mut writer: W, sep: StringSlice = " "):
    ...

```

Now it supports writing directly to a writer instead of producing a String which often is then written to a writer.

And render\_many which does the same thing but joins together an arbitrary number of args which it then applies the ANSI style to.

---

<div class="post-metadata">

**Author:** ![miktavarez](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/miktavarez/32/446_2.png) [@miktavarez](https://forum.modular.com/u/miktavarez)\
**Post date:** [August 18, 2026, 11:09pm UTC](https://forum.modular.com/t/mist-ansi-friendly-terminal-toolkit/2709/7 "2026-08-18T23:09:42Z")

</div>

Mist has been updated to support Mojo 1.0! And it’s been split up into three packages to make it lightweight.

Advanced ANSI style, color support, and ansi aware text transformation: [GitHub - thatstoasty/mist: Advanced ANSI style & color support for your terminal applications · GitHub](https://github.com/thatstoasty/mist)  
Mojo Termios: [GitHub - thatstoasty/mojo-termios: Termios FFI bindings for Mojo. · GitHub](https://github.com/thatstoasty/mojo-termios)  
Control your terminal settings and read events: [https://github.com/thatstoasty/termctl](https://github.com/thatstoasty/termctl)
