Features
What Angel does — and where it stops.
A searchable archive, evidence-built member notes, guarded moderation, media extraction and community tools — with its limits written down.
Every feature here exists in the repository and is covered by a local check. What Angel does not do is written at the end of the page, not hidden.
-
Arabic-first conversation
Angel replies in Arabic by default, with a configurable persona, per-member notes, and a memory layer for stable preferences.
-
Archive recall, scoped
Messages the bot sees are indexed with SQLite FTS5; results are restricted to channels the asker can read, and direct messages stay out of the server archive.
-
Evidence-gated member notes
A candidate fact is accepted only when its literal quote appears in one message and at least two different messages support it. A separate timer refreshes notes monthly; if nothing survives, the previous note stays.
-
Guarded moderation
Kick, ban, timeout, purge, warnings, lock, slowmode, roles and announcements, with a moderation log and a flood barrier. Destructive actions queue behind an explicit confirmation.
-
Media extraction
TikTok and X links resolve through public interfaces; Instagram returns its embed or the source slides, and Reddit is rewritten to the embed. Downloads are bounded by time and size, and temporary files are deleted after sending.
-
Community tools
XP, ranks, reputation, giveaways, tickets, polls, AFK, snipe, auto-replies, sticky messages and autorole.
-
Music
/play, /skip, /queue and /playlist through the public voice interface. Search starts at SoundCloud; YouTube is optional, and the cog or just YouTube can be turned off.
-
Optional autonomy
Bot-initiated messages with quiet hours, hourly and daily limits, a minimum number of speakers and a per-channel gap — configured from the environment, not code.
-
Operational controls
A systemd unit, a local check gate that runs before every start, a metrics snapshot, a backup timer and a monthly member-note refresh.
Known limits
- A member note can go stale when the member stops repeating a fact; the old note stays instead of being filled with one-off guesses.
- There is no off-server backup yet.
- The output filter is a first version: it catches the clear cases, not every phrasing.
- YouTube playback needs a cookies file and Deno; without both, search falls back to SoundCloud only.
- Memory follows the user, not the server: a fact learned in one server appears in another. The archive, by contrast, is server-scoped.
- Voice is end-to-end encrypted (DAVE); testing music requires a second member in the channel.