Production IRC automation

Mediabot v3

A long-running IRC platform for community operations, memory and conversation — engineered in Perl, persisted in MariaDB and observable in production.

Stable 3.5 is the supported release. The active 3.6dev line is consolidating the plugin platform, command routing and per-channel behaviour without trading away operational safety.

Supported release 3.5 stable

Production-ready runtime, deployment tooling and documented upgrade path.

Browse stable source →
Active development 3.6dev

Plugin API v3, one command doorway and finer per-channel controls.

Build a plugin →
What it does

One runtime, four operational layers

01

IRC runtime

Resilient network handling, channel policy, roles, timers and controlled multi-network operation.

02

Community memory

Quotes, notes, reminders, facts, history and achievements backed by durable MariaDB state.

03

Conversation

Per-channel Hailo brains plus guarded OpenAI, Claude and Gemini helpers where communities opt in.

04

Operations

Systemd deployment, schema migrations, diagnostics, structured logs and Prometheus metrics.

Engineering archive

Release and development notes

All GitHub releases ↗

Major refactoring milestone

After a long (very long) refactoring campaign, Mediabot finally migrated most of its command handling to a proper Context-based architecture. Yes, this includes: removing years of implicit state, surviving strict mode, fixing bugs that existed longer than some IRC networks, and arguing endlessly with ChatGPT (which…

Read the full note →

Charset and schema cleanup

I had to do this for a long time, sorry guys ALTER TABLE CHANNELLOG MODIFY ts DATETIME NOT NULL DEFAULT CURRENTTIMESTAMP; ALTER TABLE RESPONDERS MODIFY responder VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4unicodeci, MODIFY answer TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4unicodeci; ALTER TABLE CHANNEL MODIFY…

Read the full note →
Public repository

Recent GitHub activity

Updated 08/10/2026, 18:49:16