Skip to content

Admin Commands

Commands restricted to configured admin users.

Approve a user as “Good To Go” - add to community groups.

!gtg @user

Example:

!gtg @NewMember

What Happens:

  • User is added to standard community groups
  • User is marked as verified in the database
  • Confirmation sent to admin

Show pending join requests and safety number changes.

!pending

Response: Lists users waiting for approval and any safety number changes.


Trigger safety number verification for a user.

!sn @user
!safetynumber @user

Use Case: When Signal shows a safety number change warning.


Approve a user after safety number verification.

!sngtg @user
!sngoodtogo @user

Remove a user from all groups (usually after safety number issues).

!remove @user

Warning: This removes the user from ALL groups where the bot has admin rights.


Remove all non-admin members from the current group.

!clearroom confirm

Warning: Destructive action. Requires confirm parameter.


Permanently destroy a Signal group: removes all members, bot leaves, marks group dead in DB.

Dry-run by default — shows a preview without confirm.

!groupdestroy Preview destroying current group
!groupdestroy <name or #> Preview destroying by name/number
!groupdestroy confirm Execute on current group
!groupdestroy <name or #> confirm Execute on target group
!groupdestroy --force confirm Override 20-member soft limit

Safety limits:

  • Soft limit: 20 members (override with --force)
  • Hard limit: 50 members (cannot be overridden)

What it does:

  1. Removes all non-bot members from the group
  2. Bot leaves the group
  3. Marks group inactive in database (member_count → 0)
  4. Deactivates all membership records
  5. Unlists from approved groups if present

Warning: This is irreversible. Always review the dry-run preview first.


Remove a group from the community directory (!groups listing). Does not destroy the group or remove members — just hides it from the listing.

!unlistgroup Unlist current group
!unlistgroup <name or #> Unlist by name/number

Scan for and remove deleted/abandoned Signal accounts from community groups.

!audit scan Scan all members for unregistered accounts
!audit scan --limit 500 Scan with member limit
!audit scan-group Scan current group only
!audit trust Scan using trust method (less reliable)
!audit report Show latest scan results
!audit remove Preview removal (dry run)
!audit remove confirm Execute removal (notifies groups)
!audit remove confirm --quiet Execute silently (no group notifications)

Workflow: scanreportremoveremove confirm

Detection: Uses sendReceipt to detect UNREGISTERED_FAILURE responses from Signal’s servers. More reliable than trust-based detection.

Notifications: By default, each affected group is notified about the cleanup. Use --quiet to suppress. All removals are logged to the admin activity feed on irregulars.io.

See Account Audit for full documentation.


Run a safety check on the group - identify any flagged users.

!safetycheck
!sc

Create an SSO account for a user (Authentik integration).

!createuser @user email@example.com
!createuser email@example.com "Display Name"

Examples:

!createuser @JohnDoe john@example.com
!createuser alice@example.com "Alice Smith"

Requirements: Authentik API credentials configured.


Generate an SSO account creation invite link.

!accountinvite
!accountinvite <hours>
!accountinvite <hours> -c <count>

Examples:

!accountinvite # 24-hour, single-use invite
!accountinvite 48 # 48-hour invite
!accountinvite 72 -c 5 # 72-hour invite, 5 uses

Response: Returns a one-time invite URL.


Send an announcement to groups.

!announce [groups] [-t time] [-dm] message
!announce -h | --help | help

Examples:

!announce 1,2,3 Important update for these groups only
!announce tech,cyber Security alert for tech groups
!announce confirm All groups meeting at 5pm today # ALL groups requires "confirm"
!announce -t 24h 5,7 Reminder tomorrow at this time
!announce -dm 5 Check your email (DM each member)

Options:

  • [groups] - Group numbers (1,2,3) or keywords (tech,cyber)
  • -t <time> - Schedule for later (e.g., “24h”, “2024-01-15T14:00”)
  • -dm - Send as DM to each member
  • -h, --help - Show help

Safety:

  • Announcing to ALL groups requires the word “confirm” in the message
  • Shows a preview of affected groups before sending

List pending/scheduled announcements.

!announcements

Cancel a scheduled announcement.

!cancelannounce <id>

Example:

!cancelannounce 42

Batch-create draft career profiles for existing verified members who don’t have one yet. Uses AI to extract structured career data (name, military status, clearance, skills, etc.) from stored introduction text.

!backfill-profiles
!backfill-profiles --dry-run

Options:

  • --dry-run — Preview what would be created without actually creating profiles

What Happens:

  1. Queries all verified members with stored intro text
  2. For each member without a career profile:
    • AI extracts career data from their intro (Local AI → OpenAI → regex fallback)
    • Creates a draft profile on jobs.irregulars.io
  3. Reports results: created, skipped (existing), skipped (no intro), failed

Example Output:

📋 Career Profile Backfill (DRY RUN)
Found 47 verified member(s) with intro text.
Would create: John Smith (local_ai)
Would create: Jane Doe (openai)
Would create: Bob Wilson (regex)
Results:
✅ Would create: 32
⏭️ Skipped (existing profile): 10
⏭️ Skipped (no/short intro): 5

Notes:

  • Always run --dry-run first to preview
  • Rate-limited (200ms between API calls) to avoid overloading AI providers
  • Profiles are created as drafts — members can edit or delete via jobs.irregulars.io/my/profile/edit
  • See Member Onboarding for how profiles are auto-created during the normal onboarding flow

View or manage join requests.

!req
!request

Response: Shows pending community join requests.


VariableDescription
ADMIN_PHONE_NUMBERSComma-separated admin phone numbers
ADMIN_UUIDSComma-separated admin UUIDs
AUTHENTIK_BASE_URLAuthentik SSO base URL
AUTHENTIK_API_TOKENAuthentik API token
AUTHENTIK_INVITE_FLOW_IDInvite flow UUID
AUTHENTIK_INVITE_FLOW_SLUGInvite flow slug

  1. Admin Verification: Commands check both phone number and UUID
  2. Audit Trail: All admin actions are logged
  3. Group Context: Most admin commands require group chat (not DM)
  4. Confirmation Required: Destructive actions require explicit confirmation