amoorion
Universal tool for administration of chatting and communication platforms
EARLY STAGE OF PROJECT
The core works end to end, with plugins for Bluesky, Mastodon, X, Tumblr,
Blogger, Facebook, Discord (bot or webhook), Telegram and Matrix, tested
only against fakes of their APIs so far, not yet against real accounts. dryrun sends nothing, for trying.
Plan: docs/devlog/VISION.md.
What it will do
Write once, post everywhere, read and answer from one place, and link it with the services around it.
Publication platforms
- twitter (x.com) posting by api
- bluesky posting
- tumblr posting by api
- blogger posting by mail
- facebook posting
- mastodon posting
Communication platforms
- discord
- telegram
- matrix
whatsappsignal
Additional functionality
- email client
rss feed receiverphone manage by adb- webhooks - standard linkings with services like gitlab, github, discord etc.
- ntfy notifications
- nats.io
How it is built
One core (model, view, controller) and namespaces on it: plugins (one
per platform), methods (what amoorion can do), and the faces that expose
the methods: CLI, HTTP API, MCP server for AI agents, and a
daemon for long-running services. Secrets come only from a vault
(Bitwarden / Vaultwarden, HashiCorp Vault / OpenBao, or a KeePassXC file);
.env holds just the link to it. Each platform is its own package in
packages/ (a uv workspace). Details: docs/structure.md, writing a plugin:
docs/plugins.md.
Usage
uv sync
cp example.env .env # the link to the vault
uv run amoorion # asks step by step what to do (or: amoorion -i)
uv run amoorion plugins # platforms and what they can do
uv run amoorion accounts # which have their secrets in the vault
uv run amoorion publish --text "hello" --to dryrun bluesky
uv run amoorion --json read --platform bluesky
uv run amoorion reply --platform bluesky --to "at://…" --text "thanks"
uv run amoorion inbox # everything read or received so far
uv run task help # help of every command
uv run amoorion api # HTTP API on 127.0.0.1:8000
uv run amoorion mcp # MCP server (stdio) for agents
uv run amoorion daemon # long-running services
The API needs the secret api/token in the vault (sent as Authorization: Bearer), and every hook its own secret; without them they refuse calls.
Where each backend keeps a secret: docs/structure.md.
Each platform's secrets are listed in its package's README, e.g.
packages/amoorion-bluesky.
Run locally first; a Dockerfile and compose come next (phase 6 of the plan).
Development
uv run task init # tools, git hooks, .env, then check
uv run task check # tests, YAML, commit messages, docs (= CI)
uv run task docs:build # the docs site into docs/_build/html
uv run task plugin:new -- <platform> <Class> "<description>" # a new platform
uv run task test:live -- bluesky mastodon # one real test post on each platform named
Examples of usage: Jupyter notebooks in examples/
(uv run task examples:build makes marimo notebooks and pages of them). The docs
(this README, the guides, the plan and an API reference generated from the
code) are built by Sphinx from docs/ for Read the Docs.
Plan and open questions: docs/devlog/. Guide for agents and
contributors: AGENTS.md.
License
Free, under the MIT License, © 2024–present Sett Sarverott: LICENSE, https://sett.mit-license.org
Metadata
Release files for amoorion 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| amoorion-0.3.1.tar.gz | 23.6 kB | Without provenance | Details for amoorion-0.3.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| amoorion-0.3.1-py3-none-any.whl | Python 3 | none | any | Details for amoorion-0.3.1-py3-none-any.whl |
Total release size: 57.2 kB
Release files / amoorion-0.3.1.tar.gz
| Download URL | amoorion-0.3.1.tar.gz |
|---|---|
| Size | 23.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f4b46800d17f49dd64ca9804389c22efeefdd0b5149da0b0dbad05debf6244f3
|
|
BLAKE2b-256 checksum How to use checksums |
5b05bd23d3258222d98da944b9f20381882c54711fe1680eeff090621e8aa8e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / amoorion-0.3.1-py3-none-any.whl
| Download URL | amoorion-0.3.1-py3-none-any.whl |
|---|---|
| Size | 33.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
00209ae8420024643a672b965e69a5047dd32e9deb05a6f3975b7383f3770b3a
|
|
BLAKE2b-256 checksum How to use checksums |
1aaac30581798c7d02cd15ab96b50385657a6af7c30d6a9a82ce0c07e6f43f2d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for amoorion 0.3.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.