Bot to boost/reblog posts with specified tags
Project description
Zhongli
Automatically boost/reblog Fediverse posts. Formerly Fedibooster.
Modes
- FenLiu Mode (recommended): Consumes pre-filtered posts from FenLiu queue
- Legacy Mode: Searches independently for posts with specified hashtags
Status
| Phase | Status | Notes |
|---|---|---|
| 1: Infrastructure | ✅ Complete | FenLiu client, models, tests |
| 2: Dual-Mode | ✅ Complete | Feature flag, ReblogService, queue polling |
| 3: Simplify Validation | ⏳ Ready | Deprecate complex filters |
| 4: Remove Legacy | ⏳ Pending | Breaking changes |
| 5: UX Polish | ⏳ Optional | Metrics, dry-run, progress |
Install
pip install zhongli
Or from source:
git clone https://codeberg.org/marvinsmastodontools/zhongli.git
cd zhongli
uv sync
uv run zhongli
Configuration
FenLiu mode:
[fediverse]
domain_name = "mastodon.social"
api_token = "your-token"
[zhongli]
run_continuously = true
delay_between_posts = 60
max_reblog = 5
[fenliu]
enabled = true
base_url = "https://fenliu.example.com"
api_key = "your-key"
Legacy mode:
[fenliu]
enabled = false
[zhongli]
search_tags_list = ["fediverse"]
Usage
zhongli # Run in configured mode
zhongli --dry-run # Preview without boosting
zhongli --help # Show options
Development
uv sync # Install deps
prek run --all-files # Pre-commit checks
pytest # Run tests
nox # Full CI simulation
Recent Work
- ✅ Phase 2: Dual-mode execution fully operational
- ✅ Phase 1: FenLiu infrastructure complete
- ✅ Circuit breaker pattern integrated
- ✅ Typer → Cyclopts CLI migration
Roadmap
See ROADMAP.md and FENLIU_MIGRATION_PLAN.md
License
Support
- Buy me coffee
- Monero:
88xtj3hqQEpXrb5KLCigRF1azxDh8r9XvYZPuXwaGaX5fWtgub1gQsn8sZCmEGhReZMww6RRaq5HZ48HjrNqmeccUHcwABg
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
zhongli-2026.3.4.tar.gz
(17.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zhongli-2026.3.4.tar.gz.
File metadata
- Download URL: zhongli-2026.3.4.tar.gz
- Upload date:
- Size: 17.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"NixOS","version":"25.11","id":"xantusia","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5189533f254168be1d676ef4f37c2f6f9ce6134f21b9a2aac9184ed830d4fc5e
|
|
| MD5 |
34470e8ee60e3659c2d7261e8e815cfe
|
|
| BLAKE2b-256 |
f7f725b0d3419eaac073a33fc368755a4b9d843137de433a6220a180c5ce4cd9
|
File details
Details for the file zhongli-2026.3.4-py3-none-any.whl.
File metadata
- Download URL: zhongli-2026.3.4-py3-none-any.whl
- Upload date:
- Size: 21.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"NixOS","version":"25.11","id":"xantusia","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09d78b37235b34a62de8b78e2b82a1c213efce2c8bcce92703f8d2325310955f
|
|
| MD5 |
75380b57a0647e4771367bbbd03da460
|
|
| BLAKE2b-256 |
a188052d528d4f2d714c582969197d6adb765b8a92e532fe64fdb7a224b29f3c
|