Getting Started

Requirements

  • Python 3.8+

  • xclip (if on Linux)

Optional dependencies

  • python-dotenv: run pip install python-dotenv if you want to use an .env file for credentials

  • textual’s prepackaged tree-sitter binaries for json syntax highlighting: run pip install "textual[syntax]"

  • terminal media viewers such as feh or mpv are recommended for opening post media

Install

pip install skyter

Set-up

  • Optional but strongly recommended: create an app password in the web client or app. You do not need to allow access to direct messages, as DMs are not yet supported. Password login is not supported for 2FA-enabled accounts

  • Optionally set BSKY_LOGIN and BSKY_APP_PASSWORD (and BSKY_PDS, if using an alternate PDS) environment variables to be logged in when the app is initialized and skip the login screen.

  • Check your default settings by opening the command palette and going to settings: ctrl+p -> Settings, or configure the settings.json file manually. The file will be created automatically at data/settings.json in the installed location the first time the app is opened. See Settings for more details.

Usage

Command palette

skyter includes keybindings for common actions which differ depending on what sort of feed is being used (e.g., viewing posts, threads, users, feeds), which will be displayed in the footer. However, many more actions are available via the command palette which is accessed via ctrl+p. For example, the Reply keybinding appears when viewing a thread and not when viewing a timeline feed, but you can reply directly from the timeline with the command palette via ctrl+p -> Reply. Other actions like Log out will only appear in the command palette.

Monitoring new posts

skyter can automatically update or alert (default) when new feed items become available. This behavior can be changed via the Toggle auto-updates command and adjusted in Settings.

“It’s too slow…”

You can speed up the app by adjusting the settings to reduce the amount of data being requested from the bsky servers at once. page_limit, subscribed_labels, feed_new_items_check_interval, and hide_metrics can impact responsiveness of the app.