Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

@mulmobridge/irc

Experimental — please test and report issues.

IRC bridge for MulmoClaude. Connects to any IRC server (Libera.Chat, OFTC, self-hosted, etc.).

Setup

No API keys or bot registration needed — just pick a nickname and connect.

# Testing with mock server
npx @mulmobridge/mock-server &
IRC_SERVER=irc.libera.chat \
IRC_NICK=mulmo-bot \
IRC_CHANNELS=#your-channel \
MULMOCLAUDE_AUTH_TOKEN=mock-test-token \
npx @mulmobridge/irc

# With real MulmoClaude
IRC_SERVER=irc.libera.chat \
IRC_NICK=mulmo-bot \
IRC_CHANNELS=#your-channel \
npx @mulmobridge/irc

How it works

  • In channels: the bot responds only when mentioned (mulmo-bot: what is 2+2?)
  • In private messages: the bot responds to everything

Environment Variables

Variable Required Description
IRC_SERVER Yes e.g. irc.libera.chat
IRC_NICK Yes Bot nickname
IRC_CHANNELS Yes CSV of channels (e.g. #mulmo,#test)
IRC_PORT No Default: 6697 (TLS) or 6667 (plain)
IRC_TLS No true (default) or false
IRC_PASSWORD No NickServ or server password
MULMOCLAUDE_API_URL No Default http://localhost:3001
MULMOCLAUDE_AUTH_TOKEN No Bearer token
IRC_BRIDGE_DEFAULT_ROLE No Role id to seed new bridge sessions with (e.g. coder, general). Applied ONLY when a irc session first appears — once the user switches role via /role <id> the session's own role wins. Unknown role ids silently fall back to the server's default with a warn log.
BRIDGE_DEFAULT_ROLE No Same as above but shared across every bridge. Transport-specific IRC_BRIDGE_DEFAULT_ROLE wins when both are set.

Auth token persistence across server restarts

The MulmoClaude server regenerates a fresh bearer token on every startup and writes it to ~/mulmoclaude/.session-token. The bridge reads that file once at launch and keeps the token in memory — so if the server restarts while the bridge is running, the bridge keeps using the old token and every API call returns 401, silently.

Fix: set MULMOCLAUDE_AUTH_TOKEN to the same long random value on both the server and the bridge. The server uses it verbatim instead of regenerating, so the token survives restarts and the bridge stays authenticated.

# Server (one-time setup — same value across restarts)
MULMOCLAUDE_AUTH_TOKEN=long-random-string yarn dev

# Bridge (separate process / machine — same value)
MULMOCLAUDE_AUTH_TOKEN=long-random-string \
  <bridge-specific-envs> \
  npx <this-package>@latest

Recommended: at least 32 characters of random data (the server logs a warning at startup for shorter values).

Ecosystem

Part of the @mulmobridge/* package family.

Shared libraries:

Bridges (one npm package per platform):

Related projects

Published from the MulmoClaude monorepo by Receptron.

  • MulmoClaude — an open-source AI assistant platform that runs on your own computer. Claude Code as the engine, a personal wiki for long-term memory, schema-driven collections for your data, and chat that summons the right GUI (markdown, charts, forms, spreadsheets, wikis) for each task.
  • MulmoTerminal — a terminal-first cockpit for running many AI coding agents in parallel. One roster showing every session's summary and PR status, tmux-backed session persistence, git-worktree isolation, one-click PRs, and mobile push with remote reply.
  • MulmoTerminal manual — setup, workflows, feature reference, configuration, mobile notifications, and alternative / local model providers. Available in English and Japanese.

License

MIT