Skip to main content

Halyn — NRP control plane with domain-scoped authorization.

Project description

Halyn

Connect any device to any AI.

PyPI License Python

MCP Server · 12 drivers · Shield rules · Audit chain · 5 autonomy levels

Website · Quickstart · MCP Server · Tutorials


The Problem

MCP connects AI to software. But AI is entering the physical world — robots, drones, factories, farms, hospitals. There's no universal standard for how AI safely controls hardware.

Halyn connects AI to everything else. Servers, sensors, robots, industrial machines, smart homes — with safety rules the AI cannot break.

Quickstart

pip install halyn
from halyn import ControlPlane, SSHDriver

cp = ControlPlane()
cp.connect(SSHDriver("192.168.1.10", "admin"))

# Safety rules — the AI physically cannot bypass these
cp.shield("deny * delete *")
cp.shield("deny * write /etc/*")

# Observe
state = cp.observe()
print(state)  # {"cpu": 23.4, "mem": 67.2, ...}

# Act (within shield rules)
cp.act("restart nginx")     # ✓ allowed
cp.act("rm -rf /etc")       # ✗ blocked by shield

MCP Server

Connect Claude.ai, ChatGPT, Cursor, or any MCP client directly to your devices:

# Start the MCP Server
halyn-mcp --port 8935

# In Claude.ai → Settings → MCP → Add Server
# URL: http://your-server:8935/mcp

Then just talk:

  • "Show me the status of all connected devices"
  • "What's the temperature in the greenhouse?"
  • "Restart nginx on server-01"
  • "Show me the audit trail"

The AI sees your devices as tools. Shield rules still apply. Every action is audited.

12 Drivers

Driver Target Protocol
SSHDriver Linux/Mac servers SSH
HTTPDriver REST APIs, webhooks HTTP
WebSocketDriver Real-time streams WebSocket
SerialDriver Arduino, Pi, PLCs Serial
MQTTDriver IoT sensors MQTT
OPCUADriver Industrial machines OPC-UA
ROS2Driver Robots, drones ROS2/DDS
DDSDriver Real-time systems DDS
DockerDriver Containers Docker API
BrowserDriver Web automation Chrome CDP
UnitreeDriver Unitree robots UDP
SocketDriver Raw TCP/UDP Socket

Safety

Shield Rules — Constraints enforced at protocol level. The AI has no power to override them.

cp.shield("deny * delete *")                    # no deletions
cp.shield("deny * write temperature > 180")     # thermal limit
cp.shield("deny lock unlock between 23:00-06:00")  # doors locked at night

Audit Chain — Every action recorded in SHA-256 hash chain. Tamper-evident. Append-only.

Consent Protocol — Devices and AI negotiate permissions before any interaction.

5 Autonomy Levels — From fully manual to fully autonomous. You choose.

Level Name Who Decides
0 Manual Human does everything
1 Advisory AI suggests, human acts
2 Supervised AI acts, human approves
3 Monitored AI acts freely, human watches
4 Autonomous AI decides within shield rules

Works with Every LLM

# Claude
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(model="claude-sonnet-4-6", ...)
cp.act(response.content[0].text)

# GPT
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(model="gpt-5", ...)

# Local (Ollama — no internet needed)
import ollama
response = ollama.chat(model="llama4", ...)

# All use the same shield rules. Same audit chain.

Built on NRP

Halyn implements NRP (Node Reach Protocol) — the open standard for AI-to-device communication. 6 primitives: Manifest, Observe, Act, Shield, Audit, Consent.

Free. Open Source. Forever.

MIT licensed. Use it for anything. Modify it. Build a company on it. No fees, no limits, no lock-in.


halyn.dev · nrprotocol.dev · PyPI · contact@halyn.dev

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

halyn-0.4.0.tar.gz (76.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

halyn-0.4.0-py3-none-any.whl (86.9 kB view details)

Uploaded Python 3

File details

Details for the file halyn-0.4.0.tar.gz.

File metadata

  • Download URL: halyn-0.4.0.tar.gz
  • Upload date:
  • Size: 76.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for halyn-0.4.0.tar.gz
Algorithm Hash digest
SHA256 0ca1f54927dc29a2f772cae2c6a672d47c35003dd7e0617429a3914526b39bce
MD5 06c8a90d4ee977d11bb8c3f8db71c883
BLAKE2b-256 2da84e95e93ca30a970cc5b1b22280984f5a62df518112353da6b3be10a9edf5

See more details on using hashes here.

File details

Details for the file halyn-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: halyn-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 86.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for halyn-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 01ab632ed3707ab4ffb4385f92104dc10c84bb1043d240b58e66dfc923145cad
MD5 0adfd6d04db93b8602829153873f73bc
BLAKE2b-256 fee817860616440cdb4c2375fb78428d36e57ed34a75d3825d60608ce1531d5d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page