Sno Station
Sno Station is your agents' workstation: open-source software that turns the AI agents you already run into one squad on your own machine. Two heads are better than one, and they get better with every
Discover, search and install scripts for monome norns, grid, iii, crow and teletype. Handmade or AI-assisted, always disclosed.
PluginsJavaScript · CSSGitHub @carlosedpOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
splines is a catalog of Norns, Grid and all ecosystem around them...
Taken from the repository README
Loading the full README.
Read the full README ↗A community catalog of scripts for monome norns, grid, iii, crow and teletype, published as a static site on GitHub Pages. Handmade and AI-assisted scripts are both welcome, and every entry discloses which it is.
scripts/<name>/index.md with YAML front matter and free-form notes. A platform field says where it runs.?tag=grid&req=crow).catalog.json uses the same shape as monome's community.json.No framework: one Node build script and two dependencies (yaml, marked).
npm install
npm run import -- --only community --limit 24 # seed some entries (optional)
npm run validate # check all entries
npm run build # → dist/
npm run serve # → http://localhost:8080/ (plus basePath, if set)
npm run new -- my-script # scaffold scripts/my-script/index.md (--platform iii|crow|teletype)
scripts/<name>/index.md one entry per script, any platform (+ optional screenshots)
templates/entry.md entry template
src/assets/ style.css, app.js (filtering), favicon
src/about.md about / submit / maiden page
tools/
lib.mjs config, platforms, entry loading, validation rules
validate.mjs schema + duplicates; --online checks repos exist and have a root .lua
enrich.mjs stars / last push / license / cover / README → .cache/
import.mjs pull new entries from external sources
from-issue.mjs submit/claim issue form → entry (used by issue-entry.yml)
health.mjs follow moved repos, flag deleted/archived ones
build.mjs HTML pages, catalog.json, index.json, sitemap (pages in tools/site/)
serve.mjs local preview server
site.config.json title, URLs, giscus, import sources
---
name: my-script # = folder name = repo name, exact case (install folder on norns); unique ignoring case
platform: norns # norns | iii | crow | teletype (default norns; only norns goes into catalog.json)
kind: mod # optional: script (default) | mod (norns only; repo has lib/mod.lua) | library (code for other scripts; not in catalog.json)
repo: https://github.com/you/my-script
author: you
description: one line, ≤160 chars
tags: [sequencer, generative]
requires: [grid, midi] # optional hardware filter
ai: assisted # none | assisted (unknown = imported only)
license: MIT # optional, otherwise read from GitHub
discussion: https://... # optional
docs: https://... # optional
cover: https://... # optional screenshot
---
Optional short "catalog notes", shown above the repo's README on the script page.
siteUrl and basePath in site.config.json. For a custom domain, set cname, use siteUrl: https://your.domain and basePath: "".deploy.yml builds on every push to main and daily, to refresh stars and last-push dates.import.yml runs weekly (or manually) and opens a PR with newly found scripts. health.yml runs weekly too: a PR that follows moved repos and sets status: gone / status: archived on entries whose repo was deleted or archived (shown as ⚠️, with a tooltip). Removing an entry is decided in review.issue-entry.yml turns [submit] and [claim] issues (forms in .github/ISSUE_TEMPLATE) into PRs and comments back on the issue. PRs opened by Actions don't trigger validate.yml, so that workflow validates the entry itself.claude.yml (optional) lets maintainers write @claude add https://github.com/owner/repo to the catalog in an issue or comment; Claude Code follows .claude/skills/add-script/SKILL.md and opens a PR, and @claude comments on that PR revise it. Setup: install the Claude GitHub app on the repo, run claude setup-token and save the token as the CLAUDE_CODE_OAUTH_TOKEN secret. Only users with write access can trigger it. The same skill works in a local session or on claude.ai/code ("add to the catalog").repoId and categoryId from giscus.app and fill in giscus in site.config.json.Threads are created on first comment and mapped to each page's path.
src/about.md.kind: mod (same platform, own filter and badge), libraries get kind: library (no layout check, not in catalog.json).