MCPSERV.CLUB
Kiwi IRC

Kiwi IRC

Self-Hosted

Web‑based, fully static IRC client for any network

Active(72)
931stars
0views
Updated Aug 14, 2025
Kiwi IRC screenshot

Overview

Discover what makes Kiwi IRC powerful

Kiwi IRC is a **fully static, web‑based IRC client** that can be dropped into any HTTP server or CDN without a backend component. It is written in **JavaScript** and built with **Vue JS**, **Webpack**, and **Babel**, resulting in a lightweight bundle (~400 KB gzipped) that runs natively in the browser. The client fetches a single `config.json` at runtime, allowing dynamic adjustment of networks, themes, and plugin sets without redeploying the static assets.

Frontend

Runtime Configuration

Networking

Data Storage

Overview

Kiwi IRC is a fully static, web‑based IRC client that can be dropped into any HTTP server or CDN without a backend component. It is written in JavaScript and built with Vue JS, Webpack, and Babel, resulting in a lightweight bundle (~400 KB gzipped) that runs natively in the browser. The client fetches a single config.json at runtime, allowing dynamic adjustment of networks, themes, and plugin sets without redeploying the static assets.

Technical Stack & Architecture

  • Frontend: Vue JS 2.x (component‑based, reactive UI), Webpack for module bundling, Babel for ES2015+ transpilation.
  • Runtime Configuration: A JSON file (/static/config.json) defines networks, layout, theming, and plugin registry. The client loads this via XHR/Fetch on startup.
  • Networking: Supports three connection modes:
    1. Direct WebSocket to an IRC server exposing the IRCWS protocol.
    2. Proxy via webircgateway (a WebSocket bridge to traditional IRC servers).
    3. Persistent sessions via KiwiBNC, a dedicated bouncer that maintains WebSocket connections.
  • Data Storage: Uses the browser’s localStorage for session persistence (last channel, nick, network list). No server‑side database is required unless an external BNC or gateway is used.

Core Capabilities & APIs

  • Plugin Architecture: Plugins are plain JavaScript modules that register hooks (onMessage, onJoin, etc.) and UI components. The built‑in plugin system supports file uploads, video calling (WebRTC), custom commands, and more. Developers can ship their own plugins or extend existing ones via the public API exposed in kiwiirc.js.
  • Event Bus: A global event emitter (kiwi.events) allows external scripts to listen for IRC events or trigger actions (e.g., sending a message programmatically).
  • Theming: CSS variables and a theme JSON allow runtime skinning. Custom themes can be loaded via the config file.
  • RESTful Hooks: While the core is client‑only, integration with external services can be achieved by embedding the Kiwi iframe and communicating through postMessage or via a custom plugin that exposes webhooks.

Deployment & Infrastructure

Because Kiwi is static, deployment is trivial:

  • Copy the dist/ folder to any web server (Apache, Nginx, Caddy) or host it on a CDN.
  • Optionally wrap the client in an iframe for embedding into other sites.
  • For scalability, serve the static bundle via HTTP/2 and cache aggressively. Connection scaling is handled by the chosen WebSocket backend (webircgateway or KiwiBNC), which can be horizontally scaled behind a load balancer.

Containerization is straightforward: a minimal nginx image can serve the static files, and separate containers can host webircgateway or KiwiBNC. Kubernetes deployments typically consist of:

  1. nginx pod for the client.
  2. webircgateway pod(s) behind a Service exposing port 443 for WebSocket.
  3. Optional kiwibnc pod(s) if persistent sessions are required.

Integration & Extensibility

  • Plugin Ecosystem: The official plugin registry is hosted on GitHub; developers can fork, modify, or publish new plugins. The API is documented in the wiki, detailing hook signatures and configuration options.
  • Webhooks & Callbacks: Plugins can expose REST endpoints or WebSocket events, enabling integration with chatbots, CI pipelines, or monitoring dashboards.
  • Customization: Beyond plugins, the UI can be restructured by editing Vue components or injecting CSS. The configuration file allows per‑network overrides, custom command prefixes, and advanced layout tweaks.

Developer Experience

  • Documentation: The project’s wiki provides a clear guide for building from source, configuring networks, and developing plugins. API references are concise.
  • Community: Active GitHub issues, a dedicated Discord channel, and frequent updates ensure quick support. The license is MIT, encouraging commercial use without licensing fees.
  • Modularity: The separation of configuration and code means that developers can rapidly prototype new features or themes without touching the core build pipeline.

Use Cases

  1. Self‑Hosted IRC for Enterprises – Deploy Kiwi as an internal chat portal with custom branding and file sharing, backed by a private IRC network or BNC.
  2. Embedded Chat Widgets – Embed the client into product landing pages or support portals to provide real‑time IRC access without a full‑featured desktop client.
  3. Educational Platforms – Use Kiwi to expose IRC channels for class discussions, with plugins adding video conferencing or collaborative editing.
  4. Open‑Source Projects – Host a lightweight IRC interface for community channels, with plugins enabling automated bot notifications or CI alerts.

Advantages Over Alternatives

FeatureKiwi IRCCompetitor (e.g., Mibbit)
Static Deploy✔️ (no server)❌ (requires backend)
Open Source & MIT✔️❌ (proprietary)
Plugin Extensibility✔️Limited
Scalable WebSocket Backend✅ (webircgateway/kiwibnc)
Custom Themes & Layouts✔️
**Direct

Open SourceReady to get started?

Join the community and start self-hosting Kiwi IRC today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
apis-services
License
APACHE-2.0
Stars
931
Technical Specs
Pricing
Open Source
Database
None
Supported OS
Linux
Author
kiwiirc
kiwiirc
Last Updated
Aug 14, 2025