senclaw/moithub

app Đọc moithub.com (Molthub — "Where Agents Come to Compute") cho agent SenClaw. LƯU Ý: moithub.com là một TÁC PHẨM CHÂM BIẾM — một trang HTML tĩnh nhại giao diện nền tảng nội dung người lớn bằng thuật ngữ machine learning

Install

senclaw app install senclaw/moithub

Verifies sha512 and SenClaw’s signature before writing to disk.

Documentation

Moithub — SenClaw Space App

Đọc [moithub.com](https://moithub.com) ("Molthub — Where Agents Come to Compute") cho agent SenClaw: tổng quan trang, 22 danh mục, 28 "kênh" + bio, 59 mục catalogue, mục thịnh hành và các banner quảng cáo nhại — qua REST cho UI và MCP cho agent.

moithub.com là một tác phẩm châm biếm. Chính footer của trang tuyên bố: đây là satirical art project, không liên quan tới Pornhub/Aylo hay bất kỳ nền tảng nội dung người lớn nào, là parody. Trang không có API, không có tài khoản, không có video — toàn bộ "catalogue" là dữ liệu bịa nhúng sẵn trong một thẻ <script>. App này chỉ đọc và tường thuật lại đúng như vậy.

Vì sao app không có REST client

Trang không công bố API nào. Mọi đường dẫn — /api/v1, /openapi.json, /skill.md, /llms.txt — đều trả về cùng một trang HTML 200 (catch-all), không phải endpoint. Nên cách trung thực duy nhất để "truy cập moithub.com" là tải một trang và đọc nó.

Nội dung lại được render phía client từ các literal trong một thẻ <script>: categories, channels, channelBios, videos, trendingSearches, tickerItems, adBanners. Cào DOM đã render thì cần cả một trình duyệt; đọc thẳng các literal đó thì không. Đó là việc của parse_page.

Bên trong

LớpFileGhi chú
Giải mã tiêu đềsrc/decode.rsBóc lớp đánh dấu thể loại khỏi tiêu đề, trả về phát biểu ML còn lại + gloss từng khái niệm. Tất định, không LLM
Fetch + parsersrc/moithub.rsTải trang, chọn thẻ <script> nội tuyến lớn nhất, đọc các literal bằng một trình đọc JS tí hon (các literal gần giống JSON nhưng key trần: {title:"…",cat:"…"} — serde_json từ chối), giải HTML entity, bỏ tag
Cache + RESTsrc/api.rsMột Snapshot sau RwLock, refresh khi quá TTL; tải hỏng thì **giữ bản cũ và báo stale: true** thay vì trả rỗng
MCP serversrc/mcp.rsmoithub-mcp → 8 tool moithub_*, chỉ đọc
Web UIweb/index.htmlMột file tĩnh, không bước build
Skillskills/moithub-browseChỉ đọc, bắt buộc nói rõ bản chất châm biếm
Personapersonas/moithub-scout.mdNgười quan sát chỉ đọc

Chạy trên port 4400.

Tại sao mỗi kết quả đều có trường nature

Một agent gọi moithub_videos giữa chừng một cuộc hội thoại chỉ thấy đúng kết quả tool đó. Nếu kết quả chỉ là một danh sách tiêu đề, agent rất dễ tường thuật chúng như nội dung có thật. Nên mọi tool — kể cả moithub_status khi mạng hỏng — đều kèm nature: một câu nhắc rằng trang là parody tĩnh, không API, catalogue là bịa.

Kèm theo đó là fetched_at / age_secs / stale để phân biệt "trang vừa nói thế" với "không vào được trang, đây là bản cache một tiếng trước".

Giải tiêu đề: một phép trừ, không phải suy diễn

Tiêu đề trên trang trông như câu đố nhưng theo một công thức cố định:

tiêu đề = [một phát biểu ML đúng về mặt kỹ thuật] + [bộ đánh dấu thể loại vay mượn]

Nửa ML luôn đúng nghĩa đen; toàn bộ hàm ý hai nghĩa nằm ở lớp phủ lên trên. Nên giải = bóc lớp đó ra:

Multi-Head Attention with 96 Heads Simultaneously [EXTREME]
  markers  : EXTREME, Simultaneously        (cường điệu)
  technical: Multi-Head Attention with 96 Heads
  concepts : multi-head attention → attention chạy song song nhiều 'đầu'…

Vì tập đánh dấu là tập đóng (~80 khuôn, dùng đi dùng lại trên cả 59 mục), việc này khớp chuỗi là đủ — moithub_explain không gọi LLM và cho kết quả tất định. Đo trên toàn bộ catalogue: 59/59 mục tra được ít nhất một khái niệm, trung bình 1,7 lớp đánh dấu / 1,8 khái niệm mỗi mục.

Hai chỗ cần biết khi đọc kết quả: technical là phần dư, không phải câu viết lại — nguồn chuẩn để hiểu là concepts + markers; và tiêu đề nào gần như toàn lớp đánh dấu thì technical rơi về danh sách khái niệm, reading nói rõ.

Gloss của các thực thể hệ sinh thái phân biệt CÓ THẬT (Moltbook, OpenClaw) với BỊA (MoltBot, ClawdHub, Crustafarian) — đúng chỗ agent dễ nhầm nhất.

MCP tools (moithub-mcp)

moithub_status · moithub_overview · moithub_categories · moithub_channels · moithub_videos · moithub_search · **moithub_explain** · moithub_trending · moithub_refresh

Không có tool ghi — trang không có gì để ghi.

REST

RouteTrả về
GET /api/statusURL đang đọc, TTL, tuổi cache, lỗi gần nhất
GET /api/overviewtiêu đề, tagline, disclaimer nguyên văn, các con số
GET /api/categoriesdanh mục + số mục mỗi danh mục
GET /api/channels?query=&limit=kênh hư cấu + bio
GET /api/videos?category=&quality=&tag=&premium=&limit=catalogue đã lọc
GET /api/search?query=&limit=tìm trong catalogue + kênh
GET /api/explain?title=&query=&all=&limit=giải mã tiêu đề: markers + technical + concepts
GET /api/trendingtrendingSearches, ticker, banner quảng cáo
POST /api/refreshtải lại ngay, bỏ qua cache

Cấu hình

BiếnMặc địnhÝ nghĩa
PORT4400Cổng HTTP
SENCLAW_BIND_HOST127.0.0.1Chỉ đổi khi thật sự cần — app không tự xác thực gì
MOITHUB_BASEhttps://moithub.comHost duy nhất app gọi ra. Không nhận từ request: một app cho phép caller chọn host là một open proxy
MOITHUB_TTL_SECS1800Bản snapshot còn "tươi" bao lâu. Trang tĩnh nên để dài

Develop

cargo run -p moithub            # http://127.0.0.1:4400
cargo test -p moithub           # 22 test, chạy offline

Parser là hàm thuần nhận HTML dạng chuỗi, nên toàn bộ test không cần mạng.

Đóng gói

apps/moithub/scripts/pack.sh    # → apps/moithub/moithub-app.zip

Declared permissions

{
  "network": [
    "127.0.0.1",
    "moithub.com"
  ],
  "exec": [
    "./moithub"
  ]
}

Declared by the publisher, not enforced by SenClaw. The CLI compares this against what you already have installed and asks before anything widens.

Published by

@senclawtrusted
benji
51 packages · 21 downloads · member since 2026-07 · GitHub since 2015-06

The checkmark means SenClaw confirmed who this publisher is. It says nothing about whether their packages are safe.

About

Owner@senclaw
Latest0.1.0
Downloads0
Repositorygithub.com/NortonBen/senclaw-app ↗

Versions

VersionTagsArtifactsPublished
0.1.0latestdarwin-arm64, linux-x64, win32-x642026-08-15

Artifacts · 0.1.0

PlatformFormatSignatureFileSize
darwin-arm64zipunsignedmoithub-app.zip1641 KB
linux-x64zipunsignedmoithub-app.zip1840 KB
win32-x64zipunsignedmoithub-app.zip1820 KB

Unsigned builds require sign-in to download and are not distributed to the auto-updater, because unsigned executables from a new domain get flagged as unsafe. Sign and notarize (macOS) or Authenticode-sign (Windows) to distribute publicly.

Auto-update endpoints

For a Tauri app — add to tauri.conf.json:

"endpoints": ["https://senclaw.bacnd.com/api/v1/updates/tauri/senclaw/moithub/{{target}}/{{arch}}/{{current_version}}"]

For an electron-updater app — generic provider URL:

https://senclaw.bacnd.com/updates/senclaw/moithub/stable

Only signed/notarized artifacts are offered as updates — a client fetches the update without credentials, and unsigned binaries are not publicly downloadable.

Something wrong with this package?

Report this package

Report this package

Tell us what is wrong and a moderator will look at it. Be specific — a report that names a version and a behaviour can be checked in minutes; one that says “looks sketchy” cannot be acted on at all.

Not about this package? Contact us instead. What happens to a report is described in reporting and moderation.

API: GET https://senclaw.bacnd.com/api/v1/packages/senclaw/moithub