OPEN-SOURCE CONTROL LAYER / PYTHON 3.10+

Govern AI agents before they act.

Define what your AI agents can and cannot do before they act. Lightweight, framework-agnostic, and production-ready.

$ pip install hlinor-registry
policy trace / 001 runtime ready
Hlinor policy decision trace A policy file flows through validation and an action check before an allowed or blocked result is recorded. source agent.yaml check policy result allowed result blocked declarative pre-dispatch audit signal

One reviewable contract. One decision before side effects.

50+

automated tests

3.10–3.13

Python CI matrix

CrewAI

& LangChain ready

A policy is a file.
A decision is a line.

Keep governance close to the code, readable in a pull request, and enforceable at runtime with zero friction.

examples/agent.yaml YAML / registry
id: web-research-agent
name: Web Research Agent
department: marketing
enforcement_mode: strict
skills:
  - web_search
  - summarize_text
policies:
  - max_10_searches_per_hour
  - require_budget_check
allowed_actions:
  - search
  - read_public_url
  - extract_keywords
blocked_actions:
  - login_to_website
  - call_premium_paid_api
terminal / zero-friction cli pre-dispatch
$ hlinor-registry check --bundle bundle.json --agent web-research-agent --action search
[ALLOWED]EXPLICITLY_ALLOWED
$ hlinor-registry explain --bundle bundle.json --agent web-research-agent --action call_premium_paid_api
[DENIED]ACTION_BLOCKLISTED_VIOLATED_POLICY_REQUIRE_BUDGET_CHECK
✗ Action is explicitly listed in blocked_actions
HOW TO FIX: Remove from blocked_actions and recompile.
$ hlinor-registry check ... --format jsonl
{"timestamp": "2026-07-25T...", "agent_id": "web-research-agent", "result": "deny", "decision_id": "a1b2c3..."}
Native wrappers available for LangChain and CrewAI.

DEVELOPER EXPERIENCE

Drop-in integration for your stack.

No need to rewrite your agent logic. Just wrap your existing tools or use our Python decorator for zero-boilerplate enforcement.

app/tools.py Python
from hlinor_registry.integrations.decorators import governed

@governed(
    agent_id="research-agent", 
    action="search_web", 
    bundle_path="bundle.json"
)
def search_web(query: str) -> str:
    # This function will simply not execute if the policy denies it.
    # A PolicyViolationError is raised with a clear reason_code.
    return requests.get(f"https://api.search.com?q={query}").text

Governance that answers the hard questions early.

01 / PRIVACY

Prevent PII leaks

Block external email, record mutation, or other exfiltration paths for agents handling sensitive data.

02 / COST

Control API costs

Keep search counts, premium calls, budget checks, and rate limits visible beside the agent definition.

03 / EVIDENCE

Ensure compliance

Export runtime decisions in JSONL format for direct ingestion into Splunk or Datadog. Lint YAML policies statically to catch logical contradictions before deployment.

A clear path from intent to action.

Registry files become a shared contract between the people who design agent capabilities and the systems that execute them.

Hlinor registry architecture Developer writes a YAML registry, the policy engine validates an action, and the agent receives an allowed or blocked result. 01 Developer intent 02 YAML registry contract 03 Policy engine decision 04 Agent action side effect blocked + audit record Hlinor registry mobile architecture A vertical flow from developer intent through the YAML registry and policy engine to an allowed or blocked agent action. 01 / INTENT Developer 02 / CONTRACT YAML registry 03 / DECISION Policy engine 04 / SIDE EFFECT Agent action blocked + audit

Make your next agent easier to trust.

Start with a YAML contract, add a policy check before the first side effect, and invite your security team into the review.

OPEN SOURCE / EARLY ACCESS

HlinorAI works with teams designing internal agent platforms, compliance workflows, and production action boundaries.

We respect your privacy. Your email will only be used to respond to your inquiry.