ingenue
project name: ingenue
project url: https://github.com/seajaysec/ingenue
author: seajay
description: responsive browser ui for norns. runs on the device alongside maiden.
discussion url: https://llllllll.co/t/ingenue-a-modern-responsive-web-interface-for-norns/74794
documentation url: https://github.com/seajaysec/ingenue/blob/main/README.md
tags: utility

ingenue

a responsive browser ui for monome norns. it runs on the device, opens from any browser on your network, and works on phone, tablet, and desktop.

i've been using my norns for years and absolutely love it, and maiden is a fantastic tool, but often when i'm making music it's specifically so i'm not at my computer, and i kept wishing i could reach my phone to install scripts, edit code, manage files, tweak params. so, i built ingenue. it's a browser editor served from the device, rebuilt to be responsive, plus a few other bits i've been scripting over the years that seemed like they'd have a nice home in a responsive web ui.

this doesn't replace maiden, or touch it. ingenue installs as its own always-on service on :7777 and the two sit side by side, so there's zero risk to your setup. if you don't like it, run the uninstall script or remove the folder and you're exactly where you started.

poke around without a norns: seajaysec.github.io/ingenue is a static demo (every device call is faked, so nothing is connected to a real norns, but the ui is the same one that runs on your device).

editor

install

from maiden's matron REPL (no terminal needed):

;install https://github.com/seajaysec/ingenue

then on norns, SELECT → ingenue and run it once to finish setup.

or over SSH:

curl -fsSL https://raw.githubusercontent.com/seajaysec/ingenue/main/install.sh | bash

either way it discovers your dust tree and runs ingenue as a persistent service on :7777 (always up, like maiden, survives reboots, auto-restarts). then open http://norns.local:7777/ (or http://<your-norns-ip>:7777/) from any device on your network.

works on any norns. the installer prefers a systemd service; on older ports without systemd it falls back to a boot line you can add. you can override discovery with INGENUE_DUST=/path/to/dust.

the parts i'm most happy with

bonus, for the modern norns porting crowd: on a 64-bit norns the community SuperCollider plugins ship as 32-bit, so engines load but play silent. ingenue detects that and offers to install matching 64-bit builds it ships. (more in DESIGN-NOTES.md.)

🖥 Desktop
editor + live REPL ![editor](https://raw.githubusercontent.com/seajaysec/ingenue/HEAD/screenshots/desktop/editor.png)
file browser: dust tree, with select, upload, download, mkdir, rename, delete ![file browser](https://raw.githubusercontent.com/seajaysec/ingenue/HEAD/screenshots/desktop/file-browser.png)
PARAMS: nested groups, presets, PSET, note-name sliders ![params](https://raw.githubusercontent.com/seajaysec/ingenue/HEAD/screenshots/desktop/params.png)
repository manager: tag filter, cards, embedded demos ![repository manager](https://raw.githubusercontent.com/seajaysec/ingenue/HEAD/screenshots/desktop/repo.png)
GitHub discovery: facet-classified results every norns repo on GitHub, badged by facet (`script` / `mod` / `library` / `engine`) so mods and shared libraries are first-class. already-cataloged or installed repos are skipped by default. click any author to see everything they've made for norns. ![github discovery with facet badges](https://raw.githubusercontent.com/seajaysec/ingenue/HEAD/screenshots/desktop/discover.png)
mods: installed + installable community mods ![mods](https://raw.githubusercontent.com/seajaysec/ingenue/HEAD/screenshots/desktop/mods.png)
📱 Phone
editor (with the in-app update toast) ![phone editor](https://raw.githubusercontent.com/seajaysec/ingenue/HEAD/screenshots/phone/editor.jpg)
file browser ![phone file browser](https://raw.githubusercontent.com/seajaysec/ingenue/HEAD/screenshots/phone/file-browser.jpg)
matron REPL: live link to the device ![phone matron](https://raw.githubusercontent.com/seajaysec/ingenue/HEAD/screenshots/phone/matron.jpg)
PARAMS ![phone params](https://raw.githubusercontent.com/seajaysec/ingenue/HEAD/screenshots/phone/params.jpg)
scripts: installed / available / discover ![phone scripts](https://raw.githubusercontent.com/seajaysec/ingenue/HEAD/screenshots/phone/repo.jpg)
configuration + themes ![phone configuration and themes](https://raw.githubusercontent.com/seajaysec/ingenue/HEAD/screenshots/phone/themes.jpg)

layout

stretch goals (PRs welcome)

more in DESIGN-NOTES.md.

credits

built for norns and the monome community. 64-bit SuperCollider UGen builds from seajaysec/sc-plugins-arm64.

LLM disclosure

the code for ingenue was written with substantial help from an AI coding assistant (Claude). i directed the design and architecture, set the feature priorities, and did all the testing and verification myself on real norns hardware, as well as on a 64-bit norns OS port.

flagging this plainly so everyone can decide for themselves how they want to engage with it.