Tool to help delete old posts from fediverse accounts, such as Mastodon or Pleroma and forks.
  • Python 93.4%
  • Just 3.9%
  • Dockerfile 1.5%
  • Shell 1.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Marvin8 c023a57690
All checks were successful
/ pr-review (push) Has been skipped
/ gitleaks (push) Successful in 17s
/ pr-review (release) Has been skipped
/ gitleaks (release) Successful in 23s
/ checks (push) Successful in 2m9s
/ publish (push) Has been skipped
/ publish-container (push) Has been skipped
/ deploy-docs (push) Has been skipped
/ checks (release) Successful in 2m13s
/ publish (release) Successful in 26s
/ deploy-docs (release) Successful in 1m19s
/ publish-container (release) Successful in 2m54s
bump: version 3.7.8 → 3.7.9
2026-08-07 17:58:46 +10:00
.forgejo/workflows 🚚 migrate from Codeberg to forge.marvin8.zone 2026-08-07 16:36:10 +10:00
docs 🐛 fix container image references: forge.marvin8.zone → registry.marvin8.zone 2026-08-07 17:31:45 +10:00
scripts 🚚 migrate from Codeberg to forge.marvin8.zone 2026-08-07 16:36:10 +10:00
src/fedinesia 🚚 migrate from Codeberg to forge.marvin8.zone 2026-08-07 16:36:10 +10:00
tests/unit 🔧 ruff auto fix tests and bump deps 2026-07-21 14:18:40 +10:00
.editorconfig 🔧 Remove insert_final_newline override for JSON in .editorconfig 2026-07-20 18:27:56 +10:00
.gitignore 🔧 git ignore superpowers specs and plans 2026-07-05 19:15:40 +10:00
.gitleaks.toml 🔧 Restore historical gitleaks allowlist alongside standard config 2026-07-20 19:10:24 +10:00
.pre-commit-config.yaml 🚚 migrate from Codeberg to forge.marvin8.zone 2026-08-07 16:36:10 +10:00
.python-version Update dependencies... now works with 3.13 2025-01-06 20:39:01 +10:00
AGENTS.md 📝 remove redundant section from project AGENTS.md file 2026-08-07 17:28:25 +10:00
AI-DECLARATION.md 📝 correct ai declaration 2026-07-20 19:00:09 +10:00
CHANGELOG.md docs: update changelog for 3.7.9 2026-08-07 17:58:43 +10:00
CLAUDE.md 🔧 generalise AI agents set-up. 2026-07-15 18:06:47 +10:00
Containerfile 🚚 migrate from Codeberg to forge.marvin8.zone 2026-08-07 16:36:10 +10:00
docs_hooks.py 📝 docs: add mkdocs.yml and docs_hooks.py 2026-05-24 20:13:16 +10:00
entry-point.sh 🔧 multi-stage build: drop uv from runtime, pre-compile bytecode 2026-06-12 12:07:57 +10:00
justfile 🚚 migrate from Codeberg to forge.marvin8.zone 2026-08-07 16:36:10 +10:00
LICENSE.md Use Poetry and update pre-commit checks 2022-01-03 09:05:35 +10:00
logging-config.toml Refactoring: 2025-07-18 09:46:45 +10:00
mkdocs.yml 🚚 migrate from Codeberg to forge.marvin8.zone 2026-08-07 16:36:10 +10:00
noxfile.py ⬆️ bump deps and address PYSEC-2026-2132 2026-07-15 18:15:06 +10:00
pylock.toml 🚚 migrate from Codeberg to forge.marvin8.zone 2026-08-07 16:36:10 +10:00
pyproject.toml bump: version 3.7.8 → 3.7.9 2026-08-07 17:58:46 +10:00
README.md 🚚 migrate from Codeberg to forge.marvin8.zone 2026-08-07 16:36:10 +10:00
Release-Notes.md bump: version 3.7.8 → 3.7.9 2026-08-07 17:58:46 +10:00
Release-Notes.md.template 🚚 migrate from Codeberg to forge.marvin8.zone 2026-08-07 16:36:10 +10:00
ruff.toml 🎨 update ruff config for consistent code formatting 2026-07-20 19:01:59 +10:00
uv.lock bump: version 3.7.8 → 3.7.9 2026-08-07 17:58:46 +10:00

Fedinesia

Repo Docs CI Downloads

Checked with pysentry Secrets checked by gitleaks ty complexipy

Code style: ruff Version Wheel

AI-DECLARATION: copilot

AGPL

⚠️ BEWARE, THIS TOOL WILL DELETE SOME OF YOUR POSTS ON THE FEDIVERSE ⚠️

Fedinesia is a command line (CLI) tool to delete old statuses from Mastodon or Pleroma instances. It respects rate limits imposed by servers.

Install and run from PyPI

It's easy to install Fedinesia from PyPI using the following command:

pip install fedinesia

Once installed, Fedinesia can be started by typing fedinesia into the command line.

Configuration / First Run

Fedinesia will ask for all necessary parameters when run for the first time and store them in a config.json file in the current directory.

Podman / Docker Container

Fedinesia can also be run using Podman or Docker as follows:

podman run \
  --env AUDIT_LOG_FILE=/logging/audit.log \
  --env PAUSE_IN_SECONDS=300 \
  --replace \
  --volume ./config:/config \
  --volume ./logging:/logging \
  --name fedinesia \
  forge.marvin8.zone/marvin8/fedinesia

Podman / Docker Environment Variables

  • PAUSE_IN_SECONDS (mandatory) This must be set to a positive integer. This value is the number of seconds to wait between successive runs of fedinesia.

  • AUDIT_LOG_FILE (optional) Full path to where audit log file should be written to. It is intended that logfiles will be written to /logging directory. No audit log file will be generated / updated if this value has not been set.

  • AUDIT_STYLE (optional) What style of audit log file to write. Possible options are PLAIN or CSV. Defaults to PLAIN. Has no effect if AUDIT_LOG_FILE has not been set.

  • LIMIT (optional) If set to a positive integer, will make fedinesia stop processing any further deletions once this number of statuses have been deleted in the current execution.

  • DRY_RUN (optional) If set to any value, e.g. DRY_RUN=true, will make fedinesia not actually delete any status. Statuses that would be deleted are shown instead.

  • PROGRESS_FILE (optional) If set to a filename, will store the progress of deleted statuses to that file. This is intended to be used together with the CONTINUE_PROGRESS variable. This allows fedinesia to process a large number of status deletions over multiple executions while keeping track of progress.

  • CONTINUE_PROGRESS (optional) If set to any value, e.g. CONTINUE_PROGRESS=true, will make fedinesia continue with deleting statuses from last successfully deleted status in reverse historical order. Setting this variable implies that PROGRESS_FILE has been set as well.

  • LOGGING_CONFIG (optional) Can be set to a filename containing logging configuration definition. Below is a sample of the logging config file I use during development:

  [[handlers]]
  sink = "sys.stdout"
  format = "{message}"
  level = "INFO"

  [[handlers]]
  sink = "/logging/dev-fedinesia-debug.log"
  rotation = "1 day"
  retention = 3
  level = "DEBUG"
  format = "{time} - {level} - {name} - {function}({line}) - {message}"
  colorize = "none"

Licensing

Fedinesia is licensed under the GNU Affero General Public License v3.0.

Supporting Fedinesia

There are a number of ways you can support Fedinesia:

  • Create an issue with problems or ideas you have with/for Fedinesia
  • Create a pull request if you are more of a hands-on person
  • You can buy me a coffee
  • You can send me small change in Monero to the address below:

Monero donation address

86ZnRsiFqiDaP2aE3MPHCEhFGTeiFixeQGJZ1FNnjCb7s9Gax6ZNgKTyUPmb21WmT1tk8FgM7cQSD5K7kRtSAt1y7G3Vp98nT