Mirror of github.com/ewanc26/bluesky-markov
  • Rust 91.8%
  • Nix 8.2%
Find a file
2026-07-16 18:22:45 +01:00
.github/ISSUE_TEMPLATE Update issue templates 2024-06-13 17:22:11 +01:00
src docs: add module-level comments 2026-06-29 21:59:29 +01:00
.gitattributes Initial commit 2024-06-09 08:02:01 +01:00
.gitignore Update .gitignore 2024-12-19 15:18:55 +00:00
.pre-commit-config.yaml docs: add module-level comments 2026-06-29 21:59:29 +01:00
AGENTS.md docs: correct agent guidance after source audit 2026-07-16 18:22:45 +01:00
Cargo.lock Convert from Python to Rust 2026-06-14 16:26:59 +01:00
Cargo.toml Convert from Python to Rust 2026-06-14 16:26:59 +01:00
flake.nix docs: add module-level comments 2026-06-29 21:59:29 +01:00
LICENSE Initial commit 2024-06-09 08:02:01 +01:00
README.md rewrite readme to be more direct 2026-06-29 22:13:14 +01:00

Bluesky Markov Bot

No Maintenance Intended

Generates Markov chain posts from a Bluesky account and posts them to another.

Also available on Tangled

Requirements

  • Rust 1.85+

Install

git clone https://github.com/ewanc26/bluesky-markov.git
cd bluesky-markov
cargo build --release

Create a .env in the project root:

SOURCE_HANDLE=your_source_handle
DESTINATION_HANDLE=your_destination_handle
CHAR_LIMIT=280
SRC_APP_PASS=your_source_app_password
DST_APP_PASS=your_destination_app_password
BSKY_HOST_URL=https://bsky.social

Usage

cargo run --release

Logs into both accounts, fetches posts from the source, generates new content with Markov chains, posts to the destination at random intervals.

Logs

Written to log/general.log — login status, posts fetched, content generated, errors.

Project structure

├── log/general.log        # Logs
├── src/
│   ├── bsky.rs            # Bluesky API
│   ├── clean.rs           # Content cleaning
│   ├── markov_gen.rs      # Markov generation
│   ├── time.rs            # Scheduling utilities
│   └── main.rs            # Entry point
├── .env                   # Auth
└── Cargo.toml

Licence

MIT