A Mastodon TUI client.
Project description
Mastui - A Modern Mastodon TUI Client
Mastui is a powerful, fast, and feature-rich Mastodon client for your terminal. Built with Python and the modern 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 timelines or someone who just loves the terminal, Mastui is designed to be your new favorite way to interact with Mastodon.
:eight_pointed_black_star: :eight_pointed_black_star: Follow Mastui on Mastodon :eight_pointed_black_star: :eight_pointed_black_star:
Features
- Multi-Column Layout: View your Home, Notifications, and Federated timelines all at once.
- Timeline Caching: A persistent SQLite cache makes loading posts fast and resilient to network issues.
- Compose and Reply: A full-featured compose window for new posts and replies, with a character counter, content warnings, and language selection.
- "Infinite" Scrolling: Scroll down to load older posts from your cache or the server.
- Interactive Posts: Like, boost, and reply to posts with keyboard shortcuts.
- View Profiles and Threads: Dive deeper into conversations by viewing post threads and user profiles.
- Image Support: View images directly in your terminal with multiple renderers (Auto, ANSI, Sixel, TGP), with a persistent image cache.
- Highly Configurable:
- Toggle the visibility of each timeline.
- Configure auto-refresh intervals for each timeline.
- Choose between light and dark mode themes.
- And much more... including content warning support, SSL verification options, and a detailed help screen.
Screenshots
Here's a glimpse of what Mastui looks like in action.
Single-Column View
The default three-column layout is showing the Home, Notifications, and Federated timelines (see top of this site). In narrow spaces it looks like this
Profile View
Viewing a user's profile, with their bio, stats, and links.
Image Support
Images can be displayed directly in the timeline.
Light Theme
Mastui supports both light and dark themes, which can be configured in the options.
Options Window
The options window, where you can configure everything from timeline visibility to image rendering.
Installation
The recommended way to install Mastui is with pipx.
-
Install pipx (if you don't have it already):
python3 -m pip install --user pipx python3 -m pipx ensurepath
-
Install mastui using pipx:
pipx install mastui
After this, you can run the application from anywhere by simply typing mastui.
Upgrading
To upgrade to the latest version of Mastui, run the following command:
pipx upgrade mastui
Technology Stack
- Python
- Poetry for dependency management
- Textual for the TUI framework
- textual-image for image rendering
- Mastodon.py for interacting with the Mastodon API
- httpx for HTTP requests
- html2text for converting HTML to Markdown
- python-dateutil for parsing datetimes
Known issues
- Sixel images seems to be generated correctly but not displayed correctly in some terminals (even ones with Sixel support)
License
Mastui is licensed under the MIT license. See LICENSE for more information.
Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Authors
- Kim Schulz - Initial work - kimusan
See also the list of contributors who participated in this project.
Acknowledgments
- Inspiration and guidance from the Textual community and the Poetry team
- The Mastodon community for their contributions to the development of the application and its features
- Other projects that have inspired or influenced the design of Mastui
Please feel free to reach out to me if you have any questions, comments, or concerns.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mastui-0.7.0.tar.gz.
File metadata
- Download URL: mastui-0.7.0.tar.gz
- Upload date:
- Size: 29.7 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e660f69bce29a91951122d409b32639fa184d3bba1f4ce599e12df78a342c60
|
|
| MD5 |
089c19be2646331356ddeccbb5a7df95
|
|
| BLAKE2b-256 |
4b8af8d96eeb44546b7e9f6fca3d097ef3e92a77d7f2a0a993dfc6bf36b64af9
|
File details
Details for the file mastui-0.7.0-py3-none-any.whl.
File metadata
- Download URL: mastui-0.7.0-py3-none-any.whl
- Upload date:
- Size: 35.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe588f9b60dbc0ff3860e7735da9ab8b5ed8849a92de3285c8d1888caa99e36b
|
|
| MD5 |
100fe1985c06ca7f6ce092fcf4bfcaa0
|
|
| BLAKE2b-256 |
c65c24f5e72b8bd26ee40cd74a2091b812f6853933d1cdd1c6ba141f199f8de3
|