Thought CLI#
A terminal UI for real-time streaming and posting to the ATProto network using stream.thought.blip records.
Currently, this functions basically like IRC. I recommend entering the full TUI experience with
./target/release/thought stream
Features#
- Real-time TUI: Live terminal interface showing all blips flowing through the network
- Interactive posting: Post your thoughts directly from the TUI
- Jetstream integration: Connect to the ATProto firehose for real-time updates
- Secure credentials: Store your Bluesky credentials safely on your system
- Handle resolution: Automatically resolve DIDs to readable handles
- Duplicate filtering: Smart filtering to avoid showing your own posts twice
Quick Start#
1. Install#
cargo build --release
2. Login#
./target/release/thought login
Enter your Bluesky handle/email and app password when prompted.
3. Stream Your Thoughts#
./target/release/thought stream
This launches the full TUI experience where you can see all blips in real-time and post your own.
Commands#
thought#
The main CLI tool with multiple modes:
# Login to Bluesky
thought login
# Post a single blip
thought "Your thought here"
# Enter simple REPL mode
thought interactive
# Enter full TUI mode with live feed
thought stream
# Logout and clear credentials
thought logout
TUI Interface#
The terminal UI shows:
- Messages area: Scrollable feed of all blips with timestamps
- Status bar: Connection status and message count
- Input field: Type your thoughts and press Enter to post
TUI Controls#
- Type + Enter: Post a blip
- ↑/↓: Scroll through message history
- PageUp/PageDown: Fast scroll
- Esc or Ctrl+C: Exit TUI
Installation#
Prerequisites#
- Rust 1.70+
- A Bluesky account with an app password
From Source#
git clone git@tangled.sh:cameron.pfiffer.org/think
cd think
cargo build --release
The binary will be available at:
target/release/thought
App Password Setup#
- Go to Bluesky Settings
- Generate a new app password
- Use this password (not your main password) when running
thought login
Configuration#
Credentials are securely stored in your system's configuration directory:
- macOS:
~/Library/Application Support/com.thoughtstream.think/ - Linux:
~/.config/thoughtstream/think/ - Windows:
%APPDATA%\thoughtstream\think\
Architecture#
- ATProto Integration: Uses the ATProto API for authentication and posting
- Jetstream Connection: WebSocket connection to the real-time firehose
- Custom Records: Posts using the
stream.thought.bliprecord type - TUI Framework: Built with ratatui for a responsive terminal interface
Examples#
Post a quick thought#
thought "Just built something cool!"
Start a streaming session#
thought stream
# See all blips in real-time, post your own thoughts
Interactive REPL#
thought interactive
# Enter multiple thoughts line by line
Development#
Building#
cargo build
Running Tests#
cargo test
Linting#
cargo clippy
Contributing#
This is part of the larger stream.thought ecosystem for decentralized social communication on ATProto.
License#
MIT License - see LICENSE file for details.