Skip to main content

A Mastodon TUI client.

Project description

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, and curate the language list used in the composer
  • 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

pipx (recommended)

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
/ 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

🗺️ 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.
  • Content Filtering: Support for Mastodon's server-side content and keyword filters.
  • 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mastui-1.7.0.tar.gz (67.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mastui-1.7.0-py3-none-any.whl (81.7 kB view details)

Uploaded Python 3

File details

Details for the file mastui-1.7.0.tar.gz.

File metadata

  • Download URL: mastui-1.7.0.tar.gz
  • Upload date:
  • Size: 67.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/6.16.0-061600rc4-generic

File hashes

Hashes for mastui-1.7.0.tar.gz
Algorithm Hash digest
SHA256 2da5a9dedee336b825bddb9eb6b700025f8d9fd0cdea1512cbfb7047a6b9f300
MD5 f551a48db101159503f2f4a6a1549d1c
BLAKE2b-256 9f97aaed9f2fb72996a02f7f7c5224cbcc10fddd678e0d1d0516977bede153d8

See more details on using hashes here.

File details

Details for the file mastui-1.7.0-py3-none-any.whl.

File metadata

  • Download URL: mastui-1.7.0-py3-none-any.whl
  • Upload date:
  • Size: 81.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/6.16.0-061600rc4-generic

File hashes

Hashes for mastui-1.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 09cc93d6d640baf8135f3723f27d6d7841c9067474d4a7ffa50ffc90ce34b04e
MD5 944e5951ebc19f27afa9ecd4a733810a
BLAKE2b-256 7966d563f123a718bc70aa6838430be9cef6aeadabb12268664b8ff2f16c55c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page