Skip to main content
Glama

Rynmesh

CI License: MIT GitHub release

Rynmesh is an open-source, local-first personal AI assistant and verifiable content mesh. A Ryn node can discover and rank public content, learn from local feedback, publish signed content, discover peers, and exchange content with provenance and safety receipts.

Visit rynmesh.ai for the product overview, verified downloads, current milestone status, and the live contribution center.

The node, web interface, recommendation agent, peer protocol, registry, and command-line tools are all included under the MIT license. No account, API key, proprietary service, or preference setup is required for the default experience.

What works today

  • Proactive recommendations from a built-in public catalog, including video, articles, research, podcasts, audiobooks, and visual content

  • Local recommendation profiles that learn from More, Less, Hide, Open, topics, platforms, and written direction

  • A self-hosted web interface served by the node daemon

  • Signed content manifests, provenance chains, and safety receipts

  • Direct peer HTTP transport with registry-assisted discovery and NAT-safe relay jobs

  • Direct ICE/UDP file transfer with automatic ordinary-peer transit fallback; TURN is not used

  • Content publishing for video, images, audio, documents, slides, datasets, and other files

  • MCP tools for Codex-, Claude-, and other MCP-compatible AI operators

  • Non-transferable Rynmesh Credits for distribution reputation

Rynmesh is alpha software. APIs and storage formats may change before 1.0.

Current boundaries

  • Desktop installers are currently available for macOS on Apple Silicon and Intel. Windows and Linux packaging is planned.

  • macOS community builds are not yet Apple-notarized.

  • Public-source recommendations work without peers, accounts, preferences, or a model. AI-generated briefings and Search & Ask require a reachable local Ollama model or explicit opt-in to a configured cloud provider.

  • Friend invitations, friend-attributed recommendations, multi-user egress, and budgeted agent-to-agent services are planned milestones.

  • The safety scanner is an alpha implementation; operating an unrestricted network of untrusted peers requires the additional hardening described in Product milestones.

For an implementation inventory and clearly separated contribution areas, see Product milestones. Work that is ready to be claimed is tracked in GitHub Issues, not inferred from aspirational design documents. The current accepted backlog is grouped in the P1 hardening milestone.

Install from GitHub

macOS desktop

Download the Apple Silicon (aarch64) or Intel (x86_64) DMG from the latest release, open it, and drag Ryn to Applications. The app contains its own node daemon and web interface; Python, Node.js, Ollama, an account, and source configuration are not required. Because community builds are not Apple notarized yet, the first launch may require Control-clicking Ryn and choosing Open.

Python package

Python 3.10 or newer is required.

python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
curl -fsSL https://github.com/yeogirlyun/rynmesh/releases/latest/download/install.sh | sh

Or install the current wheel into an existing Python environment:

python -m pip install https://github.com/yeogirlyun/rynmesh/releases/download/v0.6.2/rynmesh-0.6.2-py3-none-any.whl
rynmesh-peer

Open http://127.0.0.1:8791. Ryn starts its recommendation agent automatically. Adding a YouTube channel, subreddit, or RSS feed is optional.

Versioned wheels, checksums, installer scripts, and source archives are available from GitHub Releases. Release wheels include the built web interface; editable source installs use the Vite development server described below.

Develop from source

git clone https://github.com/yeogirlyun/rynmesh.git
cd rynmesh
./scripts/dev_setup.sh

For hot-reloading development, run the node and web app in separate terminals:

./.venv/bin/rynmesh-peer
cd webapp
npm run dev

The local API runs on port 8791; Vite serves the development UI on port 5173.

Run a registry

Peer discovery can use a registry, but a registry is not required for the local personal-assistant experience.

export RYNMESH_REGISTRY_HOST="0.0.0.0"
export RYNMESH_REGISTRY_PORT="8790"
export RYNMESH_REGISTRY_DIR="$HOME/.rynmesh/registry"
rynmesh-registry

The registry stores signed peer records, work-order mailbox messages, and optional relay blobs. Nodes verify signatures and content hashes locally.

Three-node P2P peer transit

rynmesh-transit sends directly over ICE/UDP when possible and can use another ordinary Rynmesh peer as a single encrypted transit hop when the direct route is unavailable or degraded. Both legs are host/server-reflexive P2P connections; the registry carries signed signaling only, and TURN candidates fail closed.

# Peer 3
rynmesh-transit worker --role target --network-id my-network
# Peer 2
rynmesh-transit worker --role transit --network-id my-network
# Peer 1: direct first, peer 2 on hard failure
rynmesh-transit send-file-adaptive artifact.bin \
  --target-peer "<peer-3-id>" --relay-peer "<peer-2-id>" \
  --network-id my-network

See the design and acceptance contract and operator runbook.

MCP server

rynmesh-mcp

See Architecture, Product milestones, and Contributing for deeper project context.

Optional local LLM provider packages

The desktop node and recommendation assistant do not require Docker or a local model. Operators who choose to provide private inference can connect an existing loopback OpenAI-compatible or Ollama service, or let Rynmesh manage one: managed mode downloads a verified GGUF model and runs it with the bundled llama.cpp runtime built into the desktop app, or a managed download of the pinned release on a pip-installed node. Docker is an opt-in runtime for server operators who prefer container isolation, selected with --runtime docker:

rynmesh-llm detect
rynmesh-llm setup --mode openai-compatible --base-url http://127.0.0.1:8080
# Managed local model, bundled/downloaded native runtime (default):
rynmesh-llm setup --mode managed --profile balanced --yes
# Managed local model, opt-in Docker runtime (server nodes):
rynmesh-llm setup --mode managed --runtime docker --yes

Provider/Consumer task bodies travel as signed end-to-end ciphertext directly between Ryn nodes, with a dedicated ciphertext-only relay fallback. The registry receives discovery and body-free coordination only. Rynmesh Credits remain non-transferable reputation; development Task Balance is a separate simulated ledger and is not real money or a production payment system.

Run the isolated two-node automated demonstration with:

python scripts/llm_e2e.py run
python scripts/llm_e2e.py down

See Local LLM runbook, design and boundaries, and P0 evidence. Developers and AI agents should start with the current development handoff before continuing this feature. The user-facing catalog, typed service routes, local conversation storage, and extension rules are documented in the Services UI architecture.

Verify a checkout

python -m pytest -q
python -m ruff check rynmesh tests qa
cd webapp && npm ci && npm run build

CI also verifies that a packaged node serves its own UI without a development server.

Security and privacy

Node identity, preferences, feedback, and fetched content are stored locally under RYNMESH_HOME (by default beneath ~/.rynmesh). Network access is used for sources or peers the node contacts; model integrations are optional.

Please report vulnerabilities privately as described in SECURITY.md. Do not include secrets or personal data in public issues.

Community

License

Rynmesh is licensed under the MIT License.