# Nhero Pyhole

> DNS-style medication routing layer for nhero devices. Intercepts scheduling commands like Pi-hole intercepts DNS, routes through scramble index, enforces blocklist/allowlist per killdispenser signals.

- Skill: `plurigrid/nhero-pyhole` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add plurigrid/nhero-pyhole`
- Raw SKILL.md: https://api.skillmd.com/api/skills/plurigrid/nhero-pyhole/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: plurigrid (https://skillmd.com/u/plurigrid)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/plurigrid/nhero-pyhole

---


# nhero-pyhole

Pi-hole for pill dispensers. Intercept, filter, route.

## Architecture

```
Hero App → [mitmproxy] → nhero-pyhole → [scramble index] → Hero Cloud
                              ↓
                     killdispenser signals
                              ↓
                   [blocklist / allowlist]
                              ↓
                     DISPENSE or HOLD
```

## DNS Analogy

| Pi-hole | nhero-pyhole |
|---------|-------------|
| DNS query | Dispense command |
| Blocklist domain | Controlled substance slot |
| Allowlist domain | OTC supplement slot |
| Upstream DNS | Hero cloud API |
| Local DNS cache | Scramble index (letter → med) |
| CNAME record | Derangement mapping (q → Vyvanse) |
| Gravity list | Nurse approval queue |

## mitmproxy Integration

nhero-pyhole runs as a mitmproxy addon:
```bash
mitmproxy -s /Users/alice/worlds/h/hero_intercept.py --mode regular --listen-port 8080
```

Local IP for iOS proxy config: `172.20.12.94:8080`

## Scramble Resolution

```
query("q") → CNAME → "Vyvanse" → CHECK blocklist → HOLD (controlled)
query("x") → CNAME → "Magnesium" → CHECK allowlist → DISPENSE (OTC)
```

## Parent
Part of the [nhero](../nhero/SKILL.md) hierarchy.

