Alani · Discord
Alani on
Discord
Reminders and events, music for voice calls, health and routine trackers. You type a short command; she answers in the channel or in a direct message.
Getting started
The basics
Prefixes
Most commands start with .a. The music player uses .avc and the trackers use .at.
In a direct message
You can leave the .a off: info, vc status, t bp list.
Quote your text
Reminder text and event titles go in double quotes, so they can hold spaces, commas and emoji.
Times are 24-hour, in Bangkok time (GMT+7), unless a command says otherwise.
Reminders & events
.a db
Keep reminders and calendar-style events in a database that is yours, or shared by a server. Every database is used with the same commands once you have one.
Your databases
Personal is one private database for you, usable from any channel. Server is one database for a server that you can share with collaborators; its events also appear as real Discord server events.
.a db create personal <name> <channel-id|dm> .a db create server <name> <channel-id|dm> .a db drop <name> .a db collab add <name> <user-id> (server databases) .a db collab remove <name> <user-id> (server databases) .a list db which databases you can use
The channel you choose when creating a database is where its reminders and events are delivered by default (or dm for a direct message). You can still send an individual one somewhere else by adding a channel ID.
Adding, listing, editing and deleting
.a db [<name>] add reminder <YYYY-MM-DDTHH:MM> "<text>" [mentions] [channel-id] [force] .a db [<name>] add event <start> [end|allday] "<title>" [| <location>] [force] .a db [<name>] list reminders .a db [<name>] list events .a db [<name>] delete reminder <id|all> .a db [<name>] delete event <id> .a db [<name>] edit reminder <id> <YYYY-MM-DDTHH:MM> "<text>" .a db [<name>] edit event <id> <start> <end> "<title>" [| <location>]
<name>can be left off when you only have one database to choose from.- Dates can be shortened: the year, the month, even the whole date can be left off and today's is assumed.
T19:00alone means “today at 7 pm”. - Mentions are a comma-separated list of user IDs and/or usernames after the text, for example
... "take out the trash" alice,bob. They are tagged when the reminder fires in a shared channel. forceadds the entry even if it looks like a duplicate or overlaps another.
.a db add reminder T19:00 "take out the trash" .a db add event 2026-11-02T14:00 2026-11-02T15:30 "Project meeting" | Room 4
Music player
.avc
Alani joins your voice channel and plays audio for everyone in the call, with a queue that is saved for the server. Anyone in the call can use it.
Commands
.avc join join your voice channel .avc play FILE NAME add to the end of the queue .avc play "A" "B" add several at once (each full name in quotes) .avc pause pause (again to resume) .avc skip [NUMBER] next track, or jump to that queue position .avc list [a|d|m] what you can play: A-Z / newest first / grouped by media .avc queue the current track and its neighbours, all tracks in pages .avc queue list the whole queue as one list .avc queue loop on|off .avc queue shuffle on|off (shuffle also means loop) .avc queue playcall on|off “Now playing” messages on or off .avc remove FILE NAME .avc status .avc leave the queue is kept
Two more actions need extra access from Alani's owner: .avc force play FILE NAME (play next and skip the current track) and .avc removeall (clear the queue).
Short forms, naming and behaviour
| Short | Full | Short | Full |
|---|---|---|---|
j | join | rm | remove |
p | play | rma | removeall |
fp | force play | st | status |
pa | pause | lv | leave |
sk | skip | l | list |
q | queue | ql | queue list |
lp | loop (under queue) | sh | shuffle (under queue) |
pc | playcall (under queue) | e.g. .avc q lp on | |
- File names ignore case and extension, and a partial name works if it matches exactly one file.
- Naming: files named
ARTIST-GAME-Song nameare grouped by game in.avc list m. - The queue is a list in the order added. Finished tracks drop off unless loop or shuffle is on; shuffle jumps to a random track without reordering the list.
- Leaving and returning:
leavethenjoinpicks up where you left off. Alani leaves by herself after a few minutes of silence or when she is alone in the call.
Trackers
.at
Track blood pressure, pills and routines, with reminders at the times you choose. A tracker belongs to you (me, the default) or to a server (server). Using the trackers needs access from Alani's owner; reading the help does not.
Tracker types
| Type | What it is | How many |
|---|---|---|
| Bloodpressure tracker | Log readings (systolic and diastolic), get a daily reminder. | One per owner |
| Pill tracker | Holds all your pills, each with its own reminder time; log taken or not taken. | One per owner |
| Activity tracker | A named recurring reminder (for example a weekly event), with no logs. | As many as you like |
.at type list the types and how to use each .at help every command, in short
Set up and reminders
.at create type:"Bloodpressure tracker" [me|server] .at create type:"Pill tracker" [me|server] .at create type:"Activity tracker" name:"Fortnite karaoke weekly" .at enable|disable "NAME" reminders on or off (your data is kept) .at permission grant|revoke USER let someone use all of an owner's trackers .at list your trackers (and this server's) .at setting "NAME" recuring:daily at:T21:00 to:"Register today blood pressure" sent:dm .at setting "NAME" recuring:weekly friday,sunday at:T19:30 to:"It's Karaoke Time!!!" tag:alice,bob sent:CHANNEL_ID .at setting "NAME" recuring:monthly 1,15,last at:T09:00 ... .at setting "NAME" recuring:yearly at:10,03,T09:00 ... (month, day, time)
- Times are 24-hour in
tz(default GMT+7).tag:takes user names or IDs.sent:isdmor a channel ID. - Blood pressure is daily only. A pill tracker's setting only takes
tz,tagandsent. - Blood-pressure and pill reminders are skipped when that day's reading or dose is already logged.
- A pill reminder in a direct message can be answered with a plain
yorn.
Logging and reading your data
.at la bp 120 80 log a blood-pressure reading now (la = logadd) .at bp list browse the readings .at bp export RANGE export them as a text file .at bp delete RANGE delete readings (asks first) .at pill addpill "Full name"/"alias" recuring:daily at:T21:00 .at pill removepill NAME|ALIAS remove a pill and its logs (asks first) .at pill pills the pills and their schedules .at la p bpl,fl y log pills taken (y) or not taken (n) .at pill list|export|delete [PILL] [RANGE] .at server bp list the server's tracker instead of yours
Ranges: all, latest14, oldest5, 2026/10/1, 2026/10/1-2026/11/13. Exports are oldest to newest.
Help
Built-in guides
.a info what Alani is and the list of commands .a info db how reminders and events work .a info avc the music player .a info at the trackers .at help every tracker command .at type list the tracker types