Token导航 LogoToken导航

Agent Skill · 效率

futuremorning(futuremorning 效率)

futuremorning 用于整理文档、README、Markdown 和说明材料,适合在 OpenClaw 中需要把零散信息整理成结构清晰的文档时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

futuremorning 是效率类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为需要联网;许可证为 MIT-0,第三方扫描有提醒项,按安装量在效率类的 21,003 个 Skill 里排第 19,522。

总安装 1,999周安装 85GitHub Stars 公开资料未说明下载 336核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:futuremorning(futuremorning 效率)
来源仓库:https://github.com/longbai/futuremorning
安装命令:
openclaw skills install futuremorning
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install futuremorning

这个 Skill 是做什么的

效率类 Skill 把重复的整理、汇总、转换工作交给助手完成,减少手工复制粘贴。

查询未来清晨的活动信息。当用户询问未来清晨的活动、近期活动、活动安排、某个活动详情时使用。支持列出所有活动和根据活动ID获取详情。默认输出JSON,用户要求时可输出Markdown格式。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install futuremorning;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

futuremorning 怎么安装?

在终端执行 openclaw skills install futuremorning。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

futuremorning 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

futuremorning 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

futuremorning 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

futuremorning 用的人多吗?

公开数据是累计安装 1,999 次,近一周安装 85 次,下载 336 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

futuremorning 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理效率类任务、又不想每次都手写提示词的人。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

效率类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
github

GitHub 代码协作 · OpenClaw

7,632,918545需要联网MIT-0通过
nano-pdf

Nano PDF 文档 · OpenClaw

4,249,476231需要联网MIT-0通过
auto-updater

自动更新程序 · OpenClaw

2,964,063386操作浏览器MIT-0通过
video-frames

视频帧 · OpenClaw

2,621,304112需要联网MIT-0通过
gemini

Gemini 助手 · OpenClaw

2,547,39648需要联网MIT-0有提醒
futuremorning

futuremorning 效率 · 本页

1,999—需要联网MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
未来清晨
description
查询未来清晨的活动信息。当用户询问未来清晨的活动、近期活动、活动安排、某个活动详情时使用。支持列出所有活动和根据活动ID获取详情。默认输出JSON,用户要求时可输出Markdown格式。

概述

未来清晨活动查询工具。

使用时机

  • 用户问未来清晨有什么活动、近期活动列表
  • 用户想了解某个具体活动的详情
  • 用户提到"未来清晨"

通用参数

CLUB_ID = 018ce711-aeab-f611-7900-486c089013e4
API_BASE = https://api.cumen.fun/api/xx.cumen.v1.CumenService

功能一:列出所有活动

node -e "
const https = require('https');
const API = 'https://api.cumen.fun/api/xx.cumen.v1.CumenService/ListCampaignsOfClub';
const CLUB_ID = '018ce711-aeab-f611-7900-486c089013e4';

function post(url, body) {
  return new Promise((resolve, reject) => {
    const data = JSON.stringify(body);
    const req = https.request(url, { method: 'POST', headers: { 'Content-Type': 'application/json' } }, (res) => {
      let buf = '';
      res.on('data', (c) => (buf += c));
      res.on('end', () => { try { resolve(JSON.parse(buf)); } catch { reject(new Error(buf)); } });
    });
    req.on('error', reject);
    req.write(data);
    req.end();
  });
}

function toUTC8(ts) {
  if (!ts || ts.startsWith('1970')) return null;
  const d = new Date(ts);
  return new Date(d.getTime() + 8 * 3600000).toISOString().replace('Z', '+08:00');
}

const STATUS = { CAMPAIGN_STATUS_ONGOING: 'ONGOING', CAMPAIGN_STATUS_ENDED: 'ENDED', CAMPAIGN_STATUS_BLOCKED: 'BLOCKED' };

post(API, { clubId: CLUB_ID }).then((resp) => {
  const items = resp.items || [];
  const result = items.map((item) => {
    const c = item.campaign || {};
    return {
      id: c.id || '',
      title: c.title || '',
      price: (c.price || {}).value || '0',
      address: item.address || '',
      start_time: toUTC8(c.start_time),
      end_time: toUTC8(c.end_time),
      join_deadline: toUTC8(c.join_deadline),
      capacity: c.person_number_of_team || 0,
      status: STATUS[c.status] || c.status || '',
      finished: c.finish || false,
    };
  });
  console.log(JSON.stringify(result, null, 2));
}).catch((e) => { console.error(e.message); process.exit(1); });
"

Markdown 输出格式

用户要求 Markdown 时,将结果渲染为表格:

## 未来清晨 活动列表 (14个)

| # | 标题 | 价格 | 地址 | 开始时间 | 结束时间 | 名额 | 已结束 |
|---|------|------|------|----------|----------|------|--------|
| 1 | 示例活动|未来清晨 | ¥39 | ... | 04-12 14:00 | 04-12 16:00 | 20 | 否 |

时间格式 MM-DD HH:mm,标题中 | 替换为 |。

功能二:获取活动详情

将 CAMPAIGN_ID 替换为实际活动 ID:

node -e "
const https = require('https');
const API = 'https://api.cumen.fun/api/xx.cumen.v1.CumenService/GetCampaign';
const CAMPAIGN_ID = 'CAMPAIGN_ID';

function post(url, body) {
  return new Promise((resolve, reject) => {
    const data = JSON.stringify(body);
    const req = https.request(url, { method: 'POST', headers: { 'Content-Type': 'application/json' } }, (res) => {
      let buf = '';
      res.on('data', (c) => (buf += c));
      res.on('end', () => { try { resolve(JSON.parse(buf)); } catch { reject(new Error(buf)); } });
    });
    req.on('error', reject);
    req.write(data);
    req.end();
  });
}

function toUTC8(ts) {
  if (!ts || ts.startsWith('1970')) return null;
  const d = new Date(ts);
  return new Date(d.getTime() + 8 * 3600000).toISOString().replace('Z', '+08:00');
}

const STATUS = { CAMPAIGN_STATUS_ONGOING: 'ONGOING', CAMPAIGN_STATUS_ENDED: 'ENDED' };
const KIND = { 1: 'CREATE_TEAM', 2: 'GROUP_PURCHASE', 3: 'LEAGUES' };

post(API, { campaignId: CAMPAIGN_ID }).then((data) => {
  const c = data.campaign || {};
  const p = data.post || {};
  const priceVal = (typeof data.price === 'object' ? data.price.value : data.price) || (c.price || {}).value || '0';
  const poi = p.poi || {};
  const loc = poi.location_gcj02 || {};
  const result = {
    id: c.id,
    title: c.title,
    status: STATUS[c.status] || c.status,
    kind: KIND[c.kind] || c.kind,
    price: priceVal,
    start_time: toUTC8(c.start_time),
    end_time: toUTC8(c.end_time),
    join_deadline: toUTC8(c.join_deadline),
    quit_deadline: toUTC8(c.quit_deadline),
    capacity: c.person_number_of_team || 0,
    address: { name: poi.name || '', detail: poi.address || '', latitude: loc.latitude, longitude: loc.longitude },
    summary: p.summary || '',
    description: p.content || '',
    images: (p.images || []).map((img) => img.url),
    share_count: data.share_count || 0,
    comment_count: data.comment_count || 0,
    finished: c.finish || false,
  };
  console.log(JSON.stringify(result, null, 2));
}).catch((e) => { console.error(e.message); process.exit(1); });
"

Markdown 输出格式

用户要求 Markdown 时:

## 示例活动|未来清晨

- **状态**: 进行中
- **类型**: 组团
- **价格**: ¥39
- **时间**: 2026-04-12 14:00 ~ 16:00
- **报名截止**: 2026-04-12 14:00
- **名额**: 20人
- **地点**: 活动地点
- **地址**: 详细地址
- **分享**: 6 | **评论**: 3

> 活动描述内容...
> ...

字段映射规则

  • price: 优先取顶层 price.value(可能为 string 或 object),否则取 campaign.price.value
  • address: 列表接口取 item.address,详情接口从 post.poi 提取 name/address/location
  • description: 取 post.content
  • summary: 取 post.summary
  • images: 取 post.images[].url
  • 时间:UTC → UTC+8 ISO 格式
  • status 映射:CAMPAIGN_STATUS_ONGOING → ONGOING,CAMPAIGN_STATUS_ENDED → ENDED,CAMPAIGN_STATUS_BLOCKED → BLOCKED
  • kind 映射:1 → CREATE_TEAM,2 → GROUP_PURCHASE,3 → LEAGUES

注意事项

  • ListCampaignsOfClub 返回的活动不保证按时间排序
  • 活动描述 (post.content) 可能包含 emoji 和富文本格式
  • 时间均为 UTC,需转为 UTC+8 展示

平台分布

OpenClaw

94.7%
按下载量换算318

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills