Polished obsidian surface with a hairline crack revealing oxblood glow

Node.js AI Harness

MADZ.

A terminal-native AI harness drawn from Mads Mikkelsen's most iconic roles. Quiet intensity. Elegant precision. Persistent memory. Sandboxed skills.

System Heartbeat

RUNTIMENODE.JS
HARNESSLANGGRAPH
INTERFACEINK TUI
MEMORYPERSISTENT
PERSONAACTIVE
NETWORKSEVERED
Brutalist concrete hall with a solitary steel chair under dramatic spotlight

Sandbox Runtime

Skills run.
Nothing escapes.

Disconnected. Sovereign. Secure.

Sandboxed Skill Execution

Plugins run in isolated forked processes with time limits, memory caps, and allowlists for filesystem paths and outbound URLs.

Zero-Trust by Design

Blocked schemes: file://, gopher://, dict://. Your environment. Your rules. Every boundary enforced at the runtime layer.

Markdown-Native Persistence

Everything persists as version-controllable Markdown files. Audit with git log. Re-load across sessions. Own your history.

Air-Gap Ready

Operates in fully disconnected environments. Local models. No telemetry unless you opt in. Classified contexts. Your desk.

Skills · Persona

Ask once.
It learns.

Madz scaffolds structured skills from a single natural-language prompt, then executes them silently — always in character, always within declared boundaries.

madz@localhost · SSH

hey madz, create an email skill for my provider Fastmail

Understood. Scaffolding an IMAP/SMTP skill for Fastmail. I need your credentials — store them in .env and I will read from there. Skill will be sandboxed with no outbound access beyond imap.fastmail.com:993 and smtp.fastmail.com:465.

skill.create · email.imap_smtp · sandboxed

do i have any unread email?

Connecting via IMAP. You have 4 unread messages. Two from your team, one automated build alert, one newsletter.

skill.run · email.fetch_unread → 4 results

mark those as read

Done. All 4 marked as read. Connection closed.

skill.run · email.mark_read(4) → ok

01

Read & write files

Access files anywhere within your declared paths. All I/O is path-validated and size-capped.

02

Build new skills

Describe a capability in plain language. Madz scaffolds a compliant Agent Skill module from a single prompt — adhering to the agentskills.io standard. agentskills.io ↗

03

Run commands & code

Execute shell commands and JavaScript in an isolated, sandboxed process with hard time and memory limits.

04

Search the web

Query through your own SearXNG instance, Exa, Tavily, or Bing. No external lock-in required.

05

Scrape pages

Fetch and extract structured content from any URL via Firecrawl or native fetch.

06

Generate images

Create images from a natural-language prompt via Fal.ai. The result URL is stored in persistent memory.

Memory System

It remembers
everything.

A triple-layer architecture — canonical memories you set, ephemeral moments it captures autonomously, and daily reflections it generates. Together they form a living context that deepens with every session.

Canonical Memorymemory/context/*.md
---
key: work_context
createdDate: 2025-11-01
updatedDate: 2026-06-07
---
Prefers terminal-first workflows. Uses macOS with tmux.
Primary languages: TypeScript, Rust. Dislikes verbose explanations.
Current project: distributed rate limiter. Deadline: end of sprint.

Set explicitly by you. Loaded into every system prompt at session start. Carries YAML frontmatter with creation and update timestamps.

Ephemeral Memoryauto · expiring
[auto-captured · expires in 72h]

Pattern: user iterates on architecture before writing code
Tone: responds well to directness; silence on praise
Recurring theme: performance over readability
Milestone: shipped without asking for reassurance

Captured autonomously. Records patterns, emotional tone, recurring themes. Influences how madz adapts — without being hardcoded.

Reflectionsdaily · 02:00
---
createdDate: 2026-06-09
updatedDate: 2026-06-09
---
Session synthesis: user pushed hard on
performance profiling. Three iterations.
Accepted the third without comment.

Tone shift detected after first result —
less directive, more exploratory.
Deadline pressure remains.

Generated nightly by cron at 2 AM. Stored as canonical memories. Auto-installed after onboarding — no configuration required.

Memory Tool Actions

create
read
update
delete
list
Close-up of a vintage fountain pen nib with dark oxblood ink on brushed steel

The Neural Bridge

Connect
on your terms.

Offline-first AI harness built for local inference providers. Compatible with cloud services — OpenAI, Anthropic, Mistral, or any. Every response passes through the Madz harness. Stoic. Precise. Stripped of filler and false comfort.

OpenAI

GPT-4 / o1

Anthropic

Claude Opus

Mistral

Large / Codestral

Meta

Llama 3.x

Google

Gemini Pro

Cohere

Command R+

Personality Filter

Raw Provider Output

"Sure! I'd be happy to help refactor that function! Great question 😊 Here's an updated version that should work better for your use case. Let me know if you have any questions!"

Refined by Madz

"Three issues. The loop allocates on every iteration — move the buffer outside. The async boundary is wrong; you'll leak handles under load. And the naming is a lie. I've rewritten it. Review before you ship."

Technical Architecture

Orchestrated.
Observed.

01

Ink TUI

React-powered terminal UI. Richly interactive, keyboard-native, compositor-grade rendering in your shell.

02

LangGraph

Multi-turn orchestration with state machines. Context-window management built into the graph execution layer.

03

Cron Scheduler

Declare recurring jobs in config.yaml. In-process or system crontab delegation. Max-concurrency control prevents run overlap.

04

Persona Engine

Drawn from Mads Mikkelsen's most iconic roles. Calm. Precise. Quietly intense. The personality persists across every session.

05

Skill System

Write plugins in Node.js, Python, Ruby, or shell. Executed in sandboxed spawned processes. Allowlisted paths. Time-bounded. Memory-capped.

06

OpenTelemetry

Optional observability. Configurable exporters: console, OTLP HTTP, OTLP gRPC. Automatic redaction of API keys and auth headers.

RUNTIME

Node.js 24+

ORCHESTRATION

LangGraph

TELEMETRY

OpenTelemetry · Opt-in

LICENSE

Open Source · BSD-3

Fog-covered Nordic coastline at twilight with distant lighthouse

Get Started

Deploy in
minutes.

Node.js 24+ · BSD-3 License · Connect via SSH with account 'madz' · no password · frictionless access

Docker · Quickstart

No password. Madz starts automatically.

docker pull avoidwork/madz:latest
docker run -d \
  --name madz \
  -p 2222:22 \
  -v ./memory:/app/memory \
  -v ./skills:/app/skills \
  -e OPENAI_API_KEY="abc" \
  -e OPENAI_MODEL=Qwen/Qwen3.6-35B-A3B-FP8 \
  -e OPENAI_BASE_URL=http://your.inference.lan:8000/v1 \
  -e OPENAI_MAX_TOKENS=61440 \
  -e SEARXNG_URL=https://your.searxng.lan/search \
  avoidwork/madz:latest
ssh -p 2222 madz@localhost

MADZ.

A personality-driven AI harness. Local-first intelligence with cinematic precision.

Community

Status

Harness — — Public
Open Source · BSD-3 License

© 2026 Jason Mulligan. ALL RIGHTS RESERVED.

SOVEREIGNTY IS NOT A FEATURE. IT IS THE ARCHITECTURE.