Rynmesh
Rynmesh
Rynmesh 是一个开源、本地优先的个人 AI 助手和可验证内容网格。Ryn 节点可以发现并对公共内容进行排序,从本地反馈中学习,发布已签名内容,发现对等节点,并交换带有来源和安全回执的内容。
访问 rynmesh.ai 了解产品概览、经过验证的下载、当前里程碑状态以及实时贡献中心。
节点、Web 界面、推荐代理、对等协议、注册中心和命令行工具均以 MIT 许可证提供。默认体验不需要账户、API 密钥、专有服务或偏好设置。
当前可用的功能
从内置公共目录中进行主动推荐,包括视频、文章、研究、播客、有声书和视觉内容
本地推荐画像,可从更多、更少、隐藏、打开、主题、平台和书面指示中学习
由节点守护进程提供的自托管 Web 界面
已签名内容清单、来源链和安全回执
直接对等 HTTP 传输,支持注册中心辅助发现和 NAT 安全中继任务
支持视频、图片、音频、文档、幻灯片、数据集和其他文件的内容发布
面向 Codex、Claude 以及其他兼容 MCP 的 AI 操作器的 MCP 工具
用于分发声誉的不可转让的 Rynmesh Credits
Rynmesh 是 alpha 软件。API 和存储格式在 1.0 之前可能会发生变化。
Related MCP server: weid.ai MCP Server
当前边界
桌面安装程序目前适用于 Apple Silicon 和 Intel 上的 macOS。Windows 和 Linux 的打包正在规划中。
macOS 社区构建尚未经过 Apple 公证。
公共来源推荐无需对等节点、账户、偏好或模型即可工作。AI 生成的简报和 Search & Ask 需要可访问的本地 Ollama 模型,或明确选择加入已配置的云提供商。
好友邀请、好友归属推荐、多用户出口和预算化的代理间服务是规划中的里程碑。
安全扫描器是 alpha 实现;运行一个不受限制的不可信对等网络需要 产品里程碑 中描述的额外加固。
有关实现清单和明确划分的贡献领域,请参阅 产品里程碑。可以认领的工作在 GitHub Issues 中跟踪,而非从理想化的设计文档中推断。当前已接受的待办事项归入 P1 加固里程碑。
从 GitHub 安装
macOS 桌面版
从 最新版本 下载 Apple Silicon(aarch64)或 Intel(x86_64)DMG,打开它,然后将 Ryn 拖到 Applications 文件夹。该应用包含自己的节点守护进程和 Web 界面;不需要 Python、Node.js、Ollama、账户和源码配置。由于社区构建尚未经过 Apple 公证,首次启动时可能需要按住 Control 键点按 Ryn,然后选择打开。
Python 包
需要 Python 3.10 或更高版本。
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或者将当前 wheel 安装到现有的 Python 环境中:
python -m pip install https://github.com/yeogirlyun/rynmesh/releases/download/v0.6.2/rynmesh-0.6.2-py3-none-any.whl
rynmesh-peer打开 http://127.0.0.1:8791。Ryn 会自动启动其推荐代理。添加 YouTube 频道、subreddit 或 RSS 源是可选的。
带版本号的 wheel、校验和、安装脚本和源码归档可从 GitHub Releases 获取。发布版 wheel 包含已构建的 Web 界面;可编辑的源码安装使用下文描述的 Vite 开发服务器。
从源码开发
git clone https://github.com/yeogirlyun/rynmesh.git
cd rynmesh
./scripts/dev_setup.sh如需热重载开发,请在两个终端中分别运行节点和 Web 应用:
./.venv/bin/rynmesh-peercd webapp
npm run dev本地 API 运行在 8791 端口;Vite 在 5173 端口提供开发 UI。
运行注册中心
对等发现可以使用注册中心,但本地个人助理体验并不需要注册中心。
export RYNMESH_REGISTRY_HOST="0.0.0.0"
export RYNMESH_REGISTRY_PORT="8790"
export RYNMESH_REGISTRY_DIR="$HOME/.rynmesh/registry"
rynmesh-registry注册中心存储已签名的对等记录、工单邮箱消息和可选的中继 blob。节点在本地验证签名和内容哈希。
MCP 服务器
rynmesh-mcp有关更深入的项目背景,请参阅 架构、产品里程碑 和 贡献指南。
验证检出
python -m pytest -q
python -m ruff check rynmesh tests qa
cd webapp && npm ci && npm run buildCI 还会验证打包后的节点无需开发服务器即可提供自己的 UI。
安全与隐私
节点身份、偏好、反馈和获取的内容都存储在本地 RYNMESH_HOME 目录下(默认在 ~/.rynmesh 下)。网络访问用于节点联系的来源或对等节点;模型集成是可选的。
请按照 SECURITY.md 中的说明私下报告漏洞。请勿在公开问题中包含机密或个人数据。
社区
从 首次贡献者入门指南 开始。
在提交拉取请求之前,请阅读 CONTRIBUTING.md。
从 贡献中心 选择已接受的工作,并在实现之前对关联的 GitHub issue 评论
/claim。遵守 Code of Conduct。
使用 GitHub Issues 提交可复现的 bug 和聚焦的功能请求。
使用 GitHub Discussions 进行提问和更广泛的设计想法交流。
许可证
Rynmesh 根据 MIT License 授权。
Available Tools
39 toolsrynmesh_credit_scoreboardC
Return visible Rynmesh Credit accounts ranked by distribution weight.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No |
rynmesh_credit_summaryB
Return credit score and distribution weight for a Rynmesh peer.
| Name | Required | Description | Default |
|---|---|---|---|
| peer_id | No | ||
| category | No |
rynmesh_digest_add_sourceA
Add a content source to the owner's digest: an RSS/Atom URL, a YouTube channel URL or @handle, or a subreddit like r/selfhosted.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| tags | No |
rynmesh_digest_feedbackA
Record the owner's reaction to a digest item (up/down/opened); tunes future ranking and suppresses seen items.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| item_id | Yes |
rynmesh_digest_getC
Get the owner's current Daily Digest: ranked items from their chosen sources (RSS/YouTube/Reddit feeds, read-later saves, page watchers) with reasons per pick.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
rynmesh_digest_refreshA
Re-fetch all of the owner's digest sources and watched pages, then rebuild and return the ranked digest.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
rynmesh_discover_peersC
Read signed peer records from the configured registry.
| Name | Required | Description | Default |
|---|---|---|---|
| network_id | No | ||
| include_self | No | ||
| max_age_hours | No | ||
| use_cache_on_error | No |
rynmesh_download_relay_artifactA
Download and hash-verify a relay artifact by content hash.
| Name | Required | Description | Default |
|---|---|---|---|
| relay_url | No | ||
| destination | Yes | ||
| content_hash | Yes |
rynmesh_fetch_content_fullA
Fetch and locally cache full content after validating its receipts and hash.
| Name | Required | Description | Default |
|---|---|---|---|
| content_id | Yes |
rynmesh_fetch_content_previewC
Fetch and locally cache a content preview after validating its receipts.
| Name | Required | Description | Default |
|---|---|---|---|
| content_id | Yes |
rynmesh_fetch_fullC
Compatibility tool: fetch and locally cache full content by clip ID.
| Name | Required | Description | Default |
|---|---|---|---|
| clip_id | Yes |
rynmesh_fetch_peer_content_fullB
Fetch full content directly from a peer endpoint after local hash validation.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | Yes | ||
| content_id | Yes | ||
| expected_peer_id | No |
rynmesh_fetch_peer_content_previewC
Fetch a content preview directly from a peer endpoint after local manifest validation.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | Yes | ||
| content_id | Yes | ||
| expected_peer_id | No |
rynmesh_fetch_peer_fullC
Compatibility tool: fetch full content directly from a peer endpoint by clip ID.
| Name | Required | Description | Default |
|---|---|---|---|
| clip_id | Yes | ||
| endpoint | Yes | ||
| expected_peer_id | No |
rynmesh_fetch_peer_previewC
Compatibility tool: fetch a preview directly from a peer endpoint by clip ID.
| Name | Required | Description | Default |
|---|---|---|---|
| clip_id | Yes | ||
| endpoint | Yes | ||
| expected_peer_id | No |
rynmesh_fetch_previewB
Compatibility tool: fetch and locally cache a content preview by clip ID.
| Name | Required | Description | Default |
|---|---|---|---|
| clip_id | Yes |
rynmesh_list_clipsC
Compatibility tool: list signed clip announcements visible to this node.
| Name | Required | Description | Default |
|---|---|---|---|
| include_invalid | No |
rynmesh_list_contentB
List signed content announcements visible to this node.
| Name | Required | Description | Default |
|---|---|---|---|
| include_invalid | No |
rynmesh_list_job_capacitiesB
List signed polling job capacity records from the configured registry.
| Name | Required | Description | Default |
|---|---|---|---|
| capability | No | ||
| network_id | No | ||
| max_age_hours | No |
rynmesh_list_peer_clipsA
Compatibility tool: list clips advertised directly by a peer HTTP endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | Yes |
rynmesh_list_peer_contentB
List content advertised directly by a peer HTTP endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | Yes |
rynmesh_list_work_resultsC
List signed provider work-result messages visible in the registry mailbox.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| network_id | No | ||
| work_order_id | No | ||
| provider_peer_id | No | ||
| requester_peer_id | No |
rynmesh_node_infoA
Return this local Rynmesh node identity and storage configuration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
rynmesh_poll_work_ordersC
Poll this node's provider mailbox for open, accepted, running, completed, failed, or cancelled work orders.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| capability | No | ||
| network_id | No | ||
| max_age_hours | No |
rynmesh_publish_clipC
Compatibility tool: publish a local AI-generated video into Rynmesh.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| run_id | No | ||
| work_id | No | ||
| category | No | ||
| media_path | Yes | ||
| transcript | No | ||
| description | No | ||
| content_kind | No | ||
| content_type | No | ||
| preview_path | No | ||
| envelope_hash | No |
rynmesh_publish_contentC
Publish AI-generated or AI-curated content into Rynmesh with signed run and safety receipts.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| title | No | ||
| run_id | No | ||
| work_id | No | ||
| category | No | ||
| transcript | No | ||
| description | No | ||
| content_kind | No | ||
| content_path | Yes | ||
| content_type | No | ||
| preview_path | No | ||
| summary_text | No | ||
| envelope_hash | No |
rynmesh_publish_work_resultC
Publish a signed provider result or status update for a work order.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| message | No | ||
| network_id | No | ||
| result_refs | No | ||
| credit_amount | No | ||
| work_order_id | Yes | ||
| requester_peer_id | Yes | ||
| result_content_ids | No |
rynmesh_rank_clipsC
Compatibility tool: rank visible clips by Rynmesh Credit distribution weight.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | ||
| include_invalid | No |
rynmesh_rank_contentC
Rank visible content by Rynmesh Credit distribution weight.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | ||
| include_invalid | No |
rynmesh_readlater_saveA
Save a URL to the owner's read-later queue; the node fetches it and surfaces it in the next digest.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
rynmesh_read_messagesC
Read the message history with a peer (requires the local node daemon to be running).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| peer_id | Yes |
rynmesh_record_credit_eventC
Append a signed Rynmesh Credit event for useful work or protocol penalties.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| role | No | ||
| amount | No | ||
| reason | No | ||
| category | No | ||
| metadata | No | ||
| dedupe_key | No | ||
| subject_id | No | ||
| evidence_hash | No | ||
| subject_peer_id | No |
rynmesh_register_job_capacityC
Advertise this node as a polling work-order provider for bounded job capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| metadata | No | ||
| network_id | No | ||
| capabilities | Yes | ||
| price_credits | No | ||
| capacity_units | No | ||
| max_concurrent | No | ||
| polling_interval_sec | No |
rynmesh_register_nodeB
Publish this node's self-signed peer record to the configured registry.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoints | No | ||
| network_id | No | ||
| capabilities | No |
rynmesh_relay_artifact_infoC
Read relay metadata for a content-addressed artifact.
| Name | Required | Description | Default |
|---|---|---|---|
| relay_url | No | ||
| content_hash | Yes |
rynmesh_send_messageA
Send an end-to-end encrypted message to a peer's node over the mesh (requires the local node daemon to be running).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| peer_id | Yes |
rynmesh_submit_work_orderC
Submit a signed polling work order to a provider node through the registry mailbox.
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | ||
| operation | Yes | ||
| capability | Yes | ||
| expires_at | No | ||
| network_id | No | ||
| result_policy | No | ||
| idempotency_key | No | ||
| max_credit_cost | No | ||
| expires_in_hours | No | ||
| provider_peer_id | Yes | ||
| input_content_ids | No |
rynmesh_upload_relay_artifactB
Upload a local artifact to the configured relay as content-addressed bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| filename | No | ||
| relay_url | No | ||
| media_type | No | ||
| expected_hash | No |
rynmesh_watcher_addB
Watch a web page for changes (price, stock, release, edits). Changes surface as digest items on refresh.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| note | No |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
39 tool updates
v0.6.2- First observed
rynmesh_credit_scoreboard - First observed
rynmesh_credit_summary - First observed
rynmesh_digest_add_source - First observed
rynmesh_digest_feedback - First observed
rynmesh_digest_get - First observed
rynmesh_digest_refresh - First observed
rynmesh_discover_peers - First observed
rynmesh_download_relay_artifact - First observed
rynmesh_fetch_content_full - First observed
rynmesh_fetch_content_preview - First observed
rynmesh_fetch_full - First observed
rynmesh_fetch_peer_content_full - First observed
rynmesh_fetch_peer_content_preview - First observed
rynmesh_fetch_peer_full - First observed
rynmesh_fetch_peer_preview - First observed
rynmesh_fetch_preview - First observed
rynmesh_list_clips - First observed
rynmesh_list_content - First observed
rynmesh_list_job_capacities - First observed
rynmesh_list_peer_clips - First observed
rynmesh_list_peer_content - First observed
rynmesh_list_work_results - First observed
rynmesh_node_info - First observed
rynmesh_poll_work_orders - First observed
rynmesh_publish_clip - First observed
rynmesh_publish_content - First observed
rynmesh_publish_work_result - First observed
rynmesh_rank_clips - First observed
rynmesh_rank_content - First observed
rynmesh_read_messages - First observed
rynmesh_readlater_save - First observed
rynmesh_record_credit_event - First observed
rynmesh_register_job_capacity - First observed
rynmesh_register_node - First observed
rynmesh_relay_artifact_info - First observed
rynmesh_send_message - First observed
rynmesh_submit_work_order - First observed
rynmesh_upload_relay_artifact - First observed
rynmesh_watcher_add
TDQS
Scored across 39 tools
Many tools have overlapping purposes, especially the compatibility tools: fetch_preview/fetch_content_preview/fetch_peer_preview/fetch_peer_content_preview, and the corresponding full-content variants, are nearly indistinguishable at a glance. list_clips/list_content, rank_clips/rank_content, and publish_clip/publish_content further blur the boundary between legacy and current workflows.
Tool names are heavily inconsistent: rynmesh_digest_get uses 'get' while rynmesh_node_info uses 'info' and rynmesh_read_messages uses 'read'. Fetch, list, rank, publish, and compatibility variants follow no predictable verb/object pattern, so it is difficult to anticipate the correct tool name.
With 39 tools, the server exceeds the reasonable range for a single MCP server, and a large portion are redundant compatibility wrappers rather than distinct capabilities. The underlying feature set could likely be served by fewer than half these tools without losing functionality.
Core workflows are present: digest sources/feedback, content publishing/fetching, peer discovery, credit events, relay artifacts, and work orders. However, there are notable gaps such as no tool to remove a digest source or watcher, no read-later queue listing/removal, and no update/delete operations for published content.
Maintenance
Related MCP Connectors
Governed personal world model and memory for your AI agent. Pair once, connect over MCP.
Persistent, portable memory for AI assistants — your private memory graph, from any MCP client.
Persistent personal memory for AI assistants — save, search, and recall across every MCP client.
Own, grow and trade portable agent intelligence via TAIP/1 Packs and MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to network on behalf of users, handling profile management, intent-based matching, and secure messaging through the Model Context Protocol.14 npm1-
- FlicenseNot gradedqualityDmaintenanceProvides AI agents with persistent identities (Weid numbers) and a friend-based messaging system, enabling cross-platform AI-to-AI communication through 11 MCP tools.1-
- FlicenseNot gradedqualityBmaintenanceEnables MCP-compliant clients to run a personal AI copilot with agenda tracking, autonomous sandbox execution, ambient cue handling, fast reflex actions, and episodic memory.7-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants such as Claude and Cursor to discover and verify agents, negotiate offers, execute conditional settlements, and verify receipts and complete multi-agent workflows through eight MCP tools.1MIT