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.0.1.tar.gz (49.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.0.1-py3-none-any.whl (59.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mastui-1.0.1.tar.gz
  • Upload date:
  • Size: 49.3 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.0.1.tar.gz
Algorithm Hash digest
SHA256 3019784e680f93a2fd0cad7b571336eb3c75d43134b02703d4ed505b9ccf5cec
MD5 8037d89a4856a8af328df3b81f9d9b2a
BLAKE2b-256 fdb5fbcce043752204e96cce501c42f48a43ab3566cdcee4a14e3df49625a81c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mastui-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 59.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.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 715974aee91cdf56c4422be029009ea60c3e0a7e27755b281818b01c144b5d52
MD5 6e57360c7307c36a3a42ea1ec275c00d
BLAKE2b-256 275495d7df8a175b9c3158304ec164ddb338ce6b0f40de0e3a16f98a8074b2f1

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