agentCLAWHUBUnverified

Lark Project / Meegle

连接飞书项目/Meegle,查询和管理工作项、待办等。自动检测登录状态,未登录时引导 Device Code 授权。

OpenClaw

Rank

62

Safety

84

Downloads

2.2k

Updated

Oct 9, 2026

Version

0.1.5

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 2.2K 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.2K downloadsadoption · observed Oct 9, 2026
Latest release
0.1.5release · observed May 8, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17ed9cseebq57g4cnzc7tb04983qx22:lark-project-meegle
  1. Install using `clawhub skill install s17ed9cseebq57g4cnzc7tb04983qx22:lark-project-meegle` in an isolated environment before connecting it to live workloads.
  2. No published capability contract is available yet, so validate auth and request/response behavior manually.
  3. Review the upstream CLAWHUB listing at https://clawhub.ai/kentonyu/lark-project-meegle before using production credentials.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-kentonyu-lark-project-meegle/snapshot"

Documentation

CLAWHUB

114,157 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

SKILL.md

---
name: meegle
description: |
  连接飞书项目/Meegle,查询和管理工作项、待办等。自动检测登录状态,未登录时引导 Device Code 授权。
version: 0.1.1
homepage: https://www.npmjs.com/package/@lark-project/meegle
metadata:
  openclaw:
    homepage: https://www.npmjs.com/package/@lark-project/meegle
    emoji: 📋
    requires:
      bins:
        - node
        - npx
    install:
      - kind: node
        package: '@lark-project/meegle'
        bins:
          - meegle
---

# 飞书项目 (Meego/Meegle) 操作指南

本技能通过 Meegle CLI来操作飞书项目数据。输出语言跟随用户输入语言,默认中文。

> 各命令的调用示例见 [references/api-examples.md](references/api-examples.md)。
> **授权流程**(所有业务命令前必须执行):见 [references/auth-guard.md](references/auth-guard.md)
> **CLI 使用指南**(命令结构、参数传递、命令发现):见 [references/cli-guide.md](references/cli-guide.md)

---

## Project 空间域

### npx @lark-project/meegle@latest project search
搜索空间信息,将空间名转换为 project_key 或验证空间是否存在。

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| --project-key | string | 是 | 空间 projectKey、simpleName 或空间名称 |

---

## WorkItem 工作项域

> 元数据查询命令(`npx @lark-project/meegle@latest workitem meta-types` / `npx @lark-project/meegle@latest workitem meta-fields` / `npx @lark-project/meegle@latest workitem meta-roles` / `npx @lark-project/meegle@latest workitem meta-create-fields`)的参数表见 [references/workitem.md](references/workitem.md)。

### npx @lark-project/meegle@latest workitem create
创建工作项实例。**务必先用 `npx @lark-project/meegle@latest workitem meta-fields` 获取字段信息,`npx @lark-project/meegle@latest workitem meta-roles` 获取角色信息。模板 ID 是必填项。**

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| --work-item-type | string | 是 | 工作项类型 |
| --project-key | string | 否 | 空间标识 |
| --fields | array | 否 | 字段值列表,每项含 field_key 和 field_value |

### npx @lark-project/meegle@latest workitem get
按 ID/名称查询工作项概况。不传 fields 时仅返回固定基础字段;如需自定义字段数据,先调 `npx @lark-project/meegle@latest workitem meta-fields` 获取字段 key 后传入 fields。

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| --work-item-id | string | 是 | 工作项 ID 或名称 |
| --project-key | string | 否 | 空间 key |
| --fields | array | 否 | 要查询的 field_key 或 field_name |

### npx @lark-project/meegle@latest workitem batch-get
批量查询工作项(Meegle CLI 客户端 fan-out:并发调用 `npx @lark-project/meegle@latest workitem get`)。单次 ≤ 200 个 ID,3 并发,返回 `{results, errors, summary}`;ID 量大时用 `--format ndjson` 流式输出。

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| --work-item-ids | array | 二选一 | 工作项 ID 列表(逗号分隔或多次传入) |
| --ids-file | string | 二选一 | 从文件读取 ID(一行一个,`#` 开头注释) |
| --fields | array | 否 | 要查询的 field_key 列表 |
| --project-key | string | 否 | 空间 key |

### npx @lark-project/meegle@latest workitem update
修改指定实例的字段值或角色。节点字段更新请用 `npx @lark-project/meegle@latest workflow update-node`。

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| --work-item-id | string | 是 | 工作项 ID 或名称 |
| --project-key | string | 否 | 空间 key |
| --fields | array | 否 | 要更新的字段列表,每项含 field_key 和 field_value |
| --role-operate | array | 否 | 角色操作,每项含 op(add/remove)、role_key、user_keys |

**角色更新**:不能通过 fields 更新角色,必须用 `role_operate`。role_key 通过 

_meta.json

{
  "ownerId": "kn78dhc955jdhgxvfjp6fd9aeh83p3t5",
  "slug": "lark-project-meegle",
  "version": "0.1.5",
  "publishedAt": 1778224619212
}

references/api-examples.md

# 命令调用示例

---

## 空间域

### npx @lark-project/meegle@latest project search
```bash
npx @lark-project/meegle@latest project search --project-key 空间名或key --format json
```

## 工作项域

### npx @lark-project/meegle@latest workitem meta-types
```bash
npx @lark-project/meegle@latest workitem meta-types --project-key 空间key --format json
```

### npx @lark-project/meegle@latest workitem meta-fields
查询所有字段:

```bash
npx @lark-project/meegle@latest workitem meta-fields --page-num 1 --project-key 空间key --work-item-type story --field-types '{{field_types}}' --field-keys '{{field_keys}}' --field-query '{{field_query}}' --format json
```

### npx @lark-project/meegle@latest workitem meta-roles
```bash
npx @lark-project/meegle@latest workitem meta-roles --page-num 1 --project-key 空间key --work-item-type story --role-keys '{{role_keys}}' --role-query '{{role_query}}' --format json
```

### npx @lark-project/meegle@latest workitem query
查询空间中所有未冻结的需求:

```bash
npx @lark-project/meegle@latest workitem query --project-key 空间key --session-id {{session_id}} --mql 'SELECT `work_item_id`, `name`, `current_owners`, `status` FROM `空间名`.`story` WHERE `is_archived` = 0' --group-pagination-list '{{group_pagination_list}}' --format json
```

### npx @lark-project/meegle@latest workitem get
```bash
npx @lark-project/meegle@latest workitem get --work-item-id 工作项ID或名称 --fields '{{fields}}' --project-key 空间key --format json
```

### npx @lark-project/meegle@latest workitem create
基础创建(仅标量字段):

```bash
npx @lark-project/meegle@latest workitem create --work-item-type story --fields '[{"field_key": "template", "field_value": "模板ID"}, {"field_key": "name", "field_value": "需求标题"}]' --project-key 空间key --format json
```

创建缺陷 + 指定报告人(multi-user)+ 指定经办人(role_owners)——注意复合值必须 JSON.stringify:

```bash
npx @lark-project/meegle@latest workitem create --work-item-type issue --fields '[{"field_key":"name","field_value":"示例缺陷"},{"field_key":"priority","field_value":"2"},{"field_key":"template","field_value":"模板ID"},{"field_key":"issue_reporter","field_value":"["userkey1"]"},{"field_key":"role_owners","field_value":"[{"role":"operator","owners":["userkey1"]}]"}]' --project-key 空间key --format json
```

> 🚨 `issue_reporter`(multi-user 类型的内置角色字段)和 `role_owners`(统一角色入口)是**两种可互换的写法**:前者走 meta-create-fields 返回的字段 key;后者用 meta-roles 返回的 role_id(如 `operator` / `reporter`,不含 `issue_` 前缀)。两者的 `field_value` 都必须是 **stringified JSON** 字符串。

### npx @lark-project/meegle@latest workitem update
更新普通字段:

```bash
npx @lark-project/meegle@latest workitem update --work-item-id 工作项ID --project-key 空间key --role-operate '{{role_operate}}' --fields '[{"field_key": "priority", "field_value": "option_id"}]' --format json
```

更新 multi-user 字段(复合值 stringified):

```bash
npx @lark-project/meegle@latest workitem update --work-item-id 工作项ID --project-key 空间key --role-operate '{{role_operate}}' --fields '[{"field_key": "current_status_operator", "field_value": "["userkey1","userkey2"]"}]' --format json
```

---

## 人员域

### np

references/attachment.md

# 附件域

附件上传/下载分两步:先调 `npx @lark-project/meegle@latest attachment prepare-upload` / `npx @lark-project/meegle@latest attachment prepare-download` 申请带签名的对象存储 URL,再与对象存储做一次或多次 HTTP 直连。Meegle CLI 内置 `npx @lark-project/meegle@latest attachment +upload` / `npx @lark-project/meegle@latest attachment +download` 一键封装,把两步合成一条命令;脚本里需要逐步控制时也可单独调上面的 prepare 命令。
## npx @lark-project/meegle@latest attachment prepare-upload
申请上传签名。`work_item_id` 与 `work_item_type` **二选一必填**:已有工作项传 `work_item_id`;"创建工作项时同步上传附件" 场景传 `work_item_type`,两者同传时 `work_item_id` 优先。

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| --project-key | string | 是 | 空间 key |
| --resource-type | number | 是 | 附件场景:13=评论附件 / 14=评论图片 / 15=工作项附件字段 / 16=富文本字段图片 |
| --file-name | string | 是 | 附件名称 |
| --mime-type | string | 是 | MIME 类型 |
| --size | number | 是 | 文件总大小(字节);后端据此判断走单次上传还是分片 |
| --work-item-id | string | 二选一 | 已有工作项 ID |
| --work-item-type | string | 二选一 | 工作项类型(仅 "创建工作项同步上传附件" 场景) |
| --field-key | string | 条件 | `resource_type=15/16` 必填,13/14 不填 |

## npx @lark-project/meegle@latest attachment prepare-download
申请下载签名。`file_url` 是其它命令(如 `npx @lark-project/meegle@latest workitem get` 的附件字段值、`npx @lark-project/meegle@latest comment list` 评论里的附件链接、富文本中的附件引用)回传的不透明引用,**不要**手工拼接。

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| --project-key | string | 是 | 空间 key |
| --work-item-id | string | 是 | 工作项 ID |
| --file-url | string | 是 | 附件 URL(来自附件字段、评论或富文本) |

## npx @lark-project/meegle@latest attachment +upload
端到端上传:CLI 在本地把 `npx @lark-project/meegle@latest attachment prepare-upload` 与对象存储的签名 HTTP POST 串起来,返回 `file_token` 与文件元数据,可直接喂给 `npx @lark-project/meegle@latest workitem create` / `npx @lark-project/meegle@latest workitem update` / `npx @lark-project/meegle@latest comment add` 的附件字段。**Meegle CLI 专用**。

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `<source-path>`(位置参数) | string | 是 | 本地文件路径 |
| --resource-type | string | 是 | 13/14/15/16,含义同 `npx @lark-project/meegle@latest attachment prepare-upload` |
| --project-key | string | 是 | 空间 key |
| --work-item-id | string | 二选一 | 已有工作项 ID |
| --work-item-type | string | 二选一 | 创建场景的工作项类型 |
| --field-key | string | 条件 | resource_type=15/16 时必填 |
| --filename | string | 否 | 覆盖发送给后端的文件名(默认取本地 basename) |
| --content-type | string | 否 | 覆盖 MIME 类型(默认按扩展名探测,未识别走 `application/octet-stream`) |

## npx @lark-project/meegle@latest attachment +download
端到端下载:CLI 在本地把 `npx @lark-project/meegle@latest attachment prepare-download` 与对象存储的签名 HTTP GET 串起来,并用 `.partial` 临时文件 + 原子改名落盘,失败时不会留下半残文件。**Meegle CLI 专用**。

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `<file-url>`(位置参数) | string | 是 | 附件 URL(来自附件字段、评论或富文本) |
| --project-key | string | 是 | 空间 key |
| --work-item-id | string | 是 | 工作项 ID |
| --output | string | 是 | 本地落地路径 |
| overwrite | bool | 否 | 目标已存在时是否覆盖(默认 false) |

references/auth-guard.md

# Auth Guard(所有业务命令前必须执行)

## 触发条件

- **主动登录**:用户说"登录 Meegle"、"连接飞书项目"、"login meegle"等。
- **被动拦截**:用户请求任何 Meegle 业务操作(查询待办、查工作项、创建任务等),优先执行 Auth Guard。
- **URL 触发**:用户发送了飞书项目/Meegle URL。处理流程:
  1. 先调 `npx @lark-project/meegle@latest url decode` 拿到结构化字段(`url_kind`、`host`、`simple_name`、`work_item_id` 等)。**禁止**自己从 URL 截取路径段作参数。字段含义与 kind 分支见 [url-kinds.md](./url-kinds.md)。
  2. 保存 `$host` = response.host、`$url_kind`、`$simple_name`、`$work_item_id`。
  3. 执行 Auth Guard(下面的 STEP 1 起)。
  4. 登录成功后按 `$url_kind` 分支:
     - `workitem_detail` → `npx @lark-project/meegle@latest project search` 得权威 `$project_key`,再 `npx @lark-project/meegle@latest workitem get` 查询详情
     - `workitem_homepage` / `view_*` / `unknown` 等非详情页 → 按 url-kinds.md 的指引拒绝或追问
     - 其他 kind → 参考 url-kinds.md 对应处理方式

按以下 STEP 顺序执行。每个 STEP 结尾的 GOTO 指明下一步,严格遵循跳转。

---

### STEP 1 — 检查登录状态

```bash
npx @lark-project/meegle@latest auth status --format json
```

返回值示例:
- 已登录:`{ "authenticated": true, "host": "meegle.com", "source": "token_store", "expires_in_minutes": 42 }`
- 未登录且有 host:`{ "authenticated": false, "host": "meegle.com", "source": null, "expires_in_minutes": null }`
- 未登录且无 host:`{ "authenticated": false, "host": null, "source": null, "expires_in_minutes": null }`

解析返回值,保存变量:
- `$authenticated` = response.authenticated
- `$host` = response.host

**URL 触发时的 host 覆盖**:如果用户发送了飞书项目/Meegle URL 触发本流程,且 `$host` 为 null,则使用上一步 `url decode` 返回的 `host` 字段作为 `$host`。

**跳转:**
- IF `$authenticated == true` → GOTO STEP DONE
- IF `$host != null` → GOTO STEP 2
- IF `$host == null` → GOTO STEP HOST

---

### STEP HOST — 选择站点

ASK user(等待用户回复):

> 你要连接哪个站点?
> 1) 飞书项目 (project.feishu.cn)
> 2) Meegle (meegle.com)
> 3) 自定义域名(请直接输入域名)

SAVE `$host` from user reply → GOTO STEP 2

---

### STEP 2 — 初始化 Device Code

```bash
npx @lark-project/meegle@latest auth login --device-code --phase init --host $host --format json
```

SAVE from response:
- `$verification_uri_complete` = response.verification_uri_complete
- `$user_code` = response.user_code
- `$device_code` = response.device_code
- `$client_id` = response.client_id
- `$interval` = response.interval
- `$expires_in` = response.expires_in
- `$max_attempts` = floor($expires_in / $interval)

**发送验证链接给用户:**

SEND to user: `请在浏览器中打开以下链接完成授权:\n$verification_uri_complete\n验证码:$user_code($expires_in 秒内有效)`

> ⚠️ 发送后立即 GOTO STEP 3。**禁止**在此停下等用户回复"我授权好了"。你必须主动轮询。

→ GOTO STEP 3

---

### STEP 3 — 轮询授权结果(循环)

> ⚠️ 使用 STEP 2 保存的 `$device_code` 和 `$client_id`。**禁止**重新执行 STEP 2(否则会生成新的验证码,用户之前打开的链接作废)。

```bash
sleep $interval && npx @lark-project/meegle@latest auth login --device-code --phase poll --once \
  --device-code-value $device_code --client-id $client_id --format json
```

PARSE response → `$status` = response.status

**跳转:**
- IF `$status == "ok"` → GOTO STEP OK
- IF `$status == "authorization_pending"` → GOTO STEP 3(重复本步骤,继续轮询)
- IF `$status == "slow_down"` → `$interval = $interval + 5`,GOTO STEP 3
- IF `$status == "expired_token"` → SEND "授权已超时,请重新发起登录",
Github ReposUpdated 2h 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 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 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/kentonyu/skills/lark-project-meegle",
      "sourceUrl": "https://clawhub.ai/kentonyu/skills/lark-project-meegle",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T17:35:41.795Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-kentonyu-lark-project-meegle/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-kentonyu-lark-project-meegle/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-09T17:35:41.795Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "2.2K downloads",
      "href": "https://clawhub.ai/kentonyu/lark-project-meegle",
      "sourceUrl": "https://clawhub.ai/kentonyu/lark-project-meegle",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T17:35:41.795Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "0.1.5",
      "href": "https://clawhub.ai/kentonyu/lark-project-meegle",
      "sourceUrl": "https://clawhub.ai/kentonyu/lark-project-meegle",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-05-08T07:16:59.212Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-kentonyu-lark-project-meegle/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-kentonyu-lark-project-meegle/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 0.1.5",
      "description": "**Added comprehensive CLI reference docs and modularized main SKILL file.** - Added 13 new detailed docs in the `references/` directory (e.g. api-examples, auth-guard, mql-syntax, attachment, workflow). - Rewrote the main SKILL guide for conciseness and clarity; moved command/argument details to separate linked reference files. - Improved organization: each CLI domain (WorkItem, Project, Attachment, Workflow, etc.) now links to its own reference doc for argument tables and advanced usage. - Enhanced focus on modular doc structure for easier command maintenance and more scalable documentation.",
      "href": "https://clawhub.ai/kentonyu/lark-project-meegle",
      "sourceUrl": "https://clawhub.ai/kentonyu/lark-project-meegle",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-05-08T07:16:59.212Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 9, 2026.

Sponsored

Ads related to Lark Project / Meegle and adjacent AI workflows.