Norq
Notification toolchainv0.1.2-alphaMIT

Engineerfirst toolchain. Agentready by consequence.

Write per-channel Markdown — email.md, sms.md, slack.md, push.md, whatsapp.md, msteams.md. Norq compiles them to channel-native payloads, validates against a JSON Schema, and ships through type-safe SDKs in five languages. The same compiler runs as an MCP server, so an agent can author, lint, compile, preview, and iterate without leaving the loop.

Norq compile flow: per-channel templates, six channels.
Author
Markdown with strict schemas, ~40 deterministic pipes, and partials that resolve hierarchically. LSP completions in any editor that speaks it.
Compile
One Rust compiler, six channel backends. Email becomes MJML→HTML, Slack becomes Block Kit, Teams becomes Adaptive Cards. No surprises.
Iterate
MCP server with 12 tools. norq_lint, norq_compile, norq_test, norq_preview— the loop an agent can close without ever touching a dashboard.
Ship
In-process SDKs for Node, Python, Go, Java, Ruby. send(), lint(), batch(). No daemon, no subprocess, no SaaS lock-in.

The agent loop

compile, lint, test, repeat
01 · Author

The agent calls norq_create to scaffold a notification, then writes email.md, sms.md, and a data.schema.yaml. The schema is the contract.

02 · Verify

norq_lint flags missing variables, nullable access, bad WCAG contrast, oversized payloads. norq_compile returns the channel-native output. norq_test runs the assertions.

03 · Iterate

The agent reads the diagnostics, edits the template, re-runs the loop. No screenshots, no human-in-the-loop, no SaaS roundtrip. The compiler is the feedback.

Same loop, same tools, same exit codes — whether the hands on the keyboard are yours or a model's.

Where to start

four entry points into the toolchain

One binary. Six compilers. Twelve MCP tools.

brew install suprsend/tap/norq — one static Rust binary. CLI, LSP, MCP server, dev server, all bundled. No daemon, no service to run.

$ norq lint --strict 6 channels · 0 errors · 142 ms

Agent toolkit

plug the loop into your agent →
MCP server
12 tools over stdio. norq mcp-server. Drop into Claude Code, Cursor, Continue, or Codex with one line of config.
Plugin packs
First-class plugins for Claude Code and Codex. Bundled skills, slash-commands, and project scaffolds — not a thin wrapper.
Skills
Authoring, design, and debugging skills your agent loads on demand. Same skill files work across Claude Code, Codex, and bare MCP.
LSP
Completions, diagnostics, and format-on-save in VS Code and Zed — driveable by anything that speaks LSP.

Brand pipeline

your design system in YAML →
Tokens

DTCG-2025.10 compatible. Colors, typography, spacing, radii — named in brand.yaml, referenced everywhere in templates.

Cascade

Brand defaults → frontmatter overrides → per-tenant runtime overrides. Whitelabel without rebuilding the template.

Dark mode

Light and dark token pairs in the same brand file. The compiler picks the right one per channel — automatically.

Registry

shareable partials, package-managed →
Install

norq add @namespace/partial pulls a partial into your project. Versioned, reproducible, lockfile-tracked.

Browse

norq registry search from the CLI, or browse curated headers, footers, buttons, and hero blocks on the registry site.

Build

norq registry buildscaffolds and validates your own registry — stays in your repo or goes public.