Token导航 LogoToken导航

Agent Skill · 研究检索

windsensei(windsensei 搜索)

windsensei 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

windsensei 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 6,315。

总安装 22,579周安装 960GitHub Stars 公开资料未说明下载 7,910核验 2026-05-01

安装说明

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

安装方式

通过对话安装

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

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

命令行安装

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

ClawHubOpenClaw
openclaw skills install windsensei

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

查询风力运动相关天气与地点信息,支持风筝冲浪、翼装飞行等场景。适用于户外活动规划、天气预报获取与历史记录查看。调用命令 openclaw skills install windsensei 安装。需授权地理位置访问权限,确保数据准确性。windsensei 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

建议结合实时气象 API 更新频率使用。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

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

  2. 2

    拿到安装命令

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

  3. 3

    安装后重启宿主

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

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

windsensei 怎么安装?

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

windsensei 支持哪些 AI 工具?

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

windsensei 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

windsensei 是免费的吗?

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

windsensei 用的人多吗?

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

windsensei 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

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

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

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

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
windsensei

windsensei 搜索 · 本页

22,579—接触敏感数据MIT-0通过

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

SKILL.md 原文

name
windsensei
description
Check wind and weather conditions for wind sports (kitesurfing, wingfoiling, surfing). Get forecasts, find spots nearby, view session history, and request new spots.
homepage
https://windsensei.com
source
https://github.com/jumptrnr/spotsensei
user-invocable
true
metadata
{"emoji": "🪁", "optionalEnv": "WINDSENSEI_API_KEY"}

WindSensei - Wind Forecast Assistant

Check wind conditions at your favorite spots and take action on good forecasts.

When to Use This Skill

Activate when the user asks about:

  • Wind conditions, wind forecast, or weather for wind sports
  • "How's the wind?", "Should I go kiting?", "Any good wind this weekend?"
  • "What's it looking like at [spot name]?", "Wind report"
  • Kiting, kitesurfing, wingfoiling, windsurfing, surfing conditions
  • Blocking off time or adding sessions to their calendar based on wind
  • Finding spots near a location or exploring new spots
  • Session history, stats, or activity logs
  • What friends are riding right now (live sessions)

Configuration

Credentials

  • WINDSENSEI_API_KEY: An API key starting with ss_. Optional — the skill works fully without it. Without it, you can still query any public spot by name, search for spots, and find spots nearby. With it, you get personalized forecasts, dashboard overview, session history, and social features.
  • No other credentials are required. This skill only makes HTTPS requests to the WindSensei API. Calendar features (if requested by the user) use the host agent's own calendar tools — this skill does not request or store any calendar credentials.

Getting an API Key

If the user wants personalized forecasts, guide them:

  1. Sign up at windsensei.com
  2. Add their favorite spots and set activity preferences
  3. Go to their Profile page at windsensei.com/dashboard/profile — the API key manager is at the bottom of that page
  4. Click "Create API Key", give it a name (e.g., "Claude" or "OpenClaw"), and copy the key
  5. The key starts with ss_ — set it as WINDSENSEI_API_KEY in the agent's environment config

Direct link: https://windsensei.com/dashboard/profile (scroll to "API Keys" section)

Two Modes

Public Mode (no API key)

  • Query any public spot by name using the spot parameter
  • Search for spots by name
  • Find spots near a latitude/longitude
  • Uses default kiting preferences (12-40kt, 8am-8pm)
  • Response includes a hint field suggesting signup for personalized results

Authenticated Mode (with API key)

  • Everything in public mode, plus:
  • Dashboard overview of all favorite spots in one call
  • Personalized forecasts using the user's activity preferences, wind speed ranges, time windows
  • Session history and stats
  • Live session feed from followed users
  • Favorites list
  • No signup hint in response

Authentication

For all authenticated endpoints, include the API key as a Bearer token:

Authorization: Bearer {WINDSENSEI_API_KEY}

The API also accepts X-API-Key: {key} header or ?api_key={key} query param.


API Endpoints

1. Wind Report (Quick Summary)

The simplest way to check conditions. Returns a natural language summary plus structured data.

GET https://windsensei.com/api/v1/wind-report?when={when}
ParamValuesDefaultDescription
whentoday, tomorrow, weekend, weektodayTime window
spotstring (e.g., Cherry Beach)—Search public spots by name. Not needed with API key.
locationIdstring—Specific spot by ID
formattext, fullfulltext returns just the summary string

Auth: Optional. With API key, returns forecasts for all the user's favorite spots automatically.

Response:

{
  "success": true,
  "text": "Cherry Beach: Great conditions 2-6pm — 18-22kt SW, 24°C, water 19°C. Good for Kitefoil, Twintip.",
  "when": "today",
  "authenticated": false,
  "hint": "Personalize your forecast with your own spots and activity preferences at windsensei.com",
  "locations": [
    {
      "locationId": "abc123",
      "name": "Cherry Beach",
      "timezone": "America/Toronto",
      "blocks": [
        {
          "date": "2026-02-21",
          "dateLabel": "Saturday, Feb 21",
          "start": "14:00",
          "end": "18:00",
          "quality": "good",
          "windSpeed": { "avg": 20, "gust": 25 },
          "windDirection": "SW",
          "windQuality": "good",
          "temperature": 24,
          "waterTemp": 19,
          "activities": ["Kitefoil", "Twintip"]
        }
      ]
    }
  ]
}

When no spot specified and no API key:

{
  "success": true,
  "text": "Provide a spot name to check conditions. Example: ?spot=Cherry Beach",
  "locations": [],
  "hint": "Personalize your forecast with your own spots and activity preferences at windsensei.com"
}

2. Dashboard (All Spots Overview)

Auth: Required. Single call to get current conditions for all the user's favorite spots, sorted best-first. The most efficient way to answer "how's the wind?" for authenticated users.

GET https://windsensei.com/api/v1/dashboard

Response:

{
  "success": true,
  "spots": [
    {
      "locationId": "abc123",
      "name": "Cherry Beach",
      "current": {
        "windSpeed": 18,
        "windGust": 24,
        "windDirection": 225,
        "temperature": 22,
        "quality": "good"
      },
      "observed": {
        "stationName": "Toronto Island",
        "observationTime": "2026-02-21T14:00:00Z",
        "windSpeed": 20,
        "windDirection": 210,
        "windGust": 26,
        "temperature": 21,
        "waterTemp": { "temperature": 18.5, "units": "C" }
      },
      "nextGoodWindow": {
        "start": "2026-02-21T14:00",
        "end": "2026-02-21T18:00",
        "quality": "good",
        "activities": ["Kitefoil", "Twintip"]
      },
      "modelConsensus": {
        "agreement": "high",
        "models": ["GFS", "ICON", "GEM"]
      }
    }
  ],
  "generatedAt": "2026-02-21T12:00:00Z"
}

Key fields:

  • current: Forecast-based current conditions
  • observed: Real weather station data (if available for the spot) — more accurate than forecast
  • nextGoodWindow: Next rideable time window based on the user's activity preferences. Times are in the spot's local timezone.
  • modelConsensus: Whether forecast models agree on conditions
  • Spots are sorted by quality (best first), then by wind speed

When to use dashboard vs wind-report:

  • Use dashboard when the user has an API key and asks a general "how's the wind?" — it covers all their spots in one call
  • Use wind-report when querying a specific spot by name, or when there's no API key

3. Best Conditions (Ranked Spots)

Find the best spots right now. Works with or without auth.

GET https://windsensei.com/api/v1/best-conditions
ParamValuesDefaultDescription
whennow, today, tomorrow, weekendnowTime window. now = current hour onward.
latnumber—Latitude (required if no API key)
lngnumber—Longitude (required if no API key)
radiusnumber100Search radius in km (max 500). Only used with lat/lng.
limitnumber5Max results (max 20)

Auth: Optional.

  • With API key: Evaluates the user's favorite spots using their activity preferences. No lat/lng needed.
  • Without API key: Requires lat/lng. Finds nearby public spots and evaluates with default kiting preferences.
  • If authenticated but no favorites, falls back to lat/lng nearby search.

Response:

{
  "success": true,
  "when": "now",
  "spots": [
    {
      "locationId": "abc123",
      "name": "Cherry Beach",
      "timezone": "America/Toronto",
      "distance": 4.2,
      "current": {
        "windSpeed": 20,
        "windGust": 26,
        "windDirection": "SW",
        "windQuality": "good",
        "temperature": 22,
        "quality": "good"
      },
      "waterTemp": 18.5,
      "bestBlock": {
        "date": "2026-02-21",
        "dateLabel": "Saturday, Feb 21",
        "start": "14:00",
        "end": "18:00",
        "quality": "good",
        "windSpeed": { "avg": 20, "gust": 26 },
        "windDirection": "SW",
        "activities": ["Kitefoil", "Twintip"]
      },
      "activities": ["Kitefoil", "Twintip"]
    }
  ],
  "total": 1,
  "authenticated": false,
  "hint": "Get personalized results with your own spots and preferences at windsensei.com",
  "generatedAt": "2026-02-21T12:00:00Z"
}

Key fields:

  • distance: Distance from the provided lat/lng in km (only present for nearby queries)
  • current: Conditions right now (or first hour in the time window)
  • bestBlock: The best consecutive window of rideable conditions in the time range
  • Only spots with medium or better conditions are returned — bad spots are excluded
  • Spots are sorted best-first by quality, then wind speed

When to use: "What's the best spot right now?", "Where should I go kiting near Toronto?", "Best conditions this weekend?"


4. Search Spots

Find spots by name. Works without auth.

GET https://windsensei.com/api/v1/locations/search?q={query}
ParamValuesDefaultDescription
qstring—Search query (required)
limitnumber10Max results (max 50)

Auth: Optional. Authenticated users also see their private spots.

Response:

{
  "success": true,
  "query": "cherry",
  "locations": [
    {
      "_id": "abc123",
      "name": "Cherry Beach",
      "latitude": 43.63,
      "longitude": -79.34,
      "activityTypes": ["kite"],
      "windDirections": ["SW", "S", "W"],
      "isFavorite": false
    }
  ],
  "total": 1
}

When to use: To resolve a spot name to a locationId for use with other endpoints, or when the user wants to browse available spots.


5. Nearby Spots

Find spots near a location. Works without auth.

GET https://windsensei.com/api/v1/locations/nearby?lat={lat}&lng={lng}
ParamValuesDefaultDescription
latnumber—Latitude (required)
lngnumber—Longitude (required)
radiusnumber50Radius in km (max 500)
limitnumber10Max results (max 50)

Auth: Optional. Authenticated users also see private spots.

Response:

{
  "success": true,
  "center": { "lat": 43.65, "lng": -79.38 },
  "radiusKm": 50,
  "locations": [
    {
      "id": "abc123",
      "name": "Cherry Beach",
      "latitude": 43.63,
      "longitude": -79.34,
      "distance": 4.2,
      "activityTypes": ["kite"],
      "windDirections": { "SW": "good", "S": "medium", "W": "good" },
      "isFavorite": false
    }
  ],
  "total": 3
}

When to use: When the user says "what spots are near me?", "spots near Toronto", or "find kite spots in [city]". You'll need to geocode the city/location to lat/lng first (use the agent's geocoding capability or a known coordinate).


6. Detailed Forecast

Full hourly forecast for a specific spot. More detailed than wind-report.

GET https://windsensei.com/api/v1/forecast/{locationId}/full

Auth: Required. Returns personalized quality ratings based on the user's activity preferences.

Response includes:

  • Hourly wind speed, direction, gusts, temperature, precipitation
  • Time blocks with quality ratings (excellent/good/medium)
  • Tide predictions (high/low times)
  • Water temperature
  • Model consensus data
  • Up to 16 days of forecast

When to use: When the user wants hour-by-hour detail, or asks "when exactly is the best window?" after seeing a summary.


7. Favorites List

Get the user's favorite spots in their saved order.

GET https://windsensei.com/api/v1/favorites

Auth: Required.

Response:

{
  "success": true,
  "locations": [
    {
      "_id": "abc123",
      "name": "Cherry Beach",
      "latitude": 43.63,
      "longitude": -79.34,
      "activityTypes": ["kite"],
      "windDirections": ["SW", "S", "W"],
      "isFavorite": true
    }
  ]
}

When to use: When the user asks "what are my spots?" or "list my favorites."


8. Session History

Get the user's logged wind sport sessions.

GET https://windsensei.com/api/v1/sessions
ParamValuesDefaultDescription
limitnumber20Max results (max 100)
offsetnumber0Pagination offset
activityTypestring—Filter by activity (e.g., "Kitefoil", "Wingfoil")
locationIdstring—Filter by spot

Auth: Required.

Response:

{
  "success": true,
  "sessions": [
    {
      "id": "sess123",
      "activityType": "Kitefoil",
      "locationName": "Cherry Beach",
      "startTime": "2026-02-15T14:00:00Z",
      "endTime": "2026-02-15T17:30:00Z",
      "duration": 12600,
      "rating": 4,
      "notes": "Great session, consistent SW wind",
      "stats": {
        "distance": 15.2,
        "maxSpeed": 32.5
      }
    }
  ],
  "pagination": {
    "total": 47,
    "limit": 20,
    "offset": 0,
    "hasMore": true
  }
}

When to use: When the user asks "how many sessions have I had?", "show my recent sessions", "what was my last kite session?", or "how much have I ridden this month?"


9. Live Sessions (Friends Activity)

See which followed users are currently out riding.

GET https://windsensei.com/api/v1/live-sessions

Auth: Required.

Response:

{
  "success": true,
  "data": {
    "sessions": [
      {
        "id": "live123",
        "user": {
          "name": "Mike",
          "nickname": "windmike"
        },
        "activityType": "Wingfoil",
        "spotName": "Cherry Beach",
        "startTime": "2026-02-21T14:00:00Z",
        "lastUpdateTime": "2026-02-21T14:30:00Z",
        "stats": {
          "elapsedTime": 1800,
          "distance": 3.2,
          "maxSpeed": 22.1
        },
        "conditions": {
          "windSpeed": 18,
          "windDirection": "SW"
        }
      }
    ]
  }
}

When to use: When the user asks "is anyone out right now?", "who's riding?", or "are any of my friends on the water?"


10. Public Profile

Look up any WindSensei user's public stats by their handle. No auth needed.

GET https://windsensei.com/api/public/profile/{nickname}

Auth: None.

Response includes: nickname, avatar, total session count, total duration, total distance, recent public sessions, activity types.

When to use: When the user asks about a specific rider's profile or stats.


11. Request a New Spot

Submit a request to add a spot that isn't in the system yet.

POST https://windsensei.com/api/v1/spot-request
Content-Type: application/json

{
  "spotName": "Spot Name Here"
}

Auth: Optional. If API key is included, the request is attributed to the user.

Response:

{
  "success": true,
  "message": "Spot request for \"Spot Name\" submitted. We'll review it soon."
}

Duplicate requests are handled automatically — just returns success.


Interpreting the Data

CRITICAL: Only report what the API data says. Do NOT:

  • Make up or guess whether conditions are good if the API didn't say so
  • Add your own assessment of wind speeds, directions, or quality beyond what the quality and windQuality fields state
  • Speculate about conditions outside the blocks returned (e.g., "morning might be OK too")
  • Editorialize about whether the user should or shouldn't go — the blocks and quality ratings ARE the answer
  • Infer activities beyond what the activities array lists for each block

If blocks is empty for a location, there are NO good conditions. Period. Don't soften this or suggest the user check anyway.

If blocks exist, they represent the API's definitive assessment — the quality, wind speed, direction, and activities are computed from the user's preferences and the spot's characteristics. Trust them exactly as returned.

  • timezone: Each location includes a timezone field (e.g., "America/Toronto"). All times in start, end, and date fields are in this timezone — not UTC, not the user's local time. When presenting times to the user, always clarify the timezone if it differs from the user's location (e.g., "2-6pm EST").
  • quality: "excellent" > "good" > "medium". Only these appear — bad hours are excluded. Use these exact ratings when describing conditions.
  • windQuality: How good the wind direction is for that spot ("good", "medium", "bad"). This is computed from the spot's known best directions — don't override it.
  • blocks: Each block is a continuous window of rideable conditions. Multiple blocks per location/day are possible. If no blocks exist, there are no rideable conditions.
  • activities: Which wind sports suit the conditions (e.g., "Kitefoil", "Twintip", "Wingfoil"). Only mention activities listed in the block.
  • observed vs current: observed comes from real weather stations and is more accurate. current is forecast-based. Prefer observed data when available.
  • modelConsensus: When agreement is "high", the forecast is more reliable.
  • authenticated: Whether the response used personalized preferences. If false, mention the user can get better results by setting up an API key.
  • hint: Present only for unauthenticated queries. Relay this to the user naturally (e.g., at the end of the first response, not every time).

Responding to the User

  1. Relay the text field first (when using wind-report) — it's already a concise, factual summary.
  2. If the user wants more detail, use the structured blocks data to elaborate — but stick to what the data says.
  3. For "no good conditions" results (empty blocks), be straightforward: "Nothing rideable today at Cherry Beach." Don't add speculation about what might work.
  4. If hint is present in the response, casually mention it the first time: "By the way, you can get personalized forecasts for your spots at windsensei.com"
  5. When using dashboard data, lead with the best spot and summarize the rest.
  6. Don't pad with filler. Be direct, like a friend at the beach.
  7. Never contradict the API's quality assessment. If the API says "medium" quality, don't upgrade it to "great conditions." If the API says no blocks, don't say "it might still be worth checking."

Choosing the Right Endpoint

User intentEndpointAuth needed?
"How's the wind?" (has API key)DashboardYes
"How's the wind at Cherry Beach?"Wind Report with spot=No
"How's the wind this weekend?"Wind Report with when=weekendNo
"What's the best spot right now?"Best ConditionsNo (lat/lng) or Yes
"Where should I kite near Miami?"Best Conditions with lat/lngNo
"What spots are near Toronto?"Nearby (geocode city first)No
"Find spots called 'cherry'"Search with q=cherryNo
"Give me hour-by-hour for Cherry Beach"Forecast FullYes
"What are my spots?"FavoritesYes
"How many sessions have I had?"SessionsYes
"Is anyone riding right now?"Live SessionsYes
"Show me @windmike's profile"Public ProfileNo
"Add Wasaga Beach" (spot not found)Spot RequestNo

Handling Spot Names

When the user says "how's the wind at Cherry Beach":

  1. Extract the spot name ("Cherry Beach")
  2. URL-encode it and pass as ?spot=Cherry+Beach to wind-report
  3. The API does fuzzy matching — partial names work (e.g., "cherry" matches "Cherry Beach")
  4. If multiple spots match, the API returns up to 3. Present all of them.

For more control, use the Search endpoint first to resolve the name to a locationId, then use that ID with other endpoints.

Handling Missing Spots

When a spot isn't found:

  1. Tell the user: "WindSensei doesn't have data for that spot yet."
  2. Ask: "Want me to submit a request to add it?"
  3. If they say yes, POST to /api/v1/spot-request with the spot name.
  4. Relay the confirmation message.

Calendar Integration

This skill does not provide or require any calendar credentials. It relies on the host agent's existing calendar tools (e.g., Google Calendar MCP, Apple Calendar, etc.). If the agent has no calendar tool available, skip calendar actions and just present the forecast data.

When the user asks to "block off", "add to calendar", or "schedule" a session based on a wind block:

  1. Use the block data to create a calendar event via the agent's calendar tool:

- Title: Kite @ {location name} (or the relevant activity from the block) - Start: The block's date + start time - End: The block's date + end time - Description: {windSpeed.avg}kt {windDirection} (gusts {windSpeed.gust}kt), {temperature}°C{waterTemp ? ', water ' + waterTemp + '°C' : ''}. Quality: {quality}. - Location: The spot name

  1. Confirm to the user what was added.
  2. If no calendar tool is available, offer the event details so the user can add it manually.

If there are multiple good blocks, ask which one(s) to add unless the user said "all".

Example Conversations

First-time user, no API key:

User: "How's the wind at Cherry Beach?" → Call GET /api/v1/wind-report?spot=Cherry+Beach&when=today → Relay the text field → Mention: "For personalized forecasts with your own spots, check out windsensei.com"

Authenticated user, quick check:

User: "How's the wind?" → Call GET /api/v1/dashboard (with Bearer token) → Summarize: lead with the best spot, mention the rest

Best spot right now (unauthenticated):

User: "Where should I go kiting near Miami?" → Geocode Miami to lat=25.76, lng=-80.19 → Call GET /api/v1/best-conditions?lat=25.76&lng=-80.19&when=now → "Crandon Park has the best conditions right now — 18kt SE, good direction, 28°C. Best window is 2-6pm."

Best spot right now (authenticated):

User: "What's my best spot today?" → Call GET /api/v1/best-conditions?when=today (with Bearer token) → "Cherry Beach looks best today — good conditions 2-6pm with 20kt SW. Hanlan's has medium conditions 1-4pm."

Finding new spots:

User: "What kite spots are near Miami?" → Geocode Miami to lat=25.76, lng=-80.19 → Call GET /api/v1/locations/nearby?lat=25.76&lng=-80.19&radius=100 → Present the spots with distances

Session stats:

User: "How many sessions have I logged this year?" → Call GET /api/v1/sessions?limit=100 → Count and summarize by activity type

Live check:

User: "Is anyone out riding right now?" → Call GET /api/v1/live-sessions → "Your friend Mike is wingfoiling at Cherry Beach — been out for 30 minutes in 18kt SW wind"

Calendar action:

User: "Block off the good times this weekend" → Call GET /api/v1/wind-report?when=weekend → For each block, create a calendar event → "Added 2 sessions to your calendar: Kite @ Cherry Beach Sat 2-6pm, Wing @ Hanlan's Sun 10am-1pm"

Specific day:

User: "What about Saturday?" → Call GET /api/v1/wind-report?when=weekend → Relay the relevant day from the response

No conditions:

User: "Should I go kiting tomorrow?" → Call GET /api/v1/wind-report?when=tomorrow → If no blocks: "No rideable conditions tomorrow at [spot name]."

Missing spot:

User: "How's the wind at Wasaga Beach?" → Call GET /api/v1/wind-report?spot=Wasaga+Beach → Response: not found → Reply: "WindSensei doesn't have data for Wasaga Beach yet. Want me to submit a request to add it?" User: "Yeah, do it" → Call POST /api/v1/spot-request with {"spotName": "Wasaga Beach"} → Reply: "Done — submitted a request to add Wasaga Beach. The WindSensei team will review it."

平台分布

OpenClaw

86.84%
按下载量换算6,869

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

未展示

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

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

继续浏览同类 Skills