Skip to main content

Mastui - A Fast and Modern Mastodon Client for the Terminal

Mastui Logo

A powerful, feature-rich, and beautiful Mastodon TUI client.
Explore the Homepage »

Follow Mastui on Mastodon for Updates


Mastui is a modern Mastodon client for your terminal. Built with Python and the powerful Textual framework, it provides a highly efficient, multi-column layout that lets you keep an eye on all the action at once.

Whether you're a power user who wants to manage multiple accounts or someone who just loves the terminal, Mastui is designed to be your new favorite way to interact with Mastodon.

Main Mastui View

🧰 Requirements

  • Python 3.9+
  • A terminal with UTF-8 support and 120+ columns recommended
  • Optional: Sixel/TGP-capable terminal for high fidelity image rendering
  • Mastodon access token (the onboarding flow can create one for you)
  • pipx or pip for installation

Supported Operating Systems

  • Linux
  • macOS
  • Windows (PowerShell/WSL)
  • Android (via Termux)

If you encounter any platform-specific issues, please open an issue.

✨ Key Features

  • Multi-Column Layout: Home, Local, Federated, Mentions, and DM timelines can be shown side-by-side. Layout automatically collapses for narrow terminals.
  • Multi-Profile & Sandboxed Config: Every account has its own config directory, keymap, credentials, cache, and custom theme overrides.
  • Timeline Power Features
    • Like, boost, reply, edit, and view threads directly from the keyboard
    • Jump to the top (g), refresh (r), or move between columns with configurable bindings
    • Persistent SQLite cache enables offline reading and super fast scrolling
  • Rich Composer
    • Content warnings, poll builder, visibility controls, and language selector
    • Autocomplete for @mentions and #hashtags sourced from your follows and the local instance
    • Inline preview of original post when replying
  • Media Friendly
    • Inline image previews with ANSI, Sixel, or TGP renderers (auto-detect)
    • Polls rendered with vote counts or interactive voting UI
    • URL extractor modal lets you copy media/card links without leaving the TUI
  • Personalization
    • Quick theme switches plus custom CSS overrides
    • Keybinding editor with per-profile keymap.json
    • Options modal to toggle timelines, enable image caching, configure auto-refresh cadence, curate the language list used in the composer, and manage server-side Mastodon filters
  • Productivity niceties
    • Search panel for people, tags, and posts
    • Hashtag timeline modal
    • Profile and conversation screens with follow/mute/block actions
    • Log viewer (F12) when running with --debug

🖼️ Screenshots

Thread View Profile View
Thread View Profile View
Compose Window with Poll Options Screen
Compose poll Options Window
Retro Green Theme Light Theme
Retro Theme Light Theme

🚀 Installation

Pre-built Packages (GitHub Releases)

Download pre-built standalone packages directly from GitHub Releases:

  • Debian / Ubuntu (.deb):
    sudo dpkg -i mastui_<version>_amd64.deb
    
  • Fedora / RHEL / openSUSE (.rpm):
    sudo rpm -i mastui-<version>-1.x86_64.rpm
    
  • Universal Linux (.AppImage):
    chmod +x mastui-<version>-x86_64.AppImage
    ./mastui-<version>-x86_64.AppImage
    
  • Arch Linux (.pkg.tar.zst):
    sudo pacman -U mastui-<version>-1-x86_64.pkg.tar.zst
    
  • Windows: Download mastui-<version>-windows-x86_64.zip, extract, and run mastui.exe in Windows Terminal or PowerShell.
pipx install mastui
# later upgrades
pipx upgrade mastui

pip / virtual environment

python -m venv .venv
source .venv/bin/activate
pip install mastui

From Source

git clone https://github.com/kimusan/mastui.git
cd mastui
pip install poetry
poetry install
poetry run mastui --debug

Mastui stores profile data under ~/.config/mastui/<profile> (or the platform equivalent). Remove those directories to wipe a profile, or use the built-in profile manager.

⌨️ Key Bindings

This is a summary of the most common key bindings. For a full list, press ? inside the app.

Key(s) Action
q Quit the application
d Toggle dark/light mode
u Switch user profile
o Open options screen
i Open filter manager
/ Open search screen
? Show the full help screen
up/down Move selection up/down
left/right Focus timeline to the left/right
g Jump to the top of the focused timeline
r Refresh all timelines
c Compose a new post
a Reply to the selected post
l Like / Unlike the selected post
b Boost / Reblog the selected post
e Edit one of your own posts
p View the author's profile
enter View the post's thread

🧹 Server-side Filters

Mastui now supports Mastodon's server-side filters end-to-end.

  • Open the filter manager with i or via Options → Manage Filters.
  • View existing filters and add / edit / delete them.
  • Configure:
    • Title
    • Expire after
    • Filter Context (Home and lists, notifications, public timelines, conversations, profiles)
    • Filter Action (warn / hide)
    • Keywords with optional Whole word matching
  • Filters are stored on your Mastodon server, so they apply across clients for the same account.
  • Mastui respects server filtering in timeline and modal views:
    • warn filters show a warning banner
    • hide filters are not rendered in the UI

🗺️ Roadmap

Mastui is actively developed. Here are some of the features planned for future releases:

  • Bookmarks: Bookmark posts and view them in a dedicated timeline.
  • Advanced Filtering: Expand filter support (for example status-based filters or additional filter behaviors).
  • User Lists: View and interact with your created user lists as timelines.
  • Post Management: Delete your own posts.
  • Profile Management: Re-authenticate or delete profiles from within the app.
  • Post Drafts: Save and load drafts of your posts.
  • Localization: Support for multiple languages in the UI.

Have an idea? Feel free to open an issue to discuss it.

🤝 Contributing

Contributions are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

🛠️ Technology Stack

Mastui is built with some fantastic open-source libraries:

✍️ Authors

  • Kim Schulz - Initial work - kimusan

See also the list of contributors who participated in this project.

📜 License

Mastui is licensed under the MIT License. See the LICENSE file for more information.

Metadata

Release files for mastui 1.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mastui 1.12.0
File Size Uploaded
mastui-1.12.0.tar.gz 75.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mastui 1.12.0
File Interpreter ABI Platform
mastui-1.12.0-py3-none-any.whl Python 3 none any Details

Total release size: 167.9 kB

Release files / mastui-1.12.0.tar.gz

Download URL mastui-1.12.0.tar.gz
Size 75.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c9be9b94abd6c70a997cf6b9c261946b3c68bad157b48a0e677b6ab6640a9c52
BLAKE2b-256 checksum
How to use checksums
a06bcf8e452b131e87b1c049e9fbda24f71e35400fad6dc8242e93cc23a7943b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / mastui-1.12.0-py3-none-any.whl

Download URL mastui-1.12.0-py3-none-any.whl
Size 92.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2fb968c26c0f0ef3fe8f92a0df0dcb50c5f57e1bb45ab30c7adb95701111a0a7
BLAKE2b-256 checksum
How to use checksums
0a36613232c4666a064ffbe8ada5ababf093cae0b105ff4822a3978c18767801
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

1.14.1

2 release files

1.14.0

2 release files

1.13.0

2 release files

This release

1.12.0 This release

2 release files

1.11.0

2 release files

1.10.0

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page