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, Local, 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.
    • Customize Keybindings: Change most key bindings to your liking from the options screen.
  • 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.6.0.tar.gz (65.6 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.6.0-py3-none-any.whl (79.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mastui-1.6.0.tar.gz
  • Upload date:
  • Size: 65.6 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.6.0.tar.gz
Algorithm Hash digest
SHA256 04144c0d904573e6e614f518dd62bdde1a309f0e431d208a8ab3db0711db8bfd
MD5 a94ac6d7e66057014fd524da44852d88
BLAKE2b-256 8061b72d07a780318862e5c77b0d30a149b60bc3ae6a7159ca91e0a5264ca5b5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mastui-1.6.0-py3-none-any.whl
  • Upload date:
  • Size: 79.6 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.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e463b749384c350ed6277b4b22634ebbcbf511ed25f1acea784c0d17aa58efd7
MD5 65bbfdd4822af966760f22e369041ff3
BLAKE2b-256 1ef1b42ae320f23951b8c6fffce2ac514de22ae53569545c7706aa1a266216f6

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