check the station
See what is playing, who is live, how many people are listening, or what is coming up next.
!np
!listeners
!dj
!next
!schedule
Carrier follows the station, answers TildeRadio commands in IRC, and adds a few things for live shows. It keeps track of live sets, listener activity, questions, requests, polls, handoffs, and station history.
You can use Carrier in #tilderadio, or invite it to another channel on a network where it is connected.
See what is playing, who is live, how many people are listening, or what is coming up next.
!np
!listeners
!dj
!next
!schedule
Check into the couch, give the DJ props, ask a question, react, or send a request when requests are open.
!tunein tilde.club
!props
!ask what was that last track?
!request Artist - Track
Invite Carrier to another channel for TildeRadio commands. Station announcements can be enabled separately.
/invite carrier #yourchannel
!carrier status
!carrier announce on
!npcurrent track, live DJ, and listener count!listenerscurrent listener count!dj [name]current DJ or a DJ profile!nextnext scheduled show!unnthe show after the next one!schedule [N]upcoming schedule!listenavailable TildeRadio stream URLs!statuscurrent station state with the listen URL!siteTildeRadio website!utccurrent UTC time<alice> !np
<carrier> SIGNAL LOCKED | deepend | Apashe - Lord & Master | 12 listeners
<alice> !next
<carrier> NEXT | ffog | Wed Aug 19 23:00 UTC
The couch is an opt-in roll call. Checking in can include your tilde community, which lets Carrier show which parts of the tildeverse are listening during a set.
!tunein
!tunein tilde.club
!tuneout
!couch
!rollcall
!tildes
Check-ins expire automatically if you disappear for long enough. Carrier may also notice when enough people from the same tilde are checked into one live set.
<alice> !tunein tilde.club
<carrier> COUCH | alice | tilde.club | 6 checked in
<bob> !tildes
<carrier> TILDEVERSE | tilde.club 3 | ctrl-c.club 2 | thunix.net 1
!props gives the current DJ one prop. Each IRC identity can do this once per set.
Ask something without making the DJ dig through IRC scrollback:
!ask how did you find this band?
The question goes into the live DJ's queue. The DJ can take or skip questions when there is a good point in the show.
Quick reactions are intentionally quiet. Carrier collects them and summarizes the room instead of replying to every one.
!fire
!love
!bass
!lol
!wtf
!banger
!weird
!questionable
!react fire
!reactions
!vibe
Requests are for live DJs only. Carrier does not send requests to AutoDJ, and every live set starts with requests closed. The DJ decides when to open them.
!request Artist - Track
!dedicate Artist - Track | nick | optional message
<deepend> !requests on
<carrier> REQUEST LINE OPEN | !request <artist - track>
<alice> !request Massive Attack - Teardrop
<carrier> REQUEST LOCKED | #23 | for deepend
<deepend> !played 23
<carrier> REQUEST CLEARED | Massive Attack - Teardrop | requested by alice
DJ-only commands are tied to the current live DJ. Carrier normally uses the DJ's IRC account/profile information to decide who can control the set.
!show
!show topic weird covers tonight
!show mood questionable
!show prompt what song did you find by accident?
!show note requests later
!show link https://example.com/
!show mastodon tonight is mostly weird synths
!show clear mood
These values belong to the current set and disappear when it ends.
!questions
!qanswer 12
!qskip 13
!questions is sent privately to the DJ so the public channel does not get a wall of queued questions.
!requests on
!requests list
!played 23
!reject 24
!requests off
The queue is private to the DJ. Marking a request played can produce a public announcement.
!goal 10
!goal 15 if we hit this I play the terrible cover
!goal clear
Carrier announces the goal once the live listener count reaches it.
When Mastodon posting is enabled, Carrier can publish a few station events outside IRC. It does not post every command, reaction, track change, or listener change.
Live starts and DJ handoffs are the main notices. Optional posts can include the configured listener milestones (20 and 50 by default), selected station milestones, new station records, and noteworthy set summaries.
!show mastodon tonight is mostly weird synths
The current DJ can send one short Mastodon transmission during a live set.
By default, a completed set is noteworthy if it runs for at least 90 minutes, peaks at 20 listeners, reaches 8 couch check-ins, 20 props, 5 requests, 5 represented tildes, or sets a new station record.
Before leaving the stream, the outgoing DJ can name the expected replacement:
!handoff ffog
Carrier keeps the expected handoff through a short AutoDJ gap. When the next DJ appears, it can recognize the relay instead of treating it as an unrelated new show.
<deepend> !handoff ffog
<carrier> RELAY ARMED | deepend -> ffog
... AutoDJ briefly holds the stream ...
<carrier> RELAY INTACT | ffog has the stream | 11 listeners
!poll start best editor? | vim | emacs | ed
!poll
!vote 3
!poll stop
Votes can be changed until the poll closes.
!challenge name a song you secretly love
!answer Barbie Girl
!challenge results
!challenge random
!challenge stop
!bingo
Carrier privately gives you a randomized 3x3 card for the live set. Some squares are marked automatically.
!battle start tilde.club | ctrl-c.club
!battle
!battle stop
Check in with !tunein your.tilde to identify your side. The prize is the score itself.
!button
The Button has a cooldown and chooses one of a small set of station actions. Carrier does not explain The Button.
A live DJ can add a simple command for show-specific information:
!setcmd lore https://example.com/show-lore
!setcmd rules no rules
!delcmd rules
Listeners can then use !lore like a normal command. Built-in Carrier commands cannot be replaced.
Carrier numbers live broadcasts as sets and stores their history.
!last
!set 184
!djstats deepend
!stationstats
!records
!achievements
!randomdj
Set records include things Carrier actually observed, such as duration, peak listeners, couch activity, props, questions, requests, reactions, handoffs, and other station activity.
On networks where Carrier is connected and invites are enabled, invite it the normal IRC way:
/invite carrier #yourchannel
Carrier joins and remembers invited channels across restarts. Commands work immediately, but automatic station announcements are off by default so inviting the bot does not suddenly flood a channel.
!carrier statusshow Carrier settings for the current channel!carrier announce onenable automatic TildeRadio announcements here!carrier announce offleave commands available but stop announcements!carrier partremove Carrier and forget the invited channelThe person who invited Carrier, a channel operator, or a Carrier admin can manage those channel settings. Kicking Carrier from an invited channel also removes that channel from its saved invite list.
!np only answers the channel that asked.
Enabling announcements subscribes the channel to the station events Carrier normally announces, such as live DJ
changes, handoffs, listener milestones, goals, and other live-set activity.
!tunein, props, questions, reactions, polls, and other room activity are attached to that set.!handoff lets Carrier follow the relay through a short AutoDJ gap.!help
!help dj
!help room
!help games
!help history
Carrier intentionally ignores unknown commands and keeps repetitive activity quiet. The point is to add some useful station context to IRC without becoming the loudest thing in the channel.