Slircdocs Waiting list

Slirc is in invite-only pre-launch. Chat works today, and personal agents are coming soon.

Connect / Bots

Bots

A bot is an IRC account your own script logs in as. Slirc creates the account; the script runs on your machine.

What a bot is

Slirc does not run your code. A bot is a normal IRC account with a name you choose. Your script connects to the IRC server with that name and password, joins channels, and sends messages. What it says appears in Slirc and in every other IRC client.

Use a bot when the thing speaking is not a conversation you are having: a build server, a status page, a small script that answers one question. For work you drive yourself, a personal agent is coming next.

Create a bot

Bots are an instance-level resource. Only admins see More → Bots on a phone and Profile → Bots on desktop, and only admins can create, rotate, or remove a bot through the app. Each admin can create up to three bots by default; the per-admin quota is the BOT_LIMIT environment variable (default 3).

Open the screen, type a name, choose Create bot, and Slirc shows the password once. Copy it then: the password is shown once in the UI and is not shown again. The server keeps the credential in the bot's account row so admins can rotate or remove the bot later; only the on-screen copy is one-time. If you lose the on-screen copy, choose New password on the bot's row and update your script.

Names are shared with people and agents, so a name that is already taken becomes name-yournick.

The list shows every admin's bots, but the quota (used of limit) is counted against the admin viewing the screen — another admin filling their quota does not block your next create.

Migration note

Earlier releases let any verified member create their own bots. Any bots that were created by members who are not admins still exist on the server, but only an admin can manage them now. Ask an admin to rotate the password if you need to change a script that talks to one of them; the existing owner no longer has a manage button.

Connect your script

Clients connect to app.slirc.org on port 6697 with TLS and SASL PLAIN:

nick: the bot's name
password: the password Slirc showed you

Any IRC client library works, in any language, because the bot is an ordinary IRC client.

Invite it to a channel

A bot joins a channel the same way a person does:

/invite @deploy-yournick

A note appears at the bottom of the channel, Add @deploy-yournick to #yourchannel?, with Add and Dismiss. Choose Add and the bot joins. Only you see the note. Anyone in the channel can add it. After that the bot reads and posts there like any other member, and Slirc marks it with a bot badge.

Remove a bot

Open More → Bots or Profile → Bots, choose Remove, and confirm. The bot leaves every channel and its IRC account stops working. Create a new bot when you need one again.

Reminders, help, and polls: @remind, @help, @poll

@remind and @help are helpers Slirc runs for you. A fourth, @welcome, lives in #open-chat and posts a daily G'day gif there, which you can hide for yourself in Settings (see notifications).

Just mention the helper. For @help and @poll, if the helper isn't in the channel yet, a note under your message says @poll isn't in #design. (or names the group) with Add and Dismiss. Choose it and the helper joins and answers the message you already sent, so you don't send it again. Only you see the note, and a helper never joins without that click. /invite @poll adds it ahead of time. Helpers can't join DMs with other people or threads.

A message that starts with @remind is private: Slirc sets the reminder for you, shows the confirmation as a notice, and does not post the message in the channel. @remind never needs to join a channel.

@remind keeps a schedule of reminders. Exact times work without a model, and configured instances also understand natural phrasing:

@remind in 20m stretch
@remind tomorrow 9:00 pick up cake
@remind next Friday morning call Mum
@remind list
@remind cancel 1

/remind in 20m stretch does the same thing. @remind list or /remind list opens your DM with @remind and posts your next six reminders there, one per line, and says when more remain. Each line shows when it fires, such as Tomorrow at 9:00 or In 20 minutes, 14:32 on your clock, then what it's about, then a link back to the message when it came from Remind me. The numbers reflect the current list, starting at 1; cancel one with @remind cancel 1.

To remember a message, open its ⋮ menu (on a phone, press and hold the message) and choose Remind me, then pick In 20 minutes, In 1 hour or Tomorrow at 9:00. Slirc sets the reminder with a short quote and a link back to the message, and the confirmation shows as a notice. When it fires, the quote shows as a quote block with a short link such as View in #general that opens the message. Custom… shows a date and time field instead, set to the next full hour; pick any time within the next year and choose Set reminder, or Back to return to the times.

Reminders always arrive in your DM with @remind, never in a channel, even when you asked in one. Slirc opens that DM for you if it isn't there yet. The confirmation is a notice only you see, with the time on your clock, such as Reminder at 14:32 (in 20 minutes): stretch or Reminder tomorrow at 9:00: pick up cake. From an IRC client such as Halloy, an @remind line in a channel is posted like any message, but the answer comes as a private notice and the reminder links back to that line. If Slirc is open on another conversation when a reminder arrives, a toast like Reminder: stretch stays until you choose Open to go to the DM or Dismiss. A Remind me toast quotes the message, and its button is the short link instead, such as View in #general.

Slirc confirms delivery from the server's own echo of the message, not from the send. If a restart leaves the outcome unknown, Slirc sends the reminder once more on its own only when it can prove the first one never arrived. Otherwise @remind list marks it may not have sent, and @remind resend 1 sends it again; it may then arrive twice. Reminders created before this confirmation existed show the same way. Cancelling one stops any further attempt, but a message that already went out cannot be retracted.

@help answers questions about Slirc from these guides, and says which page it used:

@help how do email invitations work?
@help can guests read #help?

In #help it answers without a mention. If a question is not covered by the guides, it says so rather than guessing, and a question about something other than Slirc gets a short line saying it only knows Slirc. A greeting or a thanks gets a short reply when you mention @help, and only a reaction in #help when you don't. While it writes an answer, its avatar shows above the composer with three dots, like a person typing, and the dots go away when the answer lands. Helpers run on the Slirc server, so they work while your computer is off.

Polls: @poll

@poll runs quick room polls. Mention it in a channel and choose Add if it isn't there yet, like the other helpers.

Start a poll with a question and at least two options, separated by commas or by "or":

@poll Lunch? pizza, sushi, salad
@poll pizza or sushi?
@poll Lunch? pizza, sushi for 1h
@poll Lunch? pizza, sushi named

The helper posts the question with numbered options. Vote with the number, for example @poll 2. One vote per person; voting again moves your vote. @poll results posts the running tally, @poll close posts the final one and closes the poll. Only the person who started the poll or a channel op can close it. Add for 30m, for 2h, or for 1d to close it on its own, and named to list who picked each option in the tally. Polls are anonymous otherwise.

One poll is open per room at a time. Asking for a second one shows the open poll and how to close it. Everything the helper posts is plain text, so the poll reads the same in an IRC client. Up to ten options.