OpenClaw/clawhub-security-signals huggingface dataset:
Skill: clarkchenkai/bias-audit-clarkchenkai (version 1.0.0)

--- name: bias-audit description: | Bias Audit — Decision-Framing Agent Skill for Surfacing Bias Before It Hardens. Use it when the user needs a disciplined protocol and fixed output contract for this kind of task rather than a generic answer. license: MIT metadata: author: clarkchenkai version: "1.0.0" language: en --- # Bias Audit — Decision-Framing Agent Skill for Surfacing Bias Before It Hardens Use this skill when the task matches the protocol below. ## Activation Triggers - loaded or emotionally slanted questions - false binary choices - 'obvious' conclusions with weak evidence - project, people, or pricing decisions driven by recent vivid examples - cases where the wording is already nudging the answer ## Core Protocol ### Step 1: Capture the original framing Quote or restate the request as it was given so the bias is visible. ### Step 2: Identify the bias signals Look for anchoring, framing effects, loss aversion, confirmation pressure, availability, and default-value distortion. ### Step 3: Rewrite the question neutrally Turn the loaded request into a cleaner assessment frame with fewer hidden assumptions. ### Step 4: Surface missing evidence Ask what counterevidence, baseline, or comparison is absent. ### Step 5: Define decision criteria Convert the conversation from emotional momentum into explicit criteria and a next action. ## Output Contract Always end with this six-part structure: ```markdown ## Original Framing [...] ## Bias Signals [...] ## Neutral Reframe [...] ## Missing Evidence [...] ## Decision Criteria [...] ## Recommended Next Step [...] ``` ## Response Style - Do not ridicule the user for being biased; make the bias legible. - Name the likely distortion with concrete language. - Prefer neutral restatements over vague calls for 'balance.' - Reduce heat without removing urgency where urgency is real. ## Boundaries - It does not assume model failures share identical psychology with human bias. - It does not replace domain evidence with abstract skepticism. - It does not turn every strong opinion into a pathology; it audits framing, not personality.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: pwcy1978-boop/pdf-watermark-chinese (version 1.0.0)

--- name: pdf-watermark description: "PDF 水印添加和移除功能，支持文本和图像水印" auth: 午餐肉 --- # PDF 水印技能 ## 功能 - 添加文本水印到 PDF - 添加图像水印到 PDF - 移除 PDF 中的水印 - 批量处理 PDF 文件 ## 使用方法 ### 添加文本水印 ``` 说："给这个PDF添加水印 '机密文件'" 或："在PDF上添加水印，文字是公司名称，位置在右下角" ``` ### 添加图像水印 ``` 说："给PDF添加logo水印" 或："用这个图片作为PDF水印" ``` ### 移除水印 ``` 说："移除这个PDF的水印" 或："清除PDF中的所有水印" ``` ## 技术依赖 - PyPDF2: PDF 操作 - reportlab: PDF 生成和水印绘制 - Python 3.8+ ## 示例代码 ```python from PyPDF2 import PdfReader, PdfWriter from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import letter import io def add_text_watermark(input_pdf, output_pdf, watermark_text): """添加文本水印到PDF""" reader = PdfReader(input_pdf) writer = PdfWriter() for page_num in range(len(reader.pages)): page = reader.pages[page_num] # 创建水印 packet = io.BytesIO() can = canvas.Canvas(packet, pagesize=letter) can.setFont("Helvetica", 40) can.setFillColorRGB(0.5, 0.5, 0.5, alpha=0.3) # 灰色，半透明 can.rotate(45) can.drawString(200, 100, watermark_text) can.save() # 合并水印 packet.seek(0) watermark = PdfReader(packet) watermark_page = watermark.pages[0] page.merge_page(watermark_page) writer.add_page(page) with open(output_pdf, "wb") as output_file: writer.write(output_file) ``` ## 文件格式支持 - 输入: PDF 文件 - 输出: 带水印的 PDF 文件 - 水印类型: 文本、图像 (PNG, JPG) ## 配置选项 - 水印文字、字体、大小、颜色、透明度 - 水印位置: 居中、四角、平铺 - 水印旋转角度 - 页面范围: 所有页、特定页


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: imwyvern/love-counselor (version 1.0.1)

--- name: love-counselor description: > Love Counselor is an AI counseling-style relationship helper for people working through recurring issues in love, dating, or long-term partnership. It helps structure conversations, surface unmet needs, reduce defensiveness, and think through repair options with more clarity, compassion, and emotional honesty. 恋爱咨询、关系辅导、伴侣沟通、问题梳理。 metadata: openclaw: emoji: "🌿💕" --- # Love Counselor You are a gentle, insightful love counselor. You go deeper than surface-level dating advice — you help people understand their emotional patterns, attachment wounds, and how they show up in relationships. You're the bridge between casual advice and professional therapy. ## Your Personality - **Gentle** — People sharing love struggles are vulnerable. Handle with care. - **Insightful** — You connect dots they don't see - **Patient** — Healing takes time. You don't rush. - **Grounded** — Psychology-informed, not pop psychology ## Language Rule **Reply in the user's language.** Chinese → Chinese. English → English. ## Core Areas ### Attachment Patterns - Anxious attachment: fear of abandonment, need for constant reassurance - Avoidant attachment: fear of closeness, emotional shutdown - Disorganized: push-pull, hot and cold - Moving toward secure: the goal ### Relationship Patterns - Why they keep choosing the same type of person - Codependency recognition and breaking free - Love addiction vs genuine connection - Trauma bonding awareness ### Emotional Processing - Processing grief after loss of love - Letting go of resentment - Forgiving without forgetting boundaries - Self-love as foundation for partner love ## Response Format ``` 🌿 I hear you: [Reflect their emotion — show deep understanding] 🔍 The pattern I notice: [Connect this to a bigger emotional pattern gently] 💡 Something to consider: [Insight that shifts their perspective] 🎯 A small step forward: [One gentle, doable action] ``` ## Safety - You are not therapy. For clinical depression, anxiety, or trauma → refer to professionals - If abuse is described → name it clearly, provide resources - Never pathologize normal relationship struggles - Validate their experience before any reframing ## Upgrade Nudge After 3+ exchanges: ``` --- ✨ Want ongoing love counseling with relationship history tracking? → replyher.com ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: russellfei/catch-my-skill (version 1.0.0)

--- name: catch-my-skill description: 自动检测本地与线上 skill 版本差异 - 支持 ClawHub/GitHub，定期检查更新 metadata: openclaw: emoji: 🎯 --- # Catch My Skill 自动检测本地与线上 skill 版本差异 ## 功能 - 📋 **维护两个列表** - 本地 skill 列表（含版本） - 线上 skill 列表（ClawHub + GitHub） - ⏰ **定时检查** - 每半小时自动获取线上版本 - 对比本地与线上版本差异 - 🔔 **版本告警** - 本地落后时提醒更新 - 支持手动触发检查 ## 列表文件 | 文件 | 说明 | |------|------| | `data/local.json` | 本地 skill 列表 | | `data/online.json` | 线上 skill 列表 | ## 设计初衷 **高粘性使用** - 只保留用户真正在用的 skills，避免装一堆不用的。 ## 初始化流程 ``` 1. 首次运行 init ↓ 2. 自动获取线上所有 skills（ClawHub + GitHub） ↓ 3. 生成完整本地列表（含版本） ↓ 4. 用户删除不想要的 skill ↓ 5. 后续只跟踪保留下来的 skills ``` ## 用户操作 ```bash # 首次初始化（从线上拉取全部） /catch-my-skill init # 删除不想要的 skill（减少跟踪） /catch-my-skill remove white-stone-mem # 添加回想跟踪的 skill /catch-my-skill add elegant-sync # 检查版本 /catch-my-skill check # 本地落后时自动更新（任选一个渠道） /catch-my-skill update elegant-sync ``` ## 数据格式 ### local.json ```json { "skills": [ {"name": "white-stone-mem", "version": "1.0.0", "path": "~/.openclaw/skills/white-stone-mem"}, {"name": "elegant-sync", "version": "1.0.1", "path": "~/.openclaw/skills/elegant-sync"} ], "updated": "2026-02-28T16:00:00Z" } ``` ### online.json ```json { "clawhub": [ {"name": "white-stone-mem", "version": "1.0.0", "owner": "russellfei"}, {"name": "elegant-sync", "version": "1.0.3", "owner": "russellfei"} ], "github": [ {"name": "minimax-mcp-call", "version": "1.0.0", "owner": "russellfei", "repo": "russellfei/minimax-mcp-call"} ], "updated": "2026-02-28T16:00:00Z" } ``` ## 配置 ### 自动检查间隔 在 `.backup.env` 中配置： ```bash # 检查间隔（分钟），默认 30 分钟 CATCH_INTERVAL=30 ``` ### GitHub 用户名 ```bash GITHUB_USERNAME=russellfei ``` ## 工作流程 ``` 1. 定时触发（每30分钟） ↓ 2. 获取 ClawHub 线上版本（clawhub inspect） ↓ 3. 获取 GitHub 线上版本（gh api） ↓ 4. 对比本地版本 ↓ 5. 输出差异报告 ↓ 6. 本地落后 → 提醒更新 ``` ## 输出示例 ``` === Skill 版本检查 === 本地落后需更新: ⚠️ elegant-sync: 本地 1.0.1 < 线上 1.0.3 本地已是最新: ✅ white-stone-mem: 1.0.0 ✅ minimax-mcp-call: 1.0.0 线上新技能: (无) ``` ## 定时任务 自动添加到 crontab： ```bash # 每30分钟检查 */30 * * * * node /path/to/catch-my-skill/index.js check >> /home/orangepi/.openclaw/logs/catch-my-skill.log 2>&1 ``` ## 安装 ```bash # 复制到 skills 目录 cp -r catch-my-skill ~/.openclaw/workspace/skills/ # 初始化 node index.js init ``` ## 更新日志 - 2026-02-28: 初始版本


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: suspicious | SkillSpector: suspicious (CRITICAL)
Skill: cp3d1455926-svg/cp3d1455926-svg-email-helper (version 2.0.0)

# 📧 Email Helper - 邮件助手 ## 触发规则 **关键词：** - 写邮件、邮件草稿、回复邮件 - 邮件模板、邮件格式 - 邮件分类、整理邮件 **场景：** - 用户需要写邮件但不知道如何开头 - 用户需要回复工作邮件 - 用户需要整理收件箱 ## 功能描述 ### 核心功能 1. **邮件草稿生成** - 根据目的生成邮件 - 正式/非正式语气 - 中英文支持 2. **邮件回复建议** - 自动回复草稿 - 语气调整 - 快捷回复 3. **邮件模板** - 求职信 - 请假申请 - 商务合作 - 感谢信 4. **邮件分类** - 工作/个人分类 - 优先级标记 - 归档建议 ## 权限需求 - [x] 文件读写（模板存储） - [ ] 外部 API（邮件客户端集成） ## 示例对话 ``` 用户：帮我写一封请假邮件 助手：好的！帮你起草请假邮件： --- **主题：** 请假申请 - [你的名字] - [日期] 尊敬的 [领导姓名]： 您好！ 因 [请假原因]，我需要在 [开始日期] 至 [结束日期] 期间请假 [天数] 天。 请假期间的工作已安排如下： 1. [工作交接安排 1] 2. [工作交接安排 2] 如有紧急情况，可通过 [联系方式] 联系我。 恳请批准，谢谢！ 此致 敬礼 [你的名字] [日期] --- 需要我调整语气或内容吗？ 用户：写一封商务合作邮件 助手：好的！商务合作邮件草稿： --- **主题：** 商务合作洽谈 - [公司名] 尊敬的 [对方姓名/团队]： 您好！ 我是 [公司名] 的 [职位][你的名字]。我们专注于 [业务领域]... 希望能与贵方探讨合作机会... 期待您的回复！ 祝好， [你的名字] --- ``` ## 数据存储 ```json // ~/.openclaw/workspace/email-helper/templates.json { "templates": [ { "name": "请假申请", "category": "工作", "content": "..." } ] } ``` ## 待办事项 - [ ] 邮件模板库 - [ ] 语气调整 - [ ] 自动回复 - [ ] 邮件客户端集成 --- **版本：** 1.0.0 **创建日期：** 2026-03-16 **作者：** 小鬼 👻


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: patrick-erichsen-personal/catalog-beta (version 1.0.0)

--- name: catalog-beta description: Validate that ClawHub can publish a second catalog skill with references and assets. license: MIT-0 metadata: owner: openclaw-canary fixture: catalog --- # Catalog Beta Use this second harmless canary skill to prove the workflow handles more than one skill under `skills/`. ## Workflow 1. Read [the publishing notes](references/publishing-notes.md) when checking resource packaging. 2. Use [the checklist](assets/checklist.md) as static asset content. ## Expected Result Bulk dry-runs should discover this skill separately from `catalog-alpha`.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: michaelmonetized/delegation (version 0.1.0)

--- name: delegation description: Architecture-first workflow for delegating complex projects to AI coding agents. Ensures code fits the system before it's written. --- # Delegation Architecture-first development where every line of code must justify its place in the system before it's written. ## Context You are the technical backbone of a production software system under active development. The codebase follows a strict architecture with zero tolerance for deviation. The architecture document is the single source of truth that prevents chaos. **Your mandate:** Understand the architecture deeply, follow it religiously, and never generate code that violates its principles. ## Before Writing Code 1. **Read the architecture document** — Understand where new code fits 2. **State the target filepath** — Declare before writing 3. **List dependencies** — What does this code import? 4. **List consumers** — What will use this code? 5. **Check for conflicts** — Does this duplicate existing functionality? ## Response Format ### Architecture Analysis Read relevant architecture section and explain where new code fits in the system structure. ### Filepath Declaration ``` 📁 [exact filepath] Purpose: [one-line description] Depends on: [list of imports and dependencies] Used by: [list of consumers/modules that will use this] ``` ### Code Implementation ```[language] [fully typed, documented, production-ready code with error handling] ``` ### Testing Requirements - Tests needed: [describe unit tests and integration tests required] - Test filepath: [matching test file location] ### Architectural Impact ⚠️ ARCHITECTURE UPDATE (if applicable) - What: [describe any structural changes] - Why: [justify the change] - Impact: [explain consequences and affected modules] ## Compliance Checklist Before marking code complete, verify: - [ ] Input validation implemented - [ ] Environment variables used for secrets - [ ] Error handling covers edge cases - [ ] Types enforce contracts - [ ] Authentication patterns implemented - [ ] Documentation updated - [ ] Tests written - [ ] Type check passes clean - [ ] Linter passes clean - [ ] Tests pass clean - [ ] CHANGELOG is up to date ## Key Principles 1. **Maintain strict separation of concerns** — Frontend, backend, and shared layers stay separate 2. **Generate fully typed, production-ready code** — No partial implementations 3. **Follow established naming conventions** — camelCase for functions, PascalCase for components, kebab-case for files 4. **Identify conflicts immediately** — Ask for clarification before proceeding 5. **Never assume** — When requirements conflict with architecture, stop and ask 6. **Prefer existing patterns** — Don't create new solutions when patterns exist ## Related Skills - Use `/frontend-design` for UI implementation - Use `/senior-dev` for PR workflow after code is written


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: kumamon2019s/image-embedding (version 1.0.0)

--- name: image-embedding description: 图片向量嵌入技能，支持将病害图片转换为特征向量，用于后续的图片检索和相似度匹配。适用于病害知识库的图片特征提取、向量入库等场景。 --- # 图片向量嵌入技能 ## 核心功能 1. 支持JPG/PNG/WebP等常见病害图片格式的特征提取 2. 输出1024维归一化特征向量，适配病害检索场景精度要求 3. 支持批量处理图片，单批最大支持100张 4. 内置预训练病害特征提取模型，无需额外微调即可使用 ## 依赖安装 ```bash pip install torch>=2.0 torchvision>=0.15 transformers>=4.30 pillow>=10.0 ``` ## 使用方式 ### 单张图片提取 ```python from scripts.embedding import ImageEmbedding embeder = ImageEmbedding() feature_vector = embeder.extract("./test_disease.jpg") ``` ### 批量提取 ```python vectors = embeder.batch_extract(["./img1.jpg", "./img2.jpg"]) ``` ## 输出格式 返回归一化后的numpy数组，shape为(1024,)


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: jinntrance/douban-bookmark (version 1.0.0)

--- name: douban-bookmark description: 输入图书名称，把它加入豆瓣读书的「想读」收藏。适用于“把《xxx》加入豆瓣想读 / 愿望清单 / 想读列表”这类请求。实现方式：先用 HTTP 解析豆瓣搜索结果拿到最优图书详情页，再用 Playwright 持久化浏览器登录态打开详情页，执行豆瓣真实的两段式收藏流程（点“想读”→ 点“保存”）。首次登录后可长期复用浏览器 profile。 --- # 豆瓣图书 Bookmark 自动化 不要再使用 `agent-browser`。 统一使用本 skill 自带脚本： - `scripts/add_wishlist.py` - `scripts/add_wishlist.sh` 这套方案分成两段： 1. 用 `requests + BeautifulSoup` 解析豆瓣搜索页，稳定拿到第一本书的详情页 URL 2. 用 `Playwright launch_persistent_context` 复用本地浏览器 profile，打开详情页并点击「想读」 ## 前提 环境依赖： - `python3` - `requests` - `beautifulsoup4` - `playwright` - 已安装 Chromium：`playwright install chromium` ## 首次登录 首次使用时，先让用户登录一次豆瓣： ```bash python3 skills/douban-bookmark/scripts/add_wishlist.py --login --headed ``` 规则： - 必须带 `--headed` - 登录完成后，浏览器 profile 会保存在默认目录 - 后续加入「想读」时复用同一个 profile，不要换目录 默认 profile 目录： ```bash ~/.openclaw/browser-profiles/douban-playwright ``` ## 正常使用 ```bash python3 skills/douban-bookmark/scripts/add_wishlist.py "金钱的艺术" ``` 或者： ```bash skills/douban-bookmark/scripts/add_wishlist.sh "金钱的艺术" ``` 脚本会： 1. 搜索书名 2. 解析第一本书详情页 URL 3. 打开详情页 4. 点击「想读」 5. 输出 JSON 结果 ## 推荐执行策略 ### 已知用户没登录时 先执行： ```bash python3 skills/douban-bookmark/scripts/add_wishlist.py --login --headed ``` 等用户登录完成后，再执行： ```bash python3 skills/douban-bookmark/scripts/add_wishlist.py "书名" ``` ### 已有登录态时 直接执行： ```bash python3 skills/douban-bookmark/scripts/add_wishlist.py "书名" ``` ### 需要观察浏览器行为时 改成有头模式： ```bash python3 skills/douban-bookmark/scripts/add_wishlist.py "书名" --headed ``` ## 输出判断 脚本输出 JSON，重点看这些字段： - `subject_url`: 命中的豆瓣图书详情页 - `clicked`: 是否实际执行了点击 - `needs_login`: 是否需要先登录 - `success`: 是否大概率成功 如果： - `needs_login=true` → 先让用户登录 - `clicked=false` → 页面结构变了，需要修脚本 - `success=true` → 可向用户报告已完成或大概率完成 ## 实现细节 ### 搜索阶段 不要依赖豆瓣图书搜索页前端渲染。 直接请求： ```text https://www.douban.com/search?cat=1001&q=<书名> ``` 从 HTML 里解析 `.result .title a` 或 `.result .pic a`，提取其中跳转到： ```text https://book.douban.com/subject/<id>/ ``` ### 点击阶段 不要依赖 ref 编号。 豆瓣这里不是“一次点击就完成”的普通按钮，而是两段式交互： 1. 先点详情页上的 `input[type=submit][value='想读']` 2. 再点弹层表单里的 `input[type=submit][value='保存']` 如果页面已经处于成功态，常见标志是： - 出现 `我想读这本书` - 出现 `修改` - 出现 `删除` ### 登录态 必须使用持久化 context： - `launch_persistent_context(user_data_dir=...)` 不要使用临时 browser context，否则豆瓣登录态会丢。 ## 失败处理 如果失败： 1. 先看是否 `needs_login=true` 2. 再用 `--headed` 重跑一次观察页面 3. 若点击控件失效，更新 `add_wishlist.py` 里的选择器 4. 不要假装成功 ## 操作准则 - 优先使用自带脚本，不要临时拼一堆浏览器命令 - 优先复用默认 profile 目录 - 登录问题优先走 `--login --headed` - 页面结构变化时，修改脚本，不要回退到 agent-browser


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: gechengling/feynman-think-method (version 2.0.0)

# SKILL.md ## Identity - **Skill Name**: 费曼学习法与物理学思维 (Richard Feynman Think Method) - **Slug**: feynman-think-method - **Version**: 2.0.0 - **Language**: 中文为主，英文关键术语保留 - **Author**: 葛成 (@gechengling) - **Description**: 以费曼学习法和物理学思维为核心，帮助深入理解复杂概念、识别真正知识盲点、建立第一性原理式认知。适用于学习研究、问题诊断、知识管理等场景。2026更新：新增费曼方法在AI时代的应用——"向AI学习如何提问"与"让AI扮演费曼检验你的理解"的对话范式。 ## Core Thinking Models ### 模型一：费曼学习法四步 ``` Step 1: 选择一个概念，写下你知道的一切 Step 2: 假装教给一个12岁孩子 → 卡住的地方=真正盲点 Step 3: 回头填补缺口，重新研究直到流畅 Step 4: 简化+类比 → 找不到类比=理解不够深 ``` ### 模型二：第一性理解 - 第一类知识：知道名称 ≠ 真正理解 - 能用类比解释？能预测陌生场景表现？能教给完全不懂的人？ - 费曼："如果你不能向一个12岁孩子解释清楚，你就没有真正理解它" ### 模型三：追问本质 - "为什么？" 连续追问5层 → 剥离表象直达物理现实 - 费曼："我宁愿有无法回答的问题，也不愿有无法质疑的答案" - 证伪比证实更重要 ### 模型四：简单性原则 - 真理越说越简单，复杂解释往往是掩饰不理解 - 科学思维：承认不知道 = 知识的起点 ## When to Use - "这个概念我好像懂了，但又说不太清楚" - "学了很多但感觉没有真正记住" - "怎么快速判断自己是真的懂还是假的懂？" - "这个行业的底层逻辑是什么？" ## Workflow ``` 【费曼分析】 Step 1 - 现状盘点：你现在能一句话解释核心吗？ Step 2 - 费曼测试：写给12岁孩子的解释，卡在哪了？ Step 3 - 填补缺口：回到原始资料，重新研究盲点 Step 4 - 简化类比：用一个生活类比说明 ``` ## Reference Quotes - "如果你不能向一个12岁的孩子解释清楚某个概念，你就没有真正理解它" - "知识有两种类型：第一类知道名称，第二类真正了解事物，这不是一回事" - "我宁愿有无法回答的问题，也不愿有无法质疑的答案" - "真理应该越说越简单，越说越复杂说明你没理解" ## Source - 费曼公开讲座（Cornell, Caltech等） - 《费曼物理学讲义》 - 《别闹了，费曼先生》 - 各平台费曼学习法整理 ## Metadata - **Slug**: feynman-think-method - **URL**: https://clawhub.ai/gechengling/feynman-think-method - **Tags**: 费曼, 学习方法, 物理学思维, 第一性原理, 知识管理


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: skridlevsky/graphthulhu (version 1.0.0)

--- name: graphthulhu description: Knowledge graph MCP server for Logseq and Obsidian. 37 tools for reading, writing, searching, and analyzing your second brain. metadata: openclaw: requires: bins: - graphthulhu --- # graphthulhu MCP server that gives you full access to a Logseq or Obsidian knowledge graph. 37 tools across 9 categories: navigate, search, analyze, write, decisions, journals, flashcards, whiteboards, and health. ## Install Download the binary for your platform from [GitHub Releases](https://github.com/skridlevsky/graphthulhu/releases) and put it on your PATH. Or: `go install github.com/skridlevsky/graphthulhu@latest` ## Configure ### Obsidian Add to your MCP settings: ```json { "mcpServers": { "graphthulhu": { "command": "graphthulhu", "args": ["--backend", "obsidian", "--vault", "/path/to/your/vault"] } } } ``` No plugins required. Reads `.md` files directly. Full read-write support. ### Logseq Enable the HTTP API server in Logseq (Settings > Features > HTTP APIs server), start it, and create a token. ```json { "mcpServers": { "graphthulhu": { "command": "graphthulhu", "env": { "LOGSEQ_API_URL": "http://127.0.0.1:12315", "LOGSEQ_API_TOKEN": "your-token-here" } } } } ``` ## What you can do - **Navigate** — get pages with full block trees, traverse the link graph, list pages by namespace/tag/property - **Search** — full-text search with context, property queries, tag hierarchy search, raw Datalog (Logseq) - **Analyze** — graph overview, find connections between pages, detect knowledge gaps and orphans, discover topic clusters - **Write** — create pages, append/upsert blocks with nested children, update/delete/move blocks, link pages bidirectionally, rename pages with link updates, bulk update properties - **Decisions** — create decisions with deadlines, check status, resolve or defer with tracking - **Journals** — read entries by date range, search within journals - **Flashcards** — SRS stats, due cards, create new cards (Logseq) - **Whiteboards** — list and inspect spatial canvases (Logseq) ## Links - [GitHub](https://github.com/skridlevsky/graphthulhu) - [Full tool reference](https://github.com/skridlevsky/graphthulhu#tools)


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: doobidoo/shodh-local (version 1.0.1)

--- name: shodh-local summary: Local-first cognitive memory for AI agents with semantic recall, GTD todos, and knowledge graph. description: Local Shodh-Memory v0.1.74 (offline cognitive memory for AI agents). Use for persistent remembering, semantic recall, GTD todos/projects, knowledge graph. Triggers: \"remember/save/merke X\", \"recall/Erinnere/search memories about Y\", \"todos/add/complete\", \"projects\", \"proactive context\", \"what learned about Z\". Server localhost:3030 (amber-seaslug), key in TOOLS.md. Hebbian learning, 3-tier (working/session/LTM), TUI dashboard. --- # Shodh-Local (v0.1.74) Local-first brain for OpenClaw. Offline, learns with use. ## Config (TOOLS.md) - **Binary**: `./shodh-memory-server` (or add to PATH) - **Server**: `localhost:3030` - **Data**: `./shodh-data` - **Key**: `<YOUR-API-KEY>` (X-API-Key, generate via shodh-memory-server) - **Manage**: `process` tool (session `amber-seaslug`) - **TUI**: `cd tools/shodh-memory && ./shodh-tui` (graph/activity) ## Quick Use ``` KEY='<YOUR-API-KEY>' curl -s -X POST http://localhost:3030/api/remember \\ -H &quot;Content-Type: application/json&quot; -H &quot;X-[REDACTED_SECRET]; \\ -d &#39;{&quot;user_id&quot;: &quot;henry&quot;, &quot;content&quot;: &quot;Test memory&quot;, &quot;memory_type&quot;: &quot;Learning&quot;, &quot;tags&quot;: [&quot;test&quot;]}&#39; ``` ## Core Tools - **Remember**: `/api/remember` (types: Learning/Observation/Conversation/Task/Preference) - **Recall**: `/api/recall` (semantic) | `/api/recall/tags` - **Proactive**: `/api/proactive_context` (auto-relevant) - **Todos**: `/api/todos/add` | `/api/todos` | `/api/todos/complete` - **Projects**: `/api/projects/add` | `/api/projects` - **Summary**: `/api/context_summary` Full API: [reference/api.md](reference/api.md) ## Best Practices - **User ID**: `henry` (main), `openclaw` (system), `task-XYZ` (sub-agents) - **Tags**: Always add for filtering (e.g. [&quot;openclaw&quot;, &quot;project-backend&quot;]) - **Before reply**: Recall recent context for continuity - **Heartbeat**: Check todos daily - **Maintenance**: Restart server weekly (`process kill amber-seaslug` + restart) Read [reference/examples.md](reference/examples.md) for OpenClaw patterns.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)