Skip to content

All Commands

This page lists all the available commands for the Community Signal Moderation Bot.

  • !help: Show available commands.
  • !ping: Test bot responsiveness.
  • !ai <question>: Ask AI a question (OpenAI).
  • !lai <question>: Ask a local/community AI a question (self-hosted).
  • !uai <question>: Ask uncensored AI a question (self-hosted, unfiltered model).
  • !summarize <url>: Summarize a URL, video, or text.
  • !tldr <url>: Summarize a URL or video (YouTube, Instagram, TikTok, Facebook). Reply to a message with !tldr to summarize its URL.
  • !scan: Scan a file for viruses (reply to attachment). See File Scanning.
  • !zeroeth: Get the Zeroeth law of robotics.
  • !cleaner: Clean up messages.

AI Commands Comparison:

CommandModelCensored?Use Case
!aiOpenAI GPTYesGeneral questions, safe content
!laiCommunity (Irregularbot)ModerateCommunity-hosted, may reason differently
!uaiUncensoredNoDirect answers without refusals

⚠️ Note: !uai uses an uncensored model. Be responsible with usage.

See Unified Ask for full documentation.

  • !ask <question>: Agentic search across all community knowledge sources (wiki, outline, RSS, Q&A history, files, Wikipedia, Knowledge Graph). AI routes the question to the most relevant sources, searches in parallel, runs gap detection, and synthesizes a single answer with citations.
  • !ask <question> --broadcast: Search + broadcast answer to multiple groups.
  • !ask --sources: List available search sources and their status.
  • !a <question>: Alias for !ask.

How it works:

  1. AI router picks 2-4 relevant sources for your question
  2. All selected sources are searched in parallel
  3. Gap detection checks if more sources are needed (up to 3 rounds)
  4. AI synthesizes a single answer with source citations

Examples:

!ask What are the claude code plugins and lessons learned?
!ask What link was posted about AI in the DoD?
!ask How do I set up secure communications?

Submitting Questions:

  • !qa <question>: Submit a question to the Q&A database for community answers.
  • !qa <question> --broadcast: Submit and broadcast to all groups.
  • !q <question>: Alias for !qa.
  • !question <question>: Alias for !qa.

Viewing Questions:

  • !questions: List recent questions.
  • !questions -a: List questions from all groups.
  • !question <hash>: View full question with all context, clarifications, and answers.

Answering Questions:

  • !answer <hash> <answer>: Answer a question.
  • !a <hash> <answer>: Alias for !answer.
  • !answer <hash> --breakout: Start a breakout discussion room instead of posting answer.
  • !answer <hash> --context <answer>: Answer with AI-summarized context from linked breakout room.
    • Automatically extracts key insights from breakout discussion
    • Includes relevant URLs/resources shared during breakout
    • AI summarizes discussion in context of the original question

Requesting Clarification (Inquiries):

  • !inquire <hash> <question>: Ask the asker for clarification on their question.
  • !cq <hash> <question>: Alias for !inquire (Clarifying Question).
  • Example: !inquire GZ2QCC What operating system are you using?
  • The original asker is notified and can respond with !clarify.

Managing Answers:

  • !clarify <hash> <text>: Add clarification to a question.
  • !accept <hash> <A#>: Accept an answer as the solution.
  • !reject <hash> <A#> <reason>: Reject an answer with feedback (DMs the answerer).
  • !solved <hash> <A#>: Alias for !accept.

Sharing Questions:

  • !shareq <id> [keywords]: Share existing question to other groups.
  • !shareq 42 suas counter: Share Q#42 to groups matching “suas” or “counter”.
  • !shareq 42 all: Share Q#42 to all groups.
  • Reply to question → !shareq: Share the quoted question.

Example Expanded Question View:

📋 Question #GZ2QCC
Asked by: Sac | Dec 19, 2025 at 3:30 PM
Group: IrregularChat: sUAS
[Full question text...]
💬 CLARIFICATIONS (2):
[C1] by JohnDoe: "Are you looking for hardware?"
[C2] by Sac: "Software - ATAK plugin"
❓ PENDING INQUIRIES (1):
❓ MikeS asks (Dec 19): "What operating system are you using?"
📝 ANSWERS (3):
[A1] ✅ ACCEPTED by MikeS: "Check out TAK docs..."
[A2] ❌ REJECTED: "That's for Teal 1"
[A3] 💬 PENDING by AliceK: "Happy to chat..."
🔗 RESOURCES:
💬 Breakout: "Teal 2 TAK Integration"
📄 Forum: https://forum.irregularchat.com/t/123
  • !groups: List approved community groups.
  • !groups -c <category>: Filter groups by category (e.g., tech, unmanned, cyber).
  • !groups --categories: Show available category filters.
  • !join <group_name>: Self-service group joining.
  • !join -c <category>: Join all groups in a category.

Member Onboarding: See Member Onboarding for detailed documentation.

  • !invite: Start invite process (adds you to Entry/INDOC chat).
  • !request @user: Initiate verification for new member (you become voucher).
  • !request -nv @user: Initiate verification without being the voucher (admin use).
  • !request: Show intro template (no @mention).

Categories: Groups can be filtered by topic:

  • unmanned - sUAS, UxS, Counter-UxV
  • information - Research, IWAR, AI
  • tech - Tech, Full Stack Dev, Hackathons, SystemManagers, Space
  • cyber - Purple Team, Certs, DefCon, Bot Dev
  • build - Hardware, Fabrication
  • comms - Dragon, RF, Comms
  • military - Modern Warfare
  • professional - Business, Project Managers, Mentors
  • general - Off Topic, Outdoor, Events, Debate, Writing
  • announcements - Announcement channels
  • !wiki: Wiki links.
  • !wikisearch <query>: Search wiki.
  • !ws <query>: Search wiki.
  • !wikiask <question>: AI-powered wiki Q&A.
  • !wa <question>: AI-powered wiki Q&A.
  • !wikiadd: Reply to a message to extract content and add it to IrregularPedia.
  • !wikiadd -n <count>: Analyze last N messages for wiki-worthy content.
  • !wa -n <count>: Alias for !wikiadd -n.

Search & Browse:

  • !ol <query>: Search team docs.
  • !outline <query>: Search team docs.
  • !ol ask <question>: AI Q&A from docs.
  • !ol recent: Recent documents.

Create Documents:

  • !ol: Reply to a message to create a doc from that message.
  • !ol ai <content>: Create doc with AI-generated structure.
  • !ol ai --public: Create public share link.
  • !ol note <text>: Quick note.

Capture Chat to Document:

  • !ol -n 5: Capture last 5 messages into a new document.
  • !ol -b 2: Reply to a message - capture it + 2 messages before.
  • !ol -a 3: Reply to a message - capture it + 3 messages after.
  • !ol -b 2 -a 3: Reply to a message - capture 2 before + message + 3 after.
  • !ol -n 5 --public: Capture messages and create a public share link (admin only).

How chat capture works: Documents created from chat messages include:

  • Open Questions: AI-generated follow-up questions as checkboxes
  • Summary: AI-generated summary of the discussion
  • Discussion: The captured messages (bot messages and commands filtered out)
  • Links: Any URLs mentioned in the conversation

See File Management for detailed documentation.

  • !files <query>: Search filenames in the archive.
  • !files -g <keyword>: Search file contents (grep).
  • !files -s <query>: Smart AI-powered search with synonyms.
  • !files --cat <name>: Browse files in a category.
  • !files --list: List all available categories.

After search results:

  • Reply with a number to get a direct download link (MinIO presigned URL, expires in 15 min).
  • Reply tldr N to summarize a PDF file.

Upload videos to PeerTube with AI-generated titles and descriptions.

Basic usage:

  • !save: Reply to a video - AI analyzes frames + audio to generate title/description automatically.
  • !save My Video Title: Reply to a video with a custom title.
  • !save Title | Description: Reply to a video with custom title and description.

Using chat context:

  • !save -b 3: Use 3 messages BEFORE the video as AI context for better titles.
  • !save -a 4: Use 4 messages AFTER the video as AI context.
  • !save -b 2 -a 2: Use messages before and after for context.

How AI analysis works: When you reply to a video with just !save, the bot:

  1. Extracts up to 5 key frames using scene detection
  2. Transcribes audio using local Whisper (first 60 seconds)
  3. Sends frames + transcript to AI to generate an accurate title and description
  4. Uploads to PeerTube with the generated metadata

Tips:

  • For best results, send a message describing the video, then reply to that message with !save.
  • Use -b flag to include chat discussion as context for the AI.
  • Videos are uploaded to the community PeerTube instance (login via SSO).

The bot automatically tracks URLs shared in community chats, including social media links, git repositories, and news articles.

Views:

  • !links: Weekly digest summary of shared links
  • !links -all: Full list of recent links
  • !links -trending: Links shared 2+ times (popular)
  • !links -topics: Group links by category/domain
  • !links -top: Contributor leaderboard
  • !links -git: Git repositories (GitHub, GitLab, etc.)
  • !links -social: Social media links (Instagram, Twitter, YouTube, etc.)

Filters:

  • !links -c: Show links from current group only
  • !links -t 24h: Time period (24h, 7d, 30d)
  • !links -d reddit.com: Filter by domain
  • !links -f: Include forum URLs
  • !links <keyword>: Search links

Social media tracking: When social media URLs are shared, the bot automatically:

  • Removes tracking parameters (igsh, fbclid, utm_*, etc.)
  • Extracts content type (Reel, Tweet, YouTube Video, etc.)
  • Saves to database for later discovery via !links -social

Supported platforms: Instagram, TikTok, Twitter/X, YouTube, Facebook, Reddit, Vimeo, Twitch, LinkedIn, Pinterest, Snapchat

Examples:

!links # Weekly digest
!links -social # Recent social media links
!links -git # Git repositories
!links -trending # Popular links
!links -c -t 7d # This group, last 7 days
!links ukraine # Search for keyword

Create, manage, and coordinate community events with RSVPs and polls.

  • !events: List upcoming events with RSVP counts
  • !events search <term>: Search events by title, location, or tags
  • !event <id>: Show detailed info for a specific event

Events with active polls show: 🗳️ Vote: !event vote d6595bcd

Create an event with a single command:

!event quick "Event Title" tomorrow at 7pm
!event quick "Game Night" Saturday 6pm at John's place
!event quick "Team Meeting" 2026-02-15 14:00

Parse natural language descriptions into structured events:

!event parse Board game night this Saturday at 7pm at the community center

The bot will extract title, date/time, and location, then ask for confirmation:

  • Reply yes or yep to create the event
  • Reply no or cancel to abort
  • Reply 1 20 to set capacity to 20
  • Reply 2 https://example.com to add an event link

Supports relative dates: “tonight”, “tomorrow”, “this Saturday”, “next Friday”

Plan events with date and venue voting:

!event plan Feb 15, Feb 22, March 1; Downtown Cafe, The Park, Bob's House; Annual meetup planning session

Format: !event plan <dates separated by commas>; <venues separated by commas>; <description>

This creates:

  • Time poll with date options (morning/afternoon/evening/night slots)
  • Location poll with venue options
  • Group members can vote via Signal

Voting on polls:

  • Reply with numbers 1, 2, 3, 4 for date preference
  • Reply with letters A, B, C, D for venue preference
  • Or use the !event vote command
!event vote <event-id> # Show poll options and current standings
!event vote <event-id> A B # Vote for time slots A and B
!event vote <event-id> +1 -2 # Upvote location 1, downvote location 2
!event vote <event-id> A B +1 # Combined time and location votes

Partial event IDs work (8+ characters): !event vote d6595bcd A B

After voting, the bot shows current poll standings.

!event rsvp going <event-id> # RSVP as going
!event rsvp maybe <event-id> # RSVP as maybe
!event rsvp cancel <event-id> # Cancel RSVP

Reaction-based RSVP: React with 👍 to an event message to RSVP as “going”

!event share <id> # Share to default broadcast groups
!event share <id> suas fpv # Share to groups matching keywords
!event share <id> all # Share to all groups
!events # List upcoming events
!events search game night # Find game night events
!event quick "Trivia Night" Friday 8pm # Create quick event
!event parse pizza party tomorrow at noon # AI-parsed event
!event plan Jan 15, Jan 22; Pizza Place, Taco Shop; Team lunch
!event vote d6595bcd # View poll options
!event vote d6595bcd A +1 # Vote: time A, upvote location 1
!event rsvp going d6595bcd # RSVP as going
  • Signal-created events require login to view on the web (privacy protection)
  • Events display in Eastern timezone (America/New_York)
  • Poll votes show current standings after each submission
  • Event URLs: https://event.irregulars.io/event/{id}

Track community engagement, view leaderboards, and earn points across all IrregularChat services.

See Scoreboard Commands for full documentation.

View scores:

  • !score: Your score, rank, badges, and recent activity.
  • !score @person: View someone else’s score.

Leaderboard:

  • !leaderboard: Top 10 this week.
  • !leaderboard month: Top 10 this month.
  • !leaderboard all: Top 10 all-time.

Admin:

  • !score award @person <points> <reason>: Award points manually (admin only, max 500).

Examples:

!score # Your score and badges
!score @alice # Alice's score
!leaderboard # Weekly top 10
!leaderboard all # All-time top 10
!score award @alice 50 Great bug report # Admin: award points

Web interface: https://score.irregulars.io

  • !forum: Forum links.
  • !faq: Frequently asked questions.
  • !docs: Documentation links.
  • !fpost: Create forum post.
  • !flatest: Latest forum posts.
  • !fsearch: Search forum.
  • !categories: Forum categories.

Scan files for viruses and analyze documents. For PDFs, provides additional security analysis.

Basic usage:

  • !scan: Reply to a file to scan it for viruses (ClamAV)
  • !virus: Alias for !scan
  • !clamav: Alias for !scan

Options:

  • !scan --info / !scan -i: Show detailed metadata (PDF author, creator, dates)
  • !scan --sanitize / !scan -s: Strip metadata from PDF (creates clean copy)

PDF-specific features: When scanning a PDF, the bot automatically:

  • Extracts page count, title, author
  • Checks for JavaScript (security risk)
  • Detects encrypted/password-protected PDFs
  • Identifies embedded files

Example output:

🛡️ Scan Complete - No Threats Detected
📄 File: report.pdf
📦 Size: 2.5 MB
📑 Pages: 42
📋 PDF Analysis:
• PDF Version: 1.7
• Title: Annual Report 2024
• Author: John Doe
🔐 Security Notes:
⚠️ Contains JavaScript (potential risk)

Available tools:

  • ClamAV - Virus scanning
  • pdfinfo/pdftotext - PDF metadata and text extraction
  • exiftool - Metadata analysis and sanitization
  • Ghostscript - PDF processing
  • Tesseract OCR - Text recognition (for scanned PDFs)
  • ocrmypdf - OCR processing

Generate a summary of community activity over a time period, including questions, TILs, breakout rooms, links, files, videos, and more.

Basic usage:

  • !rollup: Weekly digest (default, all groups)
  • !digest: Alias for !rollup
  • !summary: Alias for !rollup

Time period options:

  • !rollup -d: Daily digest (last 24 hours)
  • !rollup -m: Monthly digest (last 30 days)
  • !rollup -t 7d: Custom time period (supports 24h, 7d, 30d, etc.)

Scope options:

  • !rollup -c: Current group only (instead of all groups)
  • !rollup --full: Detailed version with more information

Combined examples:

!rollup # Weekly digest, all groups
!rollup -d -c # Daily, this group only
!rollup -m --full # Monthly, detailed version
!rollup -t 14d -c --full # Last 2 weeks, this group, detailed

What’s included in the rollup:

SectionContent
Questions & AnswersQuestions asked, solved rate, top answerers, unanswered questions
Today I LearnedTILs shared with AI summaries
Breakout RoomsTopics discussed, participants, action items, decisions
TasksTasks created/completed, overdue items, top completers
Links SharedTotal links, social media, git repos, trending links
Videos ArchivedVideos saved to video.irregularchat.com
Files ArchivedFiles saved to community archive by type
AnnouncementsCommunity announcements sent

Share knowledge and insights with the community.

Share a TIL:

  • !til <what you learned>: Share something you learned today.
  • !til (reply to message): Save that message as a TIL.
  • !til 5: Save last 5 messages as a TIL.
  • !todayilearned <text>: Alias for !til.
  • !learned <text>: Alias for !til.

View TILs:

  • !tils: List recent TILs from this group.
  • !tils 10: List last 10 TILs.
  • !tils -a: List TILs from all groups (community-wide).
  • !tils -m: List only your TILs.
  • !tils -a -m: List your TILs from all groups.
  • !tils #42: View specific TIL by ID.
  • !tils search <term>: Search TILs.
  • !tils -a search <term>: Search across all groups.

Examples:

!til PostgreSQL EXPLAIN ANALYZE shows actual vs estimated rows
!til You can use `git stash -p` to stash specific hunks
!tils -a # All community TILs
!tils -m # Your TILs in this group
!tils -a -m # All your TILs everywhere
!tils search postgres # Search TILs

How it works:

  • TILs are saved with AI-generated summaries
  • Included in community rollups (!rollup)
  • Great for sharing quick insights without starting a full discussion
  • !time: Show current time in various timezones.
  • !flip: Flip a coin.
  • !fact: Get a random interesting fact.
  • !8ball <question>: Ask the magic 8-ball a question.
  • !calc <expression>: Calculate a mathematical expression.
  • !random <number>: Generate a random number.
  • !cast: Cast a vote or make a random selection.
  • !op-name [context] [-n 5]: Generate military-style operation names.
  • !joke: Tell a random joke.
  • !quote: Show an inspirational quote.
  • !dicho: Show a random Spanish proverb (dicho).
  • !meme: Post a random meme.
  • !meme -c: Combine multiple memes into a crossfaded GIF.
  • !kill [@user]: LEGO guillotine meme.

Set reminders that the bot will deliver at the specified time. By default, reminders are delivered in the room where they were created.

Basic usage:

  • !remindme <when> <message>: Set a reminder (delivered in room).
  • !remindme --dm <when> <message>: Set a private DM reminder.
  • !reminders: List your pending reminders.
  • !cancelreminder <id>: Cancel a reminder.

Time formats supported:

FormatExampleDescription
Relative30s, 30m, 2h, 1d, 1wSeconds, minutes, hours, days, weeks from now
Combined2h30m, 3d12hMultiple units together
Naturalin 2 hours”in X units” format
Tomorrowtomorrow, tomorrow at 3pmNext day (defaults to 9am)
Day namesmonday, friday 2pmNext occurrence of that day
Named timestonight, noon, midnightCommon time references
Date + Time12/25 2:30pm, 12/25/2025 10:30amUS date format
Compact20251225, 20251225 1430YYYYMMDD format
Time only10:30am, 14:30Today or tomorrow

Examples:

!remindme 30s Quick test
!remindme 2h Check the build status
!remindme --dm 1d Private reminder (DM only)
!remindme tomorrow at 9am Team standup meeting
!remindme friday 3pm Submit weekly report
!remindme 12/25 10am Christmas morning reminder
!remindme 1d (reply to a message to be reminded about it)

Subscribe to reminders: React with any emoji to a reminder confirmation to also receive that reminder when it fires. Great for group events!

Timezone info: Times are shown in Eastern Time (ET) by default. Reference:

  • Pacific (PT): ET - 3 hours
  • Central (CT): ET - 1 hour
  • Mountain (MT): ET - 2 hours
  • Ukraine (EET): ET + 7 hours

Tips:

  • Reply to any message with !remindme <time> to be reminded about that specific message.
  • Maximum 20 pending reminders per user.
  • Default delivery: Room (use --dm for private DM delivery).
  • !meme: Random meme from the library.
  • !meme <#>: Get meme by number.
  • !meme <title>: Get meme by title.
  • !meme <title> <text>: Get meme with text overlay (supports @mentions).
  • !meme library: List all URL memes with numbers.
  • !meme list: List local file memes.
  • !meme stats: Show meme usage statistics.
  • !meme add <url> <title>: Add a meme from Giphy or Tenor.
  • Reply to image/GIF + !meme add <title>: Add a meme from a replied attachment (full quality).
  • !meme -h: Show meme help menu.

Adding Memes from Attachments: Reply to any image or GIF in chat with !meme add <title> to save it to the meme library. The bot will:

  • Use the original full-quality file (not the thumbnail preview)
  • Automatically convert MP4 to GIF (Signal stores some GIFs as MP4)
  • Upload to MinIO storage for permanent hosting

Note: Only images sent AFTER Dec 20, 2025 can be added via reply. Older images weren’t tracked in the database.

Combine Memes:

Create custom combo memes by combining multiple memes into one GIF with smooth crossfade transitions.

  • !meme -c <meme1> <meme2> [meme3...]: Combine memes (temporary).
  • !meme -c -r <n>: Combine n random memes (2-10).
  • !meme -c <memes> -n <name>: Combine and save permanently.
  • !meme -c <memes> -t <text>: Combine with text overlay.
  • !meme -c <memes> -n <name> -t <text>: Save with name and text.

Combine Examples:

!meme -c potato gasp awkward
!meme -c -r 4
!meme -c -r 3 -n random_trio
!meme -c execute killlego soul -n death_combo
!meme -c popcorn gasp -t "This is fine"
!meme -c 1 2 3 -n my_combo -t @username

Memes can be referenced by local meme ID (potato, gasp), database title, or number (#1, #2).

Shortcuts:

  • !kill: LEGO guillotine meme.
  • !kill <text>: LEGO guillotine with text overlay.
  • !kill @user: LEGO guillotine with user’s display name.

Admin only:

  • !meme trigger <#> <words>: Set trigger words for auto-reactions.
  • !meme delete <#>: Delete a meme from the library.
  • !dice @user1 @user2: Start a multiplayer game.
  • !roll: Roll the dice.
  • !pass: Pass the dice.
  • !fade: Fade the dice.
  • !points: Show player points.
  • !leave: Leave the game.
  • !endgame: End the game and remove all players.

See Rock Paper Scissors for detailed documentation.

  • !rps @player: Challenge someone to RPS (game starts immediately).
  • !rps -r / !rps --random: Play against a random recent active user.
  • !rps quit: Quit current game (ends for both players).
  • !req @user: Alias for !request @user.
  • !request @user: Initiate verification (see Member Onboarding).

Create temporary focused discussion groups where participants can join via emoji reaction.

Basic usage:

  • !breakout <topic>: Create a focused discussion group.
  • !breakout <topic> --broadcast: Create and announce to multiple groups.
  • !breakout -q <hash>: Create/join question-focused breakout (see below).
  • !broadcast <keywords>: Reply to a breakout announcement to share it with other groups.
  • !breakouts: List active breakout rooms.
  • !endbreakout: End your breakout room (generates AI summary, archives the room).

What happens when you create a breakout:

  1. Signal group is created with the topic name
  2. Group description shows topic, end time, and available commands
  3. Outline collaborative notes document is created automatically
  4. Each member receives a personal DM with:
    • Topic and end time (in ET/CT/PT)
    • Link to the Outline collaborative notes
    • List of available commands

Question-Focused Breakouts:

  • !breakout -q <hash>: Create or join a breakout linked to a Q&A question.
  • !breakout -q <hash> @user: Add users to existing active breakout (default behavior).
  • !breakout -q <hash> --new: Force creation of a new breakout room.
  • !breakout -q <hash> @user --new 1h: New room with user, 1 hour duration.

When a question already has an active breakout, !breakout -q adds mentioned users to the existing room instead of creating duplicates. Use --new or -n to force a new room.

Broadcasting to other groups: Reply to a breakout announcement with !broadcast to share it:

  • !broadcast suas counter fpv: Broadcast to groups matching keywords (e.g., groups with “suas”, “counter”, or “fpv” in their names).
  • !broadcast all: Broadcast to ALL groups.
  • !broadcast: Broadcast to env-configured default groups.

During breakout:

  • !decision <text>: Record a decision.
  • !action @person <task>: Assign an action item.
  • !park <text>: Park topic for later discussion.
  • !status: Check time remaining.
  • !extend [min]: Request time extension (e.g., !extend 30, !extend 1h).
  • !complete: Mark action as done (reply to action message).

Ending breakout: When you use !endbreakout:

  1. AI generates summary with decisions, action items, key insights
  2. Summary is posted to Discourse (if enabled)
  3. If linked to a Q&A question, context is added as an answer
  4. Summary is sent to the breakout group
  5. Group is renamed to “(archived) {topic}” for searchability
  6. Archive delay (2 min default): Users are notified and given time to save info
  7. Members are removed and bot leaves the group

Options:

  • Duration: 15m, 30m, 45m, 1h, 2h, 3h, 6h, 1d (default: 3h, max: 7 days)
  • Types: type:brainstorm, type:decision, type:planning, type:retro, type:problem
  • Privacy: privacy:public, privacy:private, privacy:summary_only (default)
  • Broadcast: --broadcast or -b to announce to multiple configured groups
  • Force new room: --new or -n (for question breakouts only)

Examples:

!breakout API Design 30m
!breakout Sprint Planning @alice @bob 1h type:planning
!breakout Community Discussion --broadcast
!breakout Weekly Sync 3h type:planning
!breakout -q GZ2QCC @expert # Add expert to existing Q breakout
!breakout -q GZ2QCC --new # Force new room for question

How broadcast works: When using --broadcast, the breakout announcement is sent to multiple groups configured by admins. Users from any of those groups can react with an emoji to join the breakout room.

Integration with Q&A:

  • Use !breakout -q <hash> or !answer <hash> --breakout to create a breakout linked to a question
  • When the breakout ends, the AI summary is automatically added as context to the question
  • The forum link is also attached to the question
  • Multiple experts can be brought into ongoing discussions without duplicate rooms

Admins can customize per-room feature settings. Use !room to view all current settings.

Master Control:

  • !room bot on/off: Master switch - disable ALL bot features in this room (except !room itself).

Content Features:

  • !room archive on/off: Toggle auto-archive for files shared in this room.
  • !room tldr on/off: Toggle auto-TLDR summaries for archived PDFs.
  • !room ai on/off: Toggle AI features (!ai, !tldr, !summarize, etc.).
  • !room news on/off: Toggle news summarizer (auto-posts news articles to forum).
  • !room tracker on/off: Toggle URL tracker removal (strips tracking params from shared links).

Entertainment Features:

  • !room meme on/off: Toggle the !meme command.
  • !room memereact on/off: Toggle auto meme reactions (bot responds to trigger words with memes).
  • !room dice on/off: Toggle the !dice game.
  • !room rps on/off: Toggle Rock Paper Scissors (!rps).

Translation:

  • !room translate on <language>: Auto-translate non-target-language messages in this room.
  • !room translate off: Disable auto-translate.

Tips:

  • When bot is OFF, only !room commands work (so admins can re-enable)
  • Settings are per-room, so you can have different configs in different groups
  • All features default to ON when a new room is added

Member Onboarding (see Member Onboarding):

  • !invite: Start invite process (adds voucher to Entry/INDOC).
  • !request @user: Initiate verification with caller as voucher.
  • !request -nv @user: Initiate verification without vouching (admin use).
  • !gtg @user: Manually approve user (Good To Go) - creates SSO + adds to groups.
  • !pending: Show pending verification requests & safety number changes.

User Management:

  • !addto <group#|keywords|-c category> @user: Add users to group(s) (admin only).
  • !sc: Show pending requests & safety number changes.
  • !sn @user: Trigger safety number verification for a user. Use when auto-detection fails or to force re-verification.
  • !sngtg @user: Mark a user’s safety number as verified (Good To Go). Use when identity is already verified (e.g., in person/DM).
  • !trust @user: Trust a user’s Signal identity.
  • !remove @user: Remove a user from all groups.
  • !clearroom confirm: Remove all non-admins from the current group.
  • !reminders all: List all pending reminders system-wide (admin only).
  • !deletereminder <id>: Delete any reminder by ID (admin only).

Group Management:

  • !groups --all: Show ALL groups (approved and unapproved).
  • !addgroup: Approve current group for the !groups listing (run IN the group).
  • !removegroup <#|name>: Remove a group from the approved list.
  • !category add <category>: Add current group to a category.
  • !category remove <category>: Remove current group from a category.
  • !refreshgroups: Force refresh group cache from signal-cli.

Group Visibility (Whitelist): By default, groups are NOT shown in !groups. Admins must run !addgroup inside a group to approve it for community visibility. This is a security measure to prevent test groups or private groups from appearing in public listings.

Career Board (!job):

All career board commands are unified under !job <subcommand>:

CommandDescription
!jobShow all career board subcommands
!job post <description>Post an opportunity (AI extracts details from free-form text)
!job search [keywords] [--remote]Search active job listings
!job seek <skills/goals>Set up your career profile (AI-assisted)
!job detail <id>View full details of a job listing
!job profileView/edit your career profile
!job profile set <field> <value>Update a profile field (title, skills, clearance, location, military, bio)
!job seekingSet your availability to “actively looking”
!job hiringSet your availability to “hiring”
!job mineList your posted job listings
!job fill <id>Mark a job listing as filled

Posting an opportunity:

!job post Senior pen tester at CrowdStrike in Austin, TS/SCI, remote OK. john@crowdstrike.com
!job post Title | Company | Location | Clearance | Contact | Description

The bot uses AI to extract job details from free-form text. If any required fields are missing (title, company, contact), the bot DMs you to collect them one at a time, then shows a preview for confirmation before posting.

Setting up a career profile:

!job seek cybersecurity, python, kubernetes. TS/SCI. Veteran. Looking for remote work.
!job seek help me set up my profile

Career profiles are visible only to verified community members. Visit https://jobs.irregulars.io/my/profile to edit your full profile.

Admin only:

  • !backfill-profiles [--dry-run]: Batch-create draft career profiles from stored intro text. See Admin Commands.

Web interface: https://jobs.irregulars.io

  • !createuser @user email: Create an SSO account for a mentioned user.
  • !createuser email name: Create an SSO account with a name.
  • !accountinvite [hours] [-c 1]: Create an SSO invite link.
  • !announce [groups] [-t time] [-dm] message: Announce a message.
  • !announcements: List pending announcements.
  • !cancelannounce <id>: Cancel a scheduled announcement.

See Translation for full documentation.

On-demand translation:

  • !translate <language> <text>: Translate text to a language.
  • !tr <language>: Reply to a message to translate it.
  • !tr <text>: Translate to English (default).

Babel Fish relay (any user):

  • !trelay <my_lang> <room#/name>: Create a relay for yourself (group defaults to English).
  • !trelay <my_lang> <group_lang> <room#/name>: Specify both languages.
  • !trelay <my_lang> <group_lang> <room#/name> @user1 @user2: Multi-user relay room.
  • !trelay --anon <my_lang> <room#/name>: Anonymous relay (group names instead of display names).
  • !relay end: End your relay (in relay room).
  • Aliases: !request_t, !reqt

Translation admin:

  • !relay status: List active relays (admin).
  • !relay end @user: End another user’s relay (admin).
  • !room translate on <language>: Auto-translate non-target-language messages (admin).
  • !room translate off: Disable auto-translate (admin).