spackrat; Libravatar; shpool
In today’s Daily Drop, we explore three diverse tools, starting with a way to improve social media onboarding with Bluesky Starter Packs, to discovering a federated alternative to Gravatar with Libravatar, and finally examining shpool, a lightweight solution for maintaining shell sessions.
TL;DR
(This is an AI-generated summary of today’s Drop using Ollama + llama 3.2 and a custom Modelfile.)
- Bluesky Starter Packs enable curated onboarding with up to 150 recommended accounts and custom feeds, with the
spackrattool helping convert packs to personal lists (https://codeberg.org/hrbrmstr/spackrat) - Libravatar offers a federated, open-source alternative to Gravatar for avatar delivery services, allowing users to maintain consistent profile pictures across platforms (https://www.libravatar.org/)
shpoolprovides a lightweight alternative to tmux and GNU screen, focusing solely on maintaining shell sessions when SSH connections drop (https://github.com/shell-pool)
spackrat

Bluesky Starter Packs, launched in June 2024, fundamentally change how new users experience the platform by providing curated onboarding experiences. These packs enable existing users to create personalized collections of up to 150 recommended accounts and three custom feeds, which can be shared via links or QR codes.
Each Starter Pack functions as a comprehensive onboarding tool that combines algorithmic feeds with recommended accounts. The system allows for multiple custom feeds, including specialized options like “Quiet Posters” for seeing updates from less frequent posters, and “Science” for topic-specific content. When someone uses a Starter Pack to join Bluesky, they automatically receive the Following and Discover feeds as pinned options.
The platform has built-in safety measures for recommended users. If someone blocks a Starter Pack creator, they are automatically filtered out of that pack’s recommendations. Users can report problematic Starter Packs through a three-dot menu, with reports evaluated against Bluesky’s Community Guidelines.
Starter Packs have become a significant part of Bluesky’s growth strategy, particularly as the platform has expanded to over 15 million users. The feature integrates seamlessly with Bluesky’s existing custom feeds system, which distinguishes itself from traditional social media by avoiding centralized algorithmic control of content distribution.
A significant limitation is that Starter Packs are not dynamic subscriptions. When new accounts are added to a pack after someone has already used it, existing users must manually revisit the pack to follow the new additions. Furthermore, when following accounts through a Starter Pack, the “Follow All” function does not automatically follow the included custom feeds — users must follow each feed individually.
Starter Packs also currently lack built-in discovery mechanisms within the Bluesky platform itself. This makes finding relevant packs challenging unless you know where to look or receive a direct share. To fill in the gap, services such as Blue Sky Directory were created to help in discovering starter packs.
But, what if you just want to be able to check-in on the content in a Pack feed without following all the members of it? One way to do that is manually adding each member to a curated list, but that’s tedious. Thanks to a nerd snipe from Lynn (you do sub to TITAA, right?), I felt compelled to build a small tool to help auo convert starter packs to personal lists, and maintain the entries.
I hastily named it spackrat, and the tool has two modes of operation. Feed it a URL of a starter pack and it will do the conversion to a list. Pass -update as the singular parameter, and it will iterate through all the cloned packs and attempt to update them with new entries.
If installing it via Go’s tooling is problematic, drop me a note, and I’ll get some native binaries made.
Libravatar

With Automattic’s CEO causing quite the ruckus in WordPress land many folks (including me) are working towards moving away from everything Automattic can touch. One service that you almost certainly passively use almost every day is [Gravatar].(https://gravatar.com/). This “Globally Recognized Avatar” provides folks with a “universal profile” picture and digital identity across multiple platforms. It’s most commonly used to associate an avatar (in my case, Cap’s shield) with an email address. If you were to monitor your daily DNS requests from your mobile devices and main computing devices, you’d likely be surprised at just how often Gravatar gets pinged.
It’s been the 800 lb. gorilla in this space for a while, but there are alternatives. One is Libravatar which provides a federated, open-source avatar delivery service that enables users to maintain consistent profile pictures across various online platforms like forums and blog comments, linking them to email addresses.
The service operates on the ivatar software stack, which lets anyone run their own avatar-serving instance, making it a truly distributed system. Developers can integrate Libravatar into their applications through a straightforward API, with support libraries and plugins available across multiple programming languages and platforms.
The federated nature of Libravatar makes it resilient against single points of failure while promoting user privacy and data ownership. This approach stands in contrast to centralized avatar services, giving users and organizations more control over their avatar delivery infrastructure.
When implementing Libravatar, applications typically hash the user’s email address and query the service for a corresponding avatar. This process ensures privacy while maintaining the convenience of automatic avatar resolution across supported platforms.
If you want to start your own migration away from the centralized Automattic profile service, you can start with creating a free account, then consider operating a federated instance at some point.
Sadly, most folks running WordPress are kind of locked in to that platform, which means Gravatar comes along for the ride.
It sure would be nice if there was at least one decent gazillionaire out there.
shpool

shpool is a lightweight session persistence service that provides an alternative to tmux and GNU screen. Unlike its counterparts, shpool focuses solely on maintaining shell sessions rather than providing terminal multiplexing features.
The primary purpose of shpool is to maintain shell sessions when SSH connections drop. It accomplishes this by creating named shell sessions that persist independently of the connection state. When installed on a remote host, users can create sessions with shpool attach session_name and reconnect to them using the same command if disconnected.
shpool takes a fundamentally different approach to terminal handling compared to tmux. Instead of remote rendering and view management, shpool directly streams shell output to the local terminal. This architecture preserves native terminal behavior, including scrollback and copy-paste functionality, while maintaining session persistence.
The service maintains an in-memory terminal state using the shpool_vt100 crate, enabling screen redraw on reconnection and capturing output generated during disconnection periods. For shells like Bash, Zsh, and fish, shpool automatically injects a prefix into the prompt to indicate the active session name.
The service can be deployed either through systemd or in autodaemonization mode. The default configuration uses Ctrl-Space Ctrl-q for session detachment, though this can be customized via the config.toml file. For Bash users, enabling the huponexit option is recommended to prevent orphaned background processes.
shpool can be integrated with SSH configurations to automatically connect to named sessions. This can be accomplished either through explicit session naming in SSH config blocks or by using local TTY-based session names. The latter approach generates session names based on the local terminal identifier, though this may require terminal reopening if connections freeze rather than cleanly drop.
The shpool GH wiki has some configuration guidance and some helper scripts to get you bootstrapped fairly quickly.
FIN
We all will need to get much, much better at sensitive comms, and Signal is one of the only ways to do that in modern times. You should absolutely use that if you are doing any kind of community organizing (etc.). Ping me on Mastodon or Bluesky with a “🦇?” request (public or faux-private) and I’ll provide a one-time use link to connect us on Signal.
Remember, you can follow and interact with the full text of The Daily Drop’s free posts on Mastodon via @dailydrop.hrbrmstr.dev@dailydrop.hrbrmstr.dev ☮️
Leave a comment