Claim this agent
agentCLAWHUBUnverified

mubu-integration

幕布(mubu)与 Obsidian 集成:将幕布大纲导入 Obsidian、把 Markdown 同步到幕布、查询/导出幕布笔记。触发词:幕布、mubu、幕布导入 Obsidian、mubu 同步、幕布笔记导出 Skill: mubu-integration Owner: liuboacean Summary: 幕布(mubu)与 Obsidian 集成:将幕布大纲导入 Obsidian、把 Markdown 同步到幕布、查询/导出幕布笔记。触发词:幕布、mubu、幕布导入 Obsidian、mubu 同步、幕布笔记导出 Tags: agent-skills:1.3.14, ai-agent:1.3.14, api:1.3.15, automation:1.3.16, ci:1.3.14, claude-code:1.3.14, cli:1.3.16, integration:1.3.15, knowledge-management:1.3.14, latest:1.3.16, markdown:1.3.16, mubu:1.3.16, mubu-notes:1.3.14, notes:1.3.14, obsidian:1.3.16,

OpenClaw

Rank

62

Safety

84

Downloads

2.8k

Updated

Oct 9, 2026

Version

1.3.16

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 2.8K downloads reported by the source. Last updated 10/9/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Oct 9, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 9, 2026
Adoption signal
2.8K downloadsadoption · observed Oct 9, 2026
Latest release
1.3.16release · observed Sep 2, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s1779brgcyhkdmz9tgjpwarx3h84vb82:mubu-integration
  1. Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
  2. Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-liuboacean-mubu-integration/snapshot"

Documentation

CLAWHUB

153,172 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

SKILL.md

---
name: mubu-integration
description: 幕布(mubu)与 Obsidian 集成:将幕布大纲导入 Obsidian、把 Markdown 同步到幕布、查询/导出幕布笔记。触发词:幕布、mubu、幕布导入 Obsidian、mubu 同步、幕布笔记导出
---

# 幕布集成 Skill

幕布(mubu.com)是一款极简大纲工具,支持将大纲一键转为思维导图。本 Skill 提供 API 集成能力。

## 权限与安全边界
本 Skill 以你的幕布账号身份操作**远程真实内容**,使用前请知悉其权限边界:
- **读取**:仅读取环境变量 `MUBU_PHONE` / `MUBU_PASSWORD` / `MUBU_MEMBER_ID`(环境变量未设置时,才由仓库外的 `~/.workbuddy/.env.mubu` 补全;`MUBU_MEMBER_ID` 即幕布 colla 成员 ID,仅 `save` 写回需要。**该值任何 API 都不返回,无法自动获取,必须手动设置 `MUBU_MEMBER_ID` 或提前写入 token 缓存的 `member_id`**)。
- **写入**:仅在本地写入 Token 缓存文件 `~/.mubu_token`(权限 `0o600` + 跨进程 `fcntl` 锁),不写入其它文件。
- **网络**:仅访问 `api2.mubu.com`(base URL 可由 `MUBU_BASE_URL` 覆盖,但仅限 `mubu.com` 家族域名,防 MITM),**无第三方服务、无遥测、无数据外发**。
- **写操作需确认**:真实会改动幕布内容的写操作为 `create`(新建)、`rename_folder`(重命名文件夹)、`save`(保存文档,端点 `/colla/events`,需 `member_id`)、`move`(移动,端点 `/list/custom/drag`)、`rename_doc`(文档重命名,端点 `/list/rename_doc`)、`purge`(彻底删除,唯一真实调用服务端删除,不可逆);`delete` 现为**软删除**(仅标记进本地回收站,云端副本仍在)。`save` / `move` / `rename_doc` 已在 v1.3.9 经真机验证可用。所有真实写操作均需显式传 `--yes` 才执行,否则中止并提示。
- **信任边界**:Skill 不读取你的其它本地文件、不执行与幕布无关的 shell 命令;它只做「登录 → 读写你的幕布文档」这一件事。

## 功能概览

| 功能 | 接口 | 说明 |
|------|------|------|
| 用户登录 | `POST /user/phone_login` | 手机号密码登录获取 Token |
| Token 刷新 | 自动处理 | access_token 2小时过期,临近过期自动重新登录(重登仅重试 1 次,杜绝死循环) |
| 创建文件夹 | `POST /list/create_folder` | 在指定位置创建文件夹 |
| 创建文档 | `POST /list/create_doc` | 创建新的大纲文档 |
| 获取列表 | `POST /list/get` | 获取文件夹下的文档列表 |
| 获取文档 | `POST /document/edit/get` | 获取文档详细内容(真实端点;body 为 docId+password+isFromDocDir,返回 data.definition 为 JSON 字符串需二次解析) |
| 更新文档 | `POST /colla/events` | 保存/更新文档内容(v1.3.9 起可用;colla 协同端点,`events` 承载 changeset;需 `member_id`,私人文档由 `MUBU_MEMBER_ID` 或 token 缓存提供)|
| 删除文档 | `POST /list/delete_doc` | 删除文档(按类型区分端点) |
| 删除文件夹 | `POST /list/delete_folder` | 删除文件夹(原 `/list/delete` 实测非法,已弃用) |
| 移动文档 | `POST /list/custom/drag` | 移动文档/文件夹到其他位置(v1.3.9 起可用;body `dst/src/folderId`,已真机验证)|
| 导出 Markdown | 本地转换 | 将大纲结构转换为 Markdown |

## API 基础信息

- **Base URL**: `https://api2.mubu.com/v3/api`
- **认证方式**: JWT Token,通过请求头 `Jwt-Token` 传递
- **Content-Type**: `application/json;charset=UTF-8`

## 环境变量配置

在使用前,需要配置以下环境变量:

```bash
export MUBU_PHONE="your_phone_number"    # 幕布账号手机号
export MUBU_PASSWORD="your_password"      # 幕布账号密码
# 可选:幕布 colla 成员 ID(仅 save 写回需要;任何 API 都不暴露,必须手动设置,缺失时 save 会明确报错)
export MUBU_MEMBER_ID="your_collab_member_id"
```

> 切勿在脚本或代码中硬编码明文密码;凭据仅通过环境变量或仓库外的
> `~/.workbuddy/.env.mubu` 提供。

---

## 使用说明

### 1. 使用 MubuClient

所有操作都通过 `scripts/mubu/client.py` 中的 `MubuClient` 类完成(`scripts/mubu_api.py` 仅为向后兼容的重新导出 shim,不再建议直接使用;**不再有**独立的
`login()` / `create_folder()` / `create_doc()` / `get_list()` / `get_doc()` / `save_doc()` /
`delete_item()` 模块级函数)。实例化时自动读取 `MUBU_PHONE` / `MUBU_PASSWORD`
环境变量(或 `~/.workbuddy/.env.mubu`)并加载本地缓存 Token:

```python
from mubu.client import MubuClient

# 登录:凭据来自环境变量;返回扁平 data(token / id / name)
client = MubuClient()
info = client.login()
print(info["user_id"], info["username"])   # 注意是扁平 data["id"],非 data["user"]["id"]

README.md

[English](README.md) | [中文](README.zh-CN.md)

![mubu-integration](assets/social-preview.png)

# mubu-integration

> Turn Mubu (幕布) into a Markdown-native, AI-agent-controllable outliner.

[![GitHub stars](https://img.shields.io/github/stars/liuboacean/mubu-integration?style=social)](https://github.com/liuboacean/mubu-integration/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/liuboacean/mubu-integration?style=social)](https://github.com/liuboacean/mubu-integration/network/members)
[![MIT License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![CI](https://img.shields.io/github/actions/workflow/status/liuboacean/mubu-integration/test.yml?branch=main)](https://github.com/liuboacean/mubu-integration/actions/workflows/test.yml)

Manage your Mubu (幕布) outlines from the command line — **and as an AI Agent Skill** — with lossless Markdown import/export round-trip.

---

## ✨ Try it in 3 commands (magic moment)

```bash
python3 scripts/mubu_api.py create "周会" --md examples/weekly.md    # Markdown outline → Mubu
python3 scripts/mubu_api.py get <doc-id> --export markdown > out.md  # Mubu → Markdown
diff weekly.md out.md                                              # no output = byte-for-byte identical
```

![demo](assets/demo.gif)

---

## 🆚 Why mubu-integration?

| Capability | Manual copy | Existing export-plugin scripts | **mubu-integration** |
| :--- | :---: | :---: | :---: |
| Mubu → Markdown | ✅ | ⚠️ partial | ✅ |
| Markdown → Mubu | ❌ | ❌ | ✅ **(only)** |
| Round-trip fidelity (`diff` = no diff) | ❌ | ❌ | ✅ **(only)** |
| Whole-tree batch / OPML / FreeMind | ❌ | ⚠️ some | ✅ |
| Callable by an AI Agent | ❌ | ❌ | ✅ **(only)** |
| Scriptable from the command line | ❌ | ⚠️ | ✅ |

---

## 💡 Use cases

**① Let your AI Agent read & write Mubu directly** — turn Mubu into your Agent's long-term, structured memory.

```bash
python3 scripts/mubu_api.py get <doc-id> --export markdown > memory.md   # Agent pulls the latest outline
# ... Agent edits memory.md ...
python3 scripts/mubu_api.py save <doc-id> --md memory.md                 # writes the updated outline back to Mubu
```

**② Obsidian ↔ Mubu, two-way outlines** — keep your knowledge base and your outliner in sync as plain Markdown.

```bash
python3 scripts/mubu_api.py get <doc-id> --export markdown > vault/notes/mubu.md   # Mubu → Obsidian
python3 scripts/mubu_api.py create --md vault/notes/mubu.md --folder <folder-id>   # Obsidian → Mubu
```

**③ Auto-archive weekly meeting notes** — push `examples/weekly.md` into Mubu in one step.

```bash
python3 scripts/mubu_api.py create "周会" --folder <folder-id> --md examples/weekly.md
```

---

## 🚀 30-second quick start

1. Set your Mubu credentials (phone + password). They are never passed as CLI arguments — use env vars or a local file:

   ```bash
   export MUBU_PHONE="your-phone"
   export MUBU_PASSWORD="your-password"
   ```

   …or write them to `~/.workbuddy/.env.mubu` (env vars take precede

_meta.json

{
  "ownerId": "kn73qbrbqs4s8t2nh8pm22wxbd84vm7r",
  "slug": "mubu-integration",
  "version": "1.3.16",
  "publishedAt": 1788337637846
}

CHANGELOG.md

# Changelog

记录 mubu-integration Skill 的里程碑演化。

## v1.3.16(CI 门禁闭环 · ruff 导入合规修复,2026-09-02)

本轮无新功能、无破坏性变更,仅修复 v1.3.15 引入的 `lint` job 在 CI 中实际失败却被 `continue-on-error` 掩盖的问题,使 CI 真实通过。

### CI 修复
- **ci: `lint` job 改为必过门禁** —— 移除 `.github/workflows/test.yml` 中 `lint` job 的 `continue-on-error: true`。原 v1.3.15 因沙箱无法本地装 ruff 验证而放宽,现确认 `ruff check scripts` 通过,故升级为硬性门禁,拦截未来导入类回归。
- **fix(ruff): 导入类违规修复(覆盖 6 个文件,零逻辑改动)** —— 分两轮闭环:
  - **第一轮(18 处,已提交 c1a7500)**:I001 导入排序 ×6、F401 未使用导入 ×9、F841 未使用局部变量 ×2,覆盖 `gen_assets.py`、`cli.py`、`client.py`、`config.py`、`convert.py`、`mubu_api.py`。
  - **第二轮(follow-up,2 处 I001)**:首轮手工复刻 CI diff 时对 isort 规则理解有误(`from` 导入须排在同段 `import` 之后;首方导入块不可被注释+空行拆分),CI 硬门禁重跑后精准定位并修复:
    - `client.py`:`from pathlib import Path` 由 `import os` 之后移至 `import uuid` 之后(straight import 段内)。
    - `mubu_api.py`:删除 `# 包内模块符号` 注释及其前的空行,使 `from mubu.cli/client/config/convert` 首方导入块紧凑连续。
  - **ruff.toml**:新增 `[lint.isort] known-first-party = ["mubu"]`,显式声明本地包,消除首方/第三方归类歧义(与 ruff 默认 `detect-first-party` 行为一致,纯声明性加固)。

### 验证
- `python -m py_compile` 全部通过;`import mubu_api / mubu.cli / mubu.client / mubu.config / mubu.convert` 无 `NameError`(移除的导入经 grep 确认仅为字符串字面量引用,确为冗余)。
- 测试矩阵:**115 passed(0 失败,较 v1.3.15 无回归)**。
- 沙箱本地因环境限制无法运行 ruff 二进制(harness 杀进程),以 GitHub Actions CI 重跑 `ruff check scripts` 作为真实验证(见 commit 后 CI 状态,lint job 须为绿色)。

## v1.3.15(P0+P1 改进,2026-08-28)

本轮落实产品评审诊断(deliverables/gstack/product-review-improve-2026-08-28.md)的 P0(信任修复)+ P1(质量/CI/文档)共 12 项,零新功能、无破坏性变更。

### P0 信任修复(零风险、确定性)
- **doc(README/zh-CN/CONTRIBUTING): 修正落地页首行坏命令** —— "Try it in 3 commands" 的 `create --md weekly.md` 缺必填位置参数 `name`,实测直接报 `error: the following arguments are required: name`;改为 `create "周会" --md examples/weekly.md`(cli.py:71 已证实 name 必填)。
- **doc: 测试数 84 → 113 对齐** —— README(×3)/README.zh-CN(×3)/CONTRIBUTING 全量修正为真实的 113(CI 实测 113 passed)。

### P1 质量 / CI / 文档
- **fix(client._http_request): 429 限流退避** —— 新增 HTTP 429 分支,按 `Retry-After` 头(封顶 30s)或 NETWORK_BACKOFF 退避重试,重试用尽抛清晰 MubuError;对齐 5xx 重试逻辑(不重登)。
- **fix(client.get_doc): 解析保护** —— `json.loads(data["definition"])` 包裹为 try/except(KeyError/TypeError/ValueError) → MubuError,不再裸抛。
- **ci: 新增 ruff 静态门禁** —— `.github/workflows/test.yml` 加 `lint` job(安装 ruff 跑 `ruff check scripts`,规则集 E/F/W/I);新增 `ruff.toml`。沙箱本地因 SOCKS 代理无法安装 ruff 验证,故该 job 初版 `continue-on-error`(**已于 v1.3.16 修复 18 处违规后改为必过门禁**)。
- **doc(cli.rename help): 修正矛盾** —— `rename --type doc` 帮助由"走 save_doc name(⚠️ 真机受限)"改为"走已验证端点 /list/rename_doc(内容保真)",与实现一致。
- **doc(README): Auto-refresh auth 措辞** —— "Zero-touch auth" 改为 "Auto-refresh auth",明确重登依赖缓存凭据(env/.env.mubu),不声称免密码;zh-CN 同步。
- **doc(README): 新增 Troubleshooting** —— 错误码表(memberId/code 17·5·403/登录失败),含服务端限制说明。
- **feat(client.search): include_content** —— 新增可选参数,对名称未命中的文档额外拉取正文递归搜索节点 text/note,命中带 `matched_in: "content"`(名称命中为 `"name"`);默认关闭保性能。新增 2 例回归测试。
- **doc(docs/): 分发与定位素材** —— 新增 `docs/positioning.md`(项目定位纠偏)、`docs/hellogithub-pitch.md`(HelloGitHub 投递文案)、`docs/xiaoshuopai-tutoria

CONTRIBUTING.md

# Contributing

欢迎贡献!

## 如何贡献

1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 提交 Pull Request

## 开发环境

```bash
# 克隆仓库
git clone https://github.com/liuboacean/mubu-integration.git
cd mubu-integration

# 安装依赖(运行时 + 测试;开发依赖在 requirements-dev.txt)
pip install -r requirements.txt -r requirements-dev.txt

# 运行全部测试(共 115 个 pytest 用例)
PYTHONPATH=scripts python -m pytest -v

# 脚本运行入口
python3 scripts/mubu_api.py --help
```

## 行为准则

- 尊重所有贡献者
- 建设性讨论
- 专注于对项目最有利的事情
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/liuboacean/skills/mubu-integration",
      "sourceUrl": "https://clawhub.ai/liuboacean/skills/mubu-integration",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T11:10:28.767Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-liuboacean-mubu-integration/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-liuboacean-mubu-integration/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-09T11:10:28.767Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "2.8K downloads",
      "href": "https://clawhub.ai/liuboacean/mubu-integration",
      "sourceUrl": "https://clawhub.ai/liuboacean/mubu-integration",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T11:10:28.767Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "1.3.16",
      "href": "https://clawhub.ai/liuboacean/mubu-integration",
      "sourceUrl": "https://clawhub.ai/liuboacean/mubu-integration",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-09-02T08:27:17.846Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-liuboacean-mubu-integration/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-liuboacean-mubu-integration/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 1.3.16",
      "description": "v1.3.16: CI lint gate hardened; ruff import fixes (I001/F401/F841); known-first-party=mubu added.",
      "href": "https://clawhub.ai/liuboacean/mubu-integration",
      "sourceUrl": "https://clawhub.ai/liuboacean/mubu-integration",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-09-02T08:27:17.846Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 9, 2026.

Sponsored

Ads related to mubu-integration and adjacent AI workflows.