autoreply.ooo is not a cloud server, it's on-device talking to BSky API.
MCP is a standard, so it can plug it into any AI agent.
If you want to build a bot nothing else you need. Nor it incurs charges.
Posts by autoreplyโงธ๐ป๐ฝ๐บ
What do you want the bots to do? The tooling is pretty easy:
MCP to search/thread/read/profile/like/post/reply on BSky is at
autoreply.ooo
# Thread ยท 57 posts @pfrazee.com/3khldb2lfym2n > it's weird how some spots get body hair and some dont. why armpits and not, like, that space in between your fingers. fingie hair. ๐ 85 โป๏ธ 8 ๐ฌ 26 2023-12-28T04:25:25Z โโ@p/โฆym2n โ @glenmaffews.bsky.social/3khldqus7ja2b > I gotta imagine aliens are gonna think it's so fuckin weird how like a quarter of our species voluntarily surrounds their food hole with hair ๐ 3 2023-12-28T04:34:18Z โโ@p/โฆym2n โ @danconn.dev/3khlpbua6ud2t > Oh Paul. My sweet child. Get a few more years on you and then you'll come to realise that your body decides that anything can be a hair follicle if your body betrays you enough. ๐ 1 โป๏ธ 1 2023-12-28T08:00:36Z โโ@p/โฆym2n โ @laughlax.bsky.social/3khldcai6p32t > Cursed ๐ 4 2023-12-28T04:26:06Z โโ@p/โฆym2n โ @fim.bsky.social/3khldsfnmmx2e > Unrelated: My cousin once had the longest hair growing out of his palm. ๐ 7 ๐ฌ 2 2023-12-28T04:35:07Z โโ@f/โฆmx2e โ @alexgoldberg.ca/3khle3amx5s27 > ๐ณ ๐ 1 2023-12-28T04:40:04Z โโ@f/โฆmx2e โ @pfrazee.com/3khldw3hjhk2g > woah ๐ฌ 1 2023-12-28T04:37:11Z โโ@p/โฆhk2g โ @wumpyspeaks.bsky.social/3khle5s2g532y > He must be that person who actually grew hair on his palm post puberty > > The chosen one ๐ฏ ๐ 1 2023-12-28T04:41:30Z โโ@p/โฆym2n โ @stephenjudkins.bsky.social/3khldo65nnt22 > just wait, as your age your hair might migrate ๐ 3 ๐ฌ 1 2023-12-28T04:32:45Z โโ@s/โฆnt22 โ @pfrazee.com/3khldqaau5x2a > just let me grow a full beard dangit ๐ 4 ๐ฌ 2 2023-12-28T04:33:55Z โโ@p/โฆ5x2a โ @dd9000.bsky.social/3khljzgglhs2y > I do not like beards and I cannot wait for the day when they once again go out of fashion. ๐ 1 2023-12-28T06:26:26Z โโ@p/โฆ5x2a โ @bmlzoo.town/3khlenuzysj2v > Trust me, you don't want the full beard at the cost of the hair on your head. I miss being able to have long hair. ๐ ๐ 1 2023-12-28T04:50:32Z โโ@p/โฆym2n โ @petepoems.bsky.social/3khlzzngehp2q > Yeah, ears and nose hairs??? > They increase with eyebrowโฆ
@hailley.co you probably should feed something like this into your AI (attitude insinuator) machine.
LLM (just like human mind) will have much nicer time reading compact de-noised format than chatty dull one.
And that means better context, better understanding and summarisation.
Betting BIG on Markdown:
>autoreply thread --post-uri bsky.app/profile/pfra...
# Thread ยท 57 posts
@pfrazee.com/3khldb2lfym2n
> it's weird how some spots get body hair and some dont. why armpits and not, like, that space in between your fingers. fingie hair.
๐ 85 โป๏ธ 8 ๐ฌ 26 2023-12-28T04:25:25
v.0.3.5 #autoreply
Now the core functionality is there for most tools:
profile User profile information
search Search posts from a user
feed/thread Fetch feeds and threads
login OAuth, app passwords
post Reply, post, quote
react Batch like, unlike, repost, delete
๐
bsky.app/profile/nonb...
๐ง to the haters ๐ค
BlueSky ๐๐ต๐ผ๐๐น๐ฑ put casual and new usersโ needs over big postersโ
Blue tick bias is not good for healthy community growth.
Call it ยซMastodonisationยป โ when bizarre and hostile features pop at a user out of misplaced concern:
shutting the fridge turns all cutlery in your kitchen into spoons โ for free!
Letting user choose is often a very very bad solution.
No one has mental bandwidth to understand the weird nuances, so replies will be lost randomly.
At least Claude aren't in charge of Bash.
VSCode on Microsoft's own Windows was forced to use Powershell and now every prompt it wrangles with whacky syntax and escapes.
Oh juicy, will have a look this weekend.
I've implemented BSky OAuth in Rust for my stuff, but maybe can switch to yours as standard.
BTW also got CAR/CBOR repository format reader in Rust if you want:
github.com/oyin-bo/auto...
The Dot
My goal is 1ms per post average.
Iโve been try to attack it from the other end: making older fast NLP ways smarter.
But I should try the opposite too, making smart transformers faster.
Thank you!! โค๏ธ
Very helpful, I'll experiment with your code!
BTW, what order of magnitude is the time to produce embeddings for 300-character text? About 50-100ms?
Embeddings-based search is a realistic 1st step.
But really, the local LLM will bring social media from noise to tranquility.
The fix is to run small-scale AI locally.
I've been planning and tinkering and failing for months on and off.
This is the way ยฏโ \โ _โ เผผโ ย โ โขฬโ ย อโ สโ ย โ โขฬโ ย โ เผฝโ _โ /โ ยฏ
bsky.app/profile/auto...
monitoring dashboard with graphs for user count, receive/send/ATProto serve/ATProto consume delays, tasks run, and processing delays
monitoring dashboard with graphs for task results, task queues, CPU, and memory
monitoring dashboard with graphs for receive protocols, types, source instances, and ATProto firehose commits
monitoring dashboard with graphs for unsupported activities and sent activities by protocol and type
A glimpse into the Bridgy Fed monitoring dashboards. Pretty conventional mix of infra, OS, and app level metrics.
Note the delay numbers. When you do something in one network, how quickly do we bridge it across? We pay a lot of attention to that, we try hard to keep it as fast as possible!
Done a lot of ๐ช๐๐ on semantic search, but it's still a long way to go.
An implementation of SentencePiece tokenizer in Rust and Go though. But it's not properly tested end-to-end, and not yet used for anything real.
bsky.app/profile/auto...
autoreply / rust autoreply/rust v0.3.2 autoreply: Model Context Protocol server for Bluesky profile and post search functionality #server #mcp #atproto #bluesky Follow Readme 5 Versions Dependencies Dependents Settings autoreply MCP Server & CLI (Rust) A dual-mode application for Bluesky profile and post search functionality, written in Rust. Overview This application supports two operational modes: MCP Server Mode (default): Model Context Protocol server using stdio CLI Mode: Command-line utility for direct tool execution Both modes implement the same tools: profile(account) - Retrieve user profile information search(account, query) - Search posts within a user's repository login(...) - Authenticate accounts and manage stored credentials (OAuth + app password) Supports interactive elicitation for missing credentials when used via MCP clients that support the elicitation capability Falls back to clear error messages with instructions for non-supporting clients Authentication support via app passwords allows storing and managing credentials for future authenticated operations. Features โ Complete MCP Protocol Implementation JSON-RPC 2.0 compliant Stdio communication Proper error handling with MCP error codes Bidirectional RPC support for server-to-client requests (elicitation) Client capability detection and negotiation โ Authentication & Credential Management OAuth Browser Flow - Interactive OAuth with PKCE and callback server App password authentication via AT Protocol Secure credential storage (OS keyring with file fallback) Multi-account support with default selection
autoreplyโงธ๐ฟ๐๐๐ 0.3.2
Fixed MCP elicitations, DID resolution.
Semantic search via embeddings, I wonder why it isn't in every tool?
@bsky.app why is your search so 2022?
autoreply v0.2.0 autoreply: Model Context Protocol server for Bluesky profile and post search functionality #atproto #bluesky #mcp #server Follow Readme 2 Versions Dependencies Dependents Settings autoreply MCP Server & CLI (Rust) A dual-mode application for Bluesky profile and post search functionality, written in Rust. Overview This application supports two operational modes: MCP Server Mode (default): Model Context Protocol server using stdio CLI Mode: Command-line utility for direct tool execution Both modes implement the same two tools: profile(account) - Retrieve user profile information search(account, query) - Search posts within a user's repository Features โ Complete MCP Protocol Implementation JSON-RPC 2.0 compliant Stdio communication Proper error handling with MCP error codes โ Bluesky Integration DID resolution (handle โ DID) CAR file caching with atomic operations Fast streaming CAR file parsing with iterator-based processing AT Protocol record parsing and filtering Profile and post extraction โ Advanced Functionality Streaming CAR reader (20-80x times faster than atrium-repo) Text search with highlighting Unicode normalization (NFKC) Comprehensive input validation Atomic file operations with locking System proxy support via environment variables (HTTP(S)_PROXY, NO_PROXY) โ Quality Assurance Comprehensive test suite with 101+ tests Full error handling and edge case coverage Performance optimized for ~2s repo processing Building cd rust-server cargo build --release Usage MCP Server Mode (Default) The server communicates via stdio using the MCP protocol: ./target/release/autoreply CLI Mode When invoked with arguments, the binary operates as a command-line utility: # Get profile information autoreply profile --account alice.bsky.social # Search posts autoreply search --account bob.bsky.social --query "rust programming" --limit 10 # Get help autoreply --help autoreply profile --help autoreply search --help For complete CLI usage documentation, โฆ
That's 2.5 hours.
For a streaming @atproto.com CAR/CBOR reader from naught to Rust?
Done that couple times in JS. So how hard can it be in a famously carnky unforgiving low-level language?
Not too hard, with LLM: 1-2 hours.