WeeChat Add-on + Integration: Perpetual IRC Client with DCC Support

WeeChat Add-on + Integration: A Perpetual IRC Client with DCC Support for Home Assistant

Hey everyone!

I’m excited to share a project I recently developed to scratch a very specific itch: running a headless, always-on IRC client with DCC file transfer capabilities directly within Home Assistant.

:dart: The Problem

I wanted a perpetually running IRC client that I could access remotely whenever needed, with the ability to automatically accept DCC downloads. While there are other IRC solutions available for Home Assistant (like The Lounge), I couldn’t find any addon that supported DCC transfers, which was essential for my use case.

:hammer_and_wrench: The Solution: Two Components

I built this as a two-part system:

1. WeeChat Add-on (GitHub)

A headless WeeChat IRC client that runs as a Home Assistant add-on, featuring:

  • WeeChat Relay Server - Access your IRC sessions remotely via Glowing Bear (web), mobile apps, or another WeeChat terminal
  • Automatic DCC Downloads - Configure auto-accept rules for incoming file transfers
  • Persistent Sessions - Your IRC connections stay alive 24/7
  • Multi-architecture Support - Works on aarch64, amd64, and armv7

2. WeeChat Monitor Integration (GitHub)

A lightweight custom integration that bridges WeeChat activity into Home Assistant:

  • Download Statistics - Track daily and total download counts/volumes
  • Last Download Sensor - See the most recent file, size, and “time ago”
  • IRC Connection Stats - Monitor connected servers, channels, and private chats
  • Services - Register downloads and update metrics via Home Assistant services
  • Notifications - Optional built-in notifications when downloads complete
  • Automation Ready - Build complex workflows based on download activity

:camera_flash: Screenshots

WeeChat running with relay active:

Home Assistant integration sensors:

:sparkles: Key Features

  • Remote Access: Connect via Glowing Bear (web interface), mobile IRC apps, or terminal from anywhere
  • DCC File Transfers: Automatically accept and manage file downloads
  • Home Assistant Integration: Full visibility of your IRC activity and downloads
  • Automation Support: Create notifications, track bandwidth usage, or trigger actions based on downloads
  • Simple Setup: Standard add-on and HACS installation process

:rocket: Installation

Add-on Installation

  1. Add my add-on repository to Home Assistant:

    https://github.com/Stullemon/hassio-addons
    

    Or use this button: Add Repository

  2. Install the WeeChat add-on from your Add-on Store

  3. Configure your relay settings (port, password)

  4. Start the add-on

Integration Installation (HACS)

  1. Add this as a custom repository in HACS:

    https://github.com/Stullemon/hassio-weechat-integration
    

    Category: Integration

  2. Install “WeeChat Monitor” from HACS

  3. Restart Home Assistant

  4. Add the integration via Settings → Devices & Services

  5. Enable the monitoring script option in the WeeChat add-on configuration

Full documentation is available in both repositories.

:video_game: Use Cases

This setup is particularly useful if you:

  • Want a persistent IRC presence without running a separate machine
  • Need automatic DCC file downloads (think media sharing communities, software repositories)
  • Want Home Assistant to track and notify you about IRC activity
  • Prefer accessing IRC through modern web/mobile clients rather than traditional terminals
  • Want to automate actions based on downloads (e.g., notifications, file processing)

:crystal_ball: Example Automation

Here’s a simple automation that notifies you when a large download completes:

trigger:
  - platform: state
    entity_id: sensor.last_download
condition:
  - condition: template
    value_template: "{{ state_attr('sensor.last_download', 'size_bytes') | int > 1073741824 }}"
action:
  - service: notify.mobile_app
    data:
      message: "Large file downloaded: {{ trigger.to_state.state }} ({{ state_attr('sensor.last_download', 'size_formatted') }})"

:dart: Who Is This For?

This is definitely a niche solution aimed at IRC users who want:

  • A perpetually running, DCC-capable IRC client
  • Integration with their Home Assistant ecosystem
  • Remote access to IRC sessions from any device
  • Automated tracking of download activity

If you’re just looking for a general IRC client without DCC support, The Lounge addon might be simpler for your needs.

:warning: Current Status

Both projects are in beta/early release. They work well for my use case, but I’d love feedback from the community to help improve them. I’m planning to submit the integration to the official HACS default repositories once I get some user testing and feedback.

:handshake: Feedback Welcome!

This is my first public Home Assistant project, so I’d really appreciate any feedback, bug reports, or feature suggestions. Feel free to open issues on GitHub or comment here.

:memo: License

Both projects are MIT licensed and open source.

:warning: Disclaimer

  • These projects are not directly or indirectly affiliated with the official WeeChat project. I merely make use of their software for this use case.
  • I employed ChatGPT and Claude Sonnet LLMs to create these projects. It helped me get into a bunch of technology I hadn’t used before. I reviewed the code to the best of my abilities and also did some adjustments where I thought they’d be necessary. I also used Claude to craft this initial posting because I felt it was more efficient.

Thanks for reading! Let me know if you have any questions or run into any issues. I’m happy to help get you set up. :slightly_smiling_face:

FYI if you used AI to create this project, it will likely be removed in the future if you do not disclose that with references.

Is this like Napster, Artificially Assisted? The RIAA are still around.

Hello petro, Yes, I did. I intended to disclose that but forgot about it along the way. I’ll update post and readme.md accordingly. Not fully AI but I was trying to be efficient about it. :grin:

Thanks for mentioning!

Hello IOT7712, It is not. One can use it any which way they want and I take no responsibility for how people use it. I just found The Lounge to be missing some features I was using in other IRC clients I had running on my former 24/7 workstation. When I wanted to move it all to my HAOS RasPi I wanted to retain them.

Updated initial post and readme MD’s to reflect my use of LLM.

Just out of curiosity (and I wouldn’t mind a response in private to not go too much offtopic): How did you recognize the use of LLM, @petro ?

You got me to laugh out loud. The template seems to be set in stone. Huge bold titles, excessive bolding, the same structure, anybody would think it was set up for consistency - oh wait, that is exactly what a LLM does, regurgitating what it has found in a pretty format, often wrong, often outdated, but beautifully spelt.

Maybe LimeWire vs RIAA was before your time - they argued the same thing but is was considered aiding and abetting criminal activity. LimeWire lost, and has faded into history. Piracy still flourishes, especially where people perceive they are being ripped off, not receiving value for money and too many fingers in the financial pie.

Yeah, that’s true. If it’s any consolation, I reviewed it all myself and was mostly content with it. I wouldn’t have been as wordy and fancy in formatting but I thought I wasn’t the first to show off a new add-on, so why bother and reinvent the wheel?! I found documentation is one of the few things where LLM can be a great starting point to, well, creating any. Too often I didn’t document a thing beyond my own code and few years down the line I remain the only knowledgeable person. :man_shrugging:

Overlooked this earlier. Sorry for double post.

Not really before my time and I am well aware. The difference is that IRC is Internet Relay Chat. Many software projects and gamers were using it before things like discord came along. There’s a myriad of networks and ways to use it. The add-on just runs the client, the integration allows for monitoring some aspects in HA. Surely, it can be used for unlawful activities but the same can be said for any browser, (S)FTP tool, etc. I am also aware of HA add-ons for torrent and other P2P networks - which can be used to lawfully share content as well as otherwise, obviously.

I really don’t want to start into that kind of piracy discussion. If you see any violation to a community standard that I wasn’t aware of, kindly point me to the relevant rules. Otherwise I would hope someone else may find this useful - one way or another.