feishu-bitable
飞书多维表格(Bitable)的创建、查询、编辑和管理工具。包含 27 种字段类型支持、高级筛选、批量操作和视图管理。 **当以下情况时使用此 Skill**: (1)…
Use when the user says "check Datadog", "查 Datadog", "查日志", "check logs", "crash logs", "查 crash", "gateway crash", "查告警", "check alerts", "check metrics", or needs to investigate production issues via Datadog Logs API.
$ npx -y skills add nexu-io/nexu --skill datadog --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/datadogContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when the user says "check Datadog", "查 Datadog", "查日志", "check logs", "crash logs", "查 crash", "gateway crash", "查告警", "check alerts", "check metrics", or needs to investigate production issues via Datadog Logs API.
name: datadog description: Use when the user says "check Datadog", "查 Datadog", "查日志", "check logs", "crash logs", "查 crash", "gateway crash", "查告警", "check alerts", "check metrics", or needs to investigate production issues via Datadog Logs API.
Query Datadog Logs API to investigate production issues for the Nexu platform.
**Before making any Datadog API call, you MUST ask the user for these two keys:**
Store them in shell variables for the session. Never hardcode or commit them.
Site: `datadoghq.com` (US)
All requests go to `https://api.datadoghq.com/api/v2/logs/events/search`.
Headers:
DD-API-KEY: <api_key> DD-APPLICATION-KEY: <app_key> Content-Type: application/json
curl -s "https://api.datadoghq.com/api/v2/logs/events/search" \
-H "DD-API-KEY: $DD_API_KEY" \
-H "DD-APPLICATION-KEY: $DD_APP_KEY" \
-H "Content-Type: application/json" \
-d '{
"filter": {
"query": "service:nexu-gateway @event:openclaw_crash",
"from": "now-1h",
"to": "now"
},
"sort": "-timestamp",
"page": {"limit": 20}
}'Key fields in results:
curl -s "https://api.datadoghq.com/api/v2/logs/events/search" \
-H "DD-API-KEY: $DD_API_KEY" \
-H "DD-APPLICATION-KEY: $DD_APP_KEY" \
-H "Content-Type: application/json" \
-d '{
"filter": {
"query": "service:nexu-gateway @stream:stderr",
"from": "now-1h",
"to": "now"
},
"sort": "-timestamp",
"page": {"limit": 50}
}'This shows the actual error output from the OpenClaw process (e.g., `invalid_auth`, `EADDRINUSE`, config validation failures).
curl -s "https://api.datadoghq.com/api/v2/logs/events/search" \
-H "DD-API-KEY: $DD_API_KEY" \
-H "DD-APPLICATION-KEY: $DD_APP_KEY" \
-H "Content-Type: application/json" \
-d '{
"filter": {
"query": "service:nexu-gateway (\"starting gateway\" OR \"gateway is ready\" OR \"spawned openclaw\")",
"from": "now-1h",
"to": "now"
},
"sort": "timestamp",
"page": {"limit": 30}
}'curl -s "https://api.datadoghq.com/api/v2/logs/events/search" \
-H "DD-API-KEY: $DD_API_KEY" \
-H "DD-APPLICATION-KEY: $DD_APP_KEY" \
-H "Content-Type: application/json" \
-d '{
"filter": {
"query": "service:nexu-api slack_token_health*",
"from": "now-1h",
"to": "now"
},
"sort": "-timestamp",
"page": {"limit": 20}
}'curl -s "https://api.datadoghq.com/api/v2/logs/events/search" \
-H "DD-API-KEY: $DD_API_KEY" \
-H "DD-APPLICATION-KEY: $DD_APP_KEY" \
-H "Content-Type: application/json" \
-d '{
"filter": {
"query": "service:nexu-api http_request @attributes.status:>=500",
"from": "now-1h",
"to": "now"
},
"sort": "-timestamp",
"page": {"limit": 20}
}'Add `pod_name:<name>` to the query:
service:nexu-gateway pod_name:nexu-gateway-1 @event:openclaw_crash
Use ISO 8601 timestamps:
{
"from": "2026-03-10T05:00:00Z",
"to": "2026-03-10T06:00:00Z"
}Or relative: `"now-30m"`, `"now-1h"`, `"now-24h"`.
Use python3 inline to extract key fields:
curl -s ... | python3 -c "
import json, sys
data = json.load(sys.stdin)
events = data.get('data', [])
print(f'Total events: {len(events)}')
for e in events:
attrs = e['attributes']['attributes']
tags = e['attributes']['tags']
pod = next((t.split(':',1)[1] for t in tags if t.startswith('pod_name:')), '?')
ts = attrs.get('time', '?')
msg = e['attributes'].get('message', '')[:120]
print(f'{ts} | pod={pod} | {msg}')
"| Service | Description | |---------|-------------| | `nexu-gateway` | Gateway sidecar (manages OpenClaw process) | | `nexu-api` | API server |
| Event | Meaning | |-------|---------| | `openclaw_crash` | OpenClaw process exited unexpectedly | | `openclaw_restart_scheduled` | Sidecar scheduling a restart | | `openclaw_restart_limit` | Max restart attempts exceeded | | `openclaw_orphan_killed` | Killed zombie OpenClaw process | | `slack_token_health_check_invalidated` | Invalid Slack tokens detected and marked |
| Tag | Example | |-----|---------| | `pod_name` | `nexu-gateway-1`, `nexu-gateway-2` | | `image_tag` | `sha-55f13372bb72abc7db1538cca3db2bcda0d35eba` | | `kube_stateful_set` | `nexu-gateway` |
When investigating a crash:
1. **Check crash events** — get exit codes, signals, timestamps, affected pods 2. **Check stderr** — get the actual error message from OpenClaw 3. **Check startup events** — correlate crash with deploy times (`image_tag` changes) 4. **Check token health** — if `invalid_auth`, look for `slack_token_health_check_invalidated` 5. **Check API logs** — if API errors are contributing
1. **Never hardcode API keys** in skill files or logs — always use variables 2. **Default time window** — start with `now-1h`, expand to `now-24h` if needed 3. **Always parse and summarize** — don't dump raw JSON to the user 4. **Correlate across services** — crashes often involve both gateway and API logs 5. **Check image_tag** to determine if crashes are related to a specific deployment
The simplest desktop client for OpenClaw 🦞 — bridge your Agent to WeChat, Feishu, Slack & Discord in one click. Works with Claude Code, Codex & any LLM. BYOK, Oauth, local-first, chat from your phone 24/7.
Repo: nexu-io/nexu
飞书多维表格(Bitable)的创建、查询、编辑和管理工具。包含 27 种字段类型支持、高级筛选、批量操作和视图管理。 **当以下情况时使用此 Skill**: (1)…
飞书日历与日程管理工具集。包含日历管理、日程管理、参会人管理、忙闲查询。
创建飞书云文档。从 Lark-flavored Markdown 内容创建新的飞书云文档,支持指定创建位置(文件夹/知识库/知识空间)。
获取飞书云文档内容。返回文档的 Markdown 内容,支持处理文档中的图片、文件和画板(需配合 feishu_doc_media 工具)。
飞书 IM 消息读取工具使用指南,覆盖会话消息获取、话题回复读取、跨会话消息搜索、图片/文件资源下载。 **当以下情况时使用此 Skill**: (1) 需要获取群聊或单聊的历史消息…
飞书任务管理工具,用于创建、查询、更新任务和清单。 **当以下情况时使用此 Skill**: (1) 需要创建、查询、更新、删除任务 (2) 需要创建、管理任务清单 (3)…