A CLI tool for posting short-form content to Bluesky and Mastodon simultaneously.
This codebase was written entirely by Claude (Anthropic's AI assistant) and has only been briefly reviewed by a human who has never written Go before.
What that means in practice:
- The code may contain bugs, security issues, or non-idiomatic Go patterns that neither the author nor the reviewer would recognize.
- The OAuth/DPoP implementation for Bluesky relies on Bluesky's own
indigolibrary, but the integration code was written by an AI and not audited by anyone with relevant expertise. - Do not store credentials you cannot afford to lose or rotate. The config file is stored at
~/.config/blaster/config.yamlwith0600permissions, but this tool has not been security-reviewed. - This is a personal project shared for transparency, not a production-ready tool.
Use at your own risk. Pull requests welcome.
- Post to Bluesky and Mastodon simultaneously with a single command
- OAuth authentication for both platforms (ATProto OAuth/DPoP for Bluesky, standard OAuth 2.0 for Mastodon)
- Multi-account support with configurable defaults
- Compose in your
$EDITORor pipe from stdin - Dry-run mode to validate before posting
git clone https://github.com/cjdaniel/blaster
cd blaster/src
go build -o blaster .blaster auth bluesky your.handle.bsky.social
blaster auth mastodon --instance mastodon.social# Post to all configured platforms
blaster post "hello world"
# Compose in your editor
blaster post --edit
# Pipe from stdin
echo "hello world" | blaster post
# Post to a specific platform only
blaster post --to bluesky "hello bluesky"
# Dry run (validate without posting)
blaster post --dry-run "hello world"blaster accounts list
blaster accounts default bluesky your.handle.bsky.social
blaster accounts remove mastodon mastodon.socialConfig is stored at ~/.config/blaster/config.yaml (override with --config or BLASTER_CONFIG).
MIT