Para a saudação, muitas vezes o serviço de registro de canal fornece isso. O ChanServ do Foonetic tem uma opção chamada "ENTRYMSG":
<grawity> help set entrymsg -ChanServ- ***** ChanServ Help ***** -ChanServ- Help for SET ENTRYMSG: -ChanServ- -ChanServ- SET ENTRYMSG allows you to change or set -ChanServ- a message sent to all users joining the -ChanServ- channel. -ChanServ- -ChanServ- Syntax: SET <#channel> ENTRYMSG [message] -ChanServ- -ChanServ- Example: -ChanServ- /msg ChanServ SET #support ENTRYMSG Welcome to #support. Please do not paste more than 5 lines. -ChanServ- ***** End of Help *****
O backlog é mais difícil. A maioria dos servidores de IRC não possui nenhum tipo de registro de mensagens - tanto por razões de privacidade quanto por desempenho - para que o usuário nunca saiba quais mensagens foram enviadas antes de ingressar no canal. Alguns usuários usam bouncers IRC (como ZNC ou psyBNC) que ficam no canal 24/7 e enviam as últimas mensagens quando o usuário se conecta ao bouncer. Clientes baseados na Web, como o Mibbit, fazem isso com um log compartilhado - desde que pelo menos um usuário do Mibbit esteja no canal, todos os outros usuários possam receber o backlog.
Além disso, até recentemente, o IRC não tinha como transmitir os timestamps originais, portanto, se o histórico fosse reproduzido, todas as mensagens antigas apareceriam como enviadas de uma vez, com um feio "[12:34]" adicionado ao texto da mensagem. Hoje em dia há uma extensão opcional para isso, mas apenas o segurança do ZNC e talvez 2–3 clientes o suportam ainda. Mas ainda funciona apenas quando o replaying é feito pelo próprio servidor (ou bouncer), não quando feito por um bot.
Então, você pode obter isso apenas por a) escrever um bot que forneça um backlog a pedido, ou b) pedir que os usuários usem um bouncer de IRC que forneça esse recurso.