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

💻 Cross-Platform Support

Mastui is built on the cross-platform Textual framework and is tested and expected to work on:

  • Linux
  • macOS
  • Microsoft Windows
  • Android (via Termux)

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

✨ Features

Mastui is packed with features to make your Mastodon experience seamless and efficient:

  • Multi-Column Layout: View your Home, Notifications, Federated, and Direct Message timelines simultaneously. The layout automatically switches to a single-column view on narrow terminals.
  • Multi-Profile Support: Securely log into multiple accounts and switch between them instantly with the u key. Each profile has its own configuration, cache, and theme settings.
  • Interactive Timelines:
    • Like (l), Boost (b), and Reply (a) to posts directly.
    • Jump to the top of a timeline with g.
    • Scroll infinitely to load older posts from your cache or the server.
    • Scroll position is preserved during automatic refreshes, so you never lose your place.
  • Rich Content Support:
    • Image Previews: View images directly in your terminal with lazy loading for a smooth experience. Multiple renderers are supported (ANSI, Sixel, TGP).
    • Polls: View and vote on polls.
    • Markdown & Links: Posts are rendered beautifully with clickable links.
  • Full-Featured Composer:
    • Write new posts (c) and replies (a) in a full-screen composer.
    • Add Content Warnings (CWs) and select post language.
    • Create and manage polls directly.
  • Deeper Navigation:
    • View full post threads (Enter).
    • View user profiles (p), including their bio, stats, and links.
    • Follow, Mute, and Block users directly from their profile.
  • Smart Notifications:
    • Get detailed pop-up notifications for new Direct Messages (e.g., "New DM from @user").
    • Optionally enable pop-ups for mentions, follows, boosts, and favourites.
  • Highly Configurable:
    • Toggle the visibility of each timeline.
    • Configure auto-refresh intervals for each timeline.
    • Choose from multiple built-in themes or create your own.
  • Advanced:
    • Hidden log viewer (F12) for debugging when running with --debug.
    • Persistent SQLite cache for fast startup and offline reading.

🖼️ 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

The recommended way to install Mastui is with pipx, which installs it in an isolated environment.

  1. Install pipx (if you don't have it already):

    python3 -m pip install --user pipx
    python3 -m pipx ensurepath
    
  2. Install Mastui using pipx:

    pipx install mastui
    

After installation, you can run the application from anywhere by simply typing mastui.

Upgrading

To upgrade to the latest version of Mastui, run:

pipx upgrade mastui

⌨️ 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.1.0.tar.gz (50.9 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.1.0-py3-none-any.whl (62.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mastui-1.1.0.tar.gz
  • Upload date:
  • Size: 50.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for mastui-1.1.0.tar.gz
Algorithm Hash digest
SHA256 57776f122efdc2a6ee0e2061eed6f2abbb2df1e3270c4c0322e1452327d026b5
MD5 ad51e80df5ed0122cd8b2edcfee52635
BLAKE2b-256 cf10e3350bc4c6000ca0af45afcd2101cd1b0742d0a3688e18cc881fc49e48b4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mastui-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 62.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.12.3 Linux/5.15.167.4-microsoft-standard-WSL2

File hashes

Hashes for mastui-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7d2a3044805e9c2a871a2cb0edf7f85377863fb19e92c50d3ac86490ddfa2413
MD5 cfdc14381fe61404e69636fccbcde380
BLAKE2b-256 b214c01c3988d85d69839af58b1f70acbebde3d520f6d29e2a1f691c32e6967e

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