Skip to main content

Structural observability for AI conversations. Detects loops, stuck states, breakthroughs, and convergence patterns across 17 channels without analyzing content.

Project description

ReNoUn

Structural observability for AI conversations

PyPI Python License API Docs

Your agent doesn't know when it's going in circles. ReNoUn does.

Detects when conversations are stuck in loops, producing cosmetic variation instead of real change, or failing to converge. Measures structural health across 17 channels without analyzing content — works on any turn-based interaction.

Why?

LLMs get stuck. They produce responses that sound different but are structurally identical — what we call surface variation. A human might notice after 5 turns. An agent never will.

ReNoUn catches this in ~200ms by measuring structure, not content. It works on any language, any topic, any model.

Install

pip install renoun-mcp

Quick Start

As an MCP Server (Claude Desktop)

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
    "mcpServers": {
        "renoun": {
            "command": "python3",
            "args": ["-m", "server"],
            "env": {
                "RENOUN_API_KEY": "rn_live_your_key_here"
            }
        }
    }
}

As a REST API

curl -X POST https://web-production-817e2.up.railway.app/v1/analyze \
  -H "Authorization: Bearer rn_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"utterances": [
    {"speaker": "user", "text": "I feel stuck"},
    {"speaker": "assistant", "text": "Tell me more about that"},
    {"speaker": "user", "text": "I keep going in circles"},
    {"speaker": "assistant", "text": "What patterns do you notice?"},
    {"speaker": "user", "text": "The same thoughts repeat"}
  ]}'

As a Claude Code MCP

claude mcp add renoun python3 -m server

Demo Output

{
  "dialectical_health": 0.491,
  "loop_strength": 0.36,
  "channels": {
    "recurrence": { "Re1_lexical": 0.0, "Re2_syntactic": 0.3, "Re3_rhythmic": 0.5, "Re4_turn_taking": 1.0, "Re5_self_interruption": 0.0, "aggregate": 0.36 },
    "novelty":    { "No1_lexical": 1.0, "No2_syntactic": 1.0, "No3_rhythmic": 0.5, "No4_turn_taking": 0.5, "No5_self_interruption": 0.0, "No6_vocabulary_rarity": 0.833, "aggregate": 0.639 },
    "unity":      { "Un1_lexical": 0.5, "Un2_syntactic": 0.135, "Un3_rhythmic": 0.898, "Un4_interactional": 0.7, "Un5_anaphoric": 0.705, "Un6_structural_symmetry": 0.5, "aggregate": 0.573 }
  },
  "constellations": [],
  "novelty_items": [
    { "index": 4, "text": "The same thoughts repeat", "score": 0.457, "reason": "shifts conversational direction" }
  ],
  "summary": "Moderate dialectical health (DHS: 0.491). Diverse exploration (loop strength: 0.36). Key moment at turn 4.",
  "recommendations": ["■ Key novelty at turn 4. Consider returning to this moment."]
}

Tools

Tool Purpose Speed Tier
renoun_analyze Full 17-channel structural analysis with breakthrough detection ~200ms Pro
renoun_health_check Quick triage — one score, one pattern, one action ~50ms Free
renoun_compare Structural A/B test between two conversations ~400ms Pro
renoun_pattern_query Save, query, and trend longitudinal session history ~10ms Pro

How It Works

ReNoUn measures 17 structural channels across three dimensions:

Recurrence (5 channels) — Is structure repeating? Lexical, syntactic, rhythmic, turn-taking, and self-interruption patterns.

Novelty (6 channels) — Is anything genuinely new emerging? Lexical novelty, syntactic novelty, rhythmic shifts, turn-taking changes, self-interruption breaks, and vocabulary rarity.

Unity (6 channels) — Is the conversation holding together? Lexical coherence, syntactic coherence, rhythmic coherence, interactional alignment, anaphoric reference, and structural symmetry.

From these 17 signals, ReNoUn computes a Dialectical Health Score (DHS: 0.0–1.0) and detects 8 constellation patterns, each with a recommended agent action:

Pattern What It Means Agent Action
CLOSED_LOOP Stuck recycling the same structure explore_new_angle
HIGH_SYMMETRY Rigid, overly balanced exchange introduce_variation
CONVERGENCE Moving toward resolution maintain_trajectory
PATTERN_BREAK Something just shifted support_integration
SURFACE_VARIATION Sounds different but structurally identical go_deeper
SCATTERING Falling apart, losing coherence provide_structure
REPEATED_DISRUPTION Keeps breaking without stabilizing slow_down
DIP_AND_RECOVERY Disrupted then recovered acknowledge_shift

Pricing

Free Pro ($4.99/mo)
renoun_health_check
renoun_analyze
renoun_compare
renoun_pattern_query
Daily requests 20 1,000
Max turns per analysis 200 500

Get your API key: Subscribe via Stripe or visit harrisoncollab.com.

REST API

Base URL: https://web-production-817e2.up.railway.app

Endpoint Method Auth Description
/v1/analyze POST Bearer Full 17-channel analysis
/v1/health-check POST Bearer Fast structural triage
/v1/compare POST Bearer A/B test two conversations
/v1/patterns/{action} POST Bearer Longitudinal pattern history
/v1/status GET None Liveness + version info
/v1/billing/checkout POST None Create Stripe checkout session
/docs GET None Interactive API explorer

All authenticated endpoints require: Authorization: Bearer rn_live_...

Input Format

All analysis tools accept conversation turns as speaker/text pairs:

{
    "utterances": [
        {"speaker": "user", "text": "I keep going back and forth on this decision."},
        {"speaker": "assistant", "text": "What makes it feel difficult to commit?"},
        {"speaker": "user", "text": "I think I'm afraid of making the wrong choice."}
    ]
}

Minimum 3 turns required. 10+ recommended for reliable results. 20+ for stable constellation detection.

Integration

Claude Desktop

{
    "mcpServers": {
        "renoun": {
            "command": "python3",
            "args": ["-m", "server"],
            "env": { "RENOUN_API_KEY": "rn_live_your_key_here" }
        }
    }
}

Claude Code

RENOUN_API_KEY=rn_live_your_key_here claude mcp add renoun python3 -m server

Generic MCP Client

{
    "transport": "stdio",
    "command": "python3",
    "args": ["-m", "server"],
    "env": { "RENOUN_API_KEY": "rn_live_your_key_here" }
}

Environment Variable

export RENOUN_API_KEY=rn_live_your_key_here

Longitudinal Storage

Results persist to ~/.renoun/history/. Use renoun_pattern_query to save, list, query, and trend session history over time. Filter by date, domain, constellation pattern, or DHS threshold.

Version

  • Server: 1.2.0
  • Engine: 4.1
  • Schema: 1.1
  • Protocol: MCP 2024-11-05

Related

The ReNoUn Cowork Plugin provides skill files, slash commands, and reference documentation for agents using the Cowork plugin system. The MCP server and plugin share the same engine and can be used independently or together.

Patent Notice

The core computation engine is proprietary and patent-pending (#63/923,592). This MCP server wraps it as a black box. Agents call engine.score() and receive structured results — they never access internal algorithms.

License

MCP server and API wrapper: MIT. Core engine: Proprietary.


Harrison Collab · API Docs · PyPI

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

renoun_mcp-1.2.2.tar.gz (51.1 kB view details)

Uploaded Source

Built Distribution

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

renoun_mcp-1.2.2-py3-none-any.whl (60.5 kB view details)

Uploaded Python 3

File details

Details for the file renoun_mcp-1.2.2.tar.gz.

File metadata

  • Download URL: renoun_mcp-1.2.2.tar.gz
  • Upload date:
  • Size: 51.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for renoun_mcp-1.2.2.tar.gz
Algorithm Hash digest
SHA256 48669b098c395709711138f1b408a6b388e72d51e2d4077d906e41e7af6f5d60
MD5 aed5076f386c13a2ca4399b788b2db89
BLAKE2b-256 a821ac46c282ceeb9564f062000d6077c7e038773267d6222015cac3a7259d9a

See more details on using hashes here.

File details

Details for the file renoun_mcp-1.2.2-py3-none-any.whl.

File metadata

  • Download URL: renoun_mcp-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 60.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for renoun_mcp-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5e5b06b4f493e029c62833d6727e3f6ebd8bf04b56c61f8d170af614debfa281
MD5 9c9ef843c8f77ba813c8e2bba0b0d5de
BLAKE2b-256 0528cbf9248344148116847a4f0d96a6d638f4a3a5b08fcbf71182f33eba5f95

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