nixrc

mIRC scripting. For the modern web.

Run classic mIRC scripts in browsers and server runtimes, with a working transpiler MVP and modern tooling.

mIRC scripting was ahead of its time. Event-driven, socket-native, with picture windows and a tiny feedback loop that invited experimentation.

I built nixrc to carry that model forward: browser runtime, server runtime, and a transpiler that turns scripts into importable TypeScript modules.

Browser Runtime

Picture windows on Canvas and event handlers that feel native to mIRC scripting.

on *:paint:@clock:{
  drawline -r @clock $rgb(77,166,255) 2 50 50 80 20
}

Transpiler

Compile `.mrc` scripts into typed modules with source maps, watch mode, and optional `.d.ts` output.

nixrc compile regx.mrc --out dist --emit-dts --watch
# dist/regx.ts (+ .map + .d.ts)

Server-Side

Run bots and IRC automations on Bun, Node.js, or Deno without rewriting core script logic.

import { Runtime } from "nixrc/server";
const bot = new Runtime();
bot.load("greet.mrc");

Playground

A live editor for mIRC scripts with instant execution and shareable links.

https://nixrc.dev/play/?script=clock.mrc

Why nixrc?

mIRC scripting taught me that good tooling is about momentum. You write a few lines, trigger an event, and immediately see behavior. That creative loop still matters.

nixrc keeps that spirit but makes it portable: scripts that run in the browser, in server runtimes, and in modern build pipelines without losing the original model.

Current Progress

Stay in the Loop

nixrc is live. Get notified of major updates, stable releases, and breaking changes. Low volume, no noise.

⭐ Star on GitHub