소스 정보
- 저장소
- javimosch/open-claw-skills
- 최근 소스 활동
- 2026년 6월 6일 19:20
- 감지된 SKILL.md 언어
- 영어
- 스타
- 0
- 포크
- 1
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/javimosch/open-claw-skills --skill sealegs-marine-forecast명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
Connect your AI assistant to GoHighLevel CRM via the official API v2. Manage contacts, conversations, calendars, pipelines, invoices, payments, workflows, and 30+ endpoint groups through natural language. Includes interactive setup wizard and 100+ pre-built, safe API commands. Python 3.6+ stdlib only — zero external dependencies.
Manage Cloudflare DNS records, Tunnels (cloudflared), and Zero Trust policies. Use for pointing domains, exposing local services via tunnels, and updating ingress rules.
Mema's personal brain - SQLite metadata index for documents and Redis short-term context buffer. Use for organizing workspace knowledge paths and managing ephemeral session state.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | sealegs-marine-forecast |
| description | Get AI-powered marine weather forecasts for any location worldwide |
| homepage | https://developer.sealegs.ai |
| metadata | {"openclaw":{"requires":{"env":"[Truncated]","bins":"[Truncated]"},"primaryEnv":"SEALEGS_API_KEY"},"emoji":"⛵","tags":["weather","marine","forecast","boating","sailing","ocean","waves","wind"]} |
Get AI-powered marine weather forecasts for any location worldwide. Includes wind, waves, visibility, precipitation analysis with GO/CAUTION/NO-GO safety classifications.
Add to your OpenClaw configuration:
{
skills: {
entries: {
"sealegs-marine-forecast": {
enabled: true,
apiKey: "sk_live_your_key_here"
}
}
}
}
Or set the environment variable:
export SEALEGS_API_KEY=sk_live_your_key_here
clawhub install sealegs-marine-forecast
// Miami, FL
POST /v3/spotcast
{
"latitude": 25.7617,
"longitude": -80.1918,
"start_date": "2026-02-10T00:00:00Z",
"num_days": 2,
"vessel_info": {"type": "sailboat", "length_ft": 35} // optional
}
Sample response:
{
"id": "spc_FrZdSAs6T3cxbXiPtNZvxu",
"coordinates": {
"latitude": 25.7617,
"longitude": -80.1918
},
"forecast_period": {
"start_date": "2026-02-10T00:00:00-05:00",
"end_date": "2026-02-11T23:59:59-05:00",
"num_days": "2"
},
"trip_duration_hours": "12",
"metadata": {
"location_name": "Miami Marina"
},
"latest_forecast": {
"status": "completed",
"ai_analysis": {
"summary":
| Operation | Endpoint | Cost |
|---|---|---|
| Create forecast | POST /v3/spotcast | 1 credit/day |
| Get forecast | GET /v3/spotcast/{id} | Free |
| Check status | GET /v3/spotcast/{id}/status | Free |
| Refresh forecast | POST /v3/spotcast/{id}/refresh | 1 credit/day |
| List forecasts for SpotCast | GET /v3/spotcast/{id}/forecasts | Free |
| Get specific forecast | GET /v3/spotcast/{id}/forecast/{forecast_id} | Free |
| List SpotCasts | GET /v3/spotcasts | Free |
| Get balance | GET /v3/account/balance | Free |
All requests require:
Authorization: Bearer $SEALEGS_API_KEY
Content-Type: application/json
X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-ResetSpotCast generates AI-powered marine weather forecasts for specific coordinates.
POST https://api.sealegs.ai/v3/spotcast
Creates a new forecast request. Processing is asynchronous (typically 30-60 seconds).
Required parameters:
latitude (number): -90 to 90longitude (number): -180 to 180start_date (string): ISO 8601 format (e.g., "2025-12-05T00:00:00Z")num_days (integer): 1-5Optional parameters:
webhook_url (string): HTTPS endpoint for completion notificationmetadata (object): Custom key-value pairs for your referencetrip_duration_hours (integer): Trip duration in hourspreferences.language: en, es, fr, pt, it, ja (default: en)preferences.distance_units: nm, mi, km (default: nm)preferences.speed_units: kts, mph, ms (default: kts)vessel_info.type: powerBoat, sailboat, pwc, yacht, catamaranvessel_info.length_ft: 1-500Example request:
curl -X POST https://api.sealegs.ai/v3/spotcast \
-H "Authorization: Bearer $SEALEGS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"latitude": 25.7617,
"longitude": -80.1918,
"start_date": "2025-12-05T00:00:00Z",
"num_days": 2,
"vessel_info": {"type": "sailboat", "length_ft": 35}
}'
Response (202 Accepted):
{
"id": "spc_abc123xyz",
"forecast_id": "fcst_xyz789",
"status": "processing",
"created_at": "2025-12-01T10:30:00Z",
"estimated_completion_seconds": 45,
"credits_charged": 2,
"credits_remaining": 98,
"links": {
"self": "https://api.sealegs.ai/v3/spotcast/spc_abc123xyz",
"forecast": "https://api.sealegs.ai/v3/spotcast/spc_abc123xyz/forecast/fcst_xyz789",
"status": "https://api.sealegs.ai/v3/spotcast/spc_abc123xyz/status"
}
}
GET https://api.sealegs.ai/v3/spotcast/{id}/status
Poll this endpoint until status is "completed" or "failed". Recommended poll interval: 10-15 seconds.
Status values:
pending: Queued for processing (no progress field)processing: Currently generating forecast (includes progress)completed: Ready to retrieve (includes progress at 100%)failed: Error occurredProgress stages (only present when status is processing or completed):
Example request:
curl https://api.sealegs.ai/v3/spotcast/spc_abc123xyz/status \
-H "Authorization: Bearer $SEALEGS_API_KEY"
Response (pending):
{
"id": "spc_abc123xyz",
"forecast_id": "fcst_xyz789",
"status": "pending",
"created_at": "2025-12-01T10:30:00Z"
}
Response (processing):
{
"id": "spc_abc123xyz",
"forecast_id": "fcst_xyz789",
"status": "processing",
"created_at": "2025-12-01T10:30:00Z",
"progress": {
"stage": "ai_analysis",
"percentage": 75
}
}
Response (completed):
{
"id": "spc_abc123xyz",
"forecast_id": "fcst_xyz789",
"status": "completed",
"created_at": "2025-12-01T10:30:00Z",
"completed_at": "2025-12-01T10:30:45Z",
"progress": {
"stage": "completed",
"percentage": 100
}
}
GET https://api.sealegs.ai/v3/spotcast/{id}
Retrieves the completed forecast with AI analysis.
Example request:
curl https://api.sealegs.ai/v3/spotcast/spc_abc123xyz \
-H "Authorization: Bearer $SEALEGS_API_KEY"
Response (200 OK):
{
"id": "spc_abc123xyz",
"created_at": "2025-12-01T10:30:00Z",
"coordinates": {
"latitude": 25.7617,
"longitude": -80.1918
},
"forecast_period": {
"start_date": "2025-12-05T00:00:00Z",
"end_date": "2025-12-06T00:00:00Z",
"num_days": 2
},
"trip_duration_hours": 12,
"forecast_count": 1,
"metadata": {
"location_name": "Miami Marina"
},
"latest_forecast": {
"forecast_id"
POST https://api.sealegs.ai/v3/spotcast/{id}/refresh
Updates an existing forecast with the latest weather data. Costs 1 credit per forecast-day.
Optional body:
webhook_url (string): Override webhook for this refreshExample request:
curl -X POST https://api.sealegs.ai/v3/spotcast/spc_abc123xyz/refresh \
-H "Authorization: Bearer $SEALEGS_API_KEY"
Response (202 Accepted):
{
"id": "spc_abc123xyz",
"forecast_id": "fcst_newxyz789",
"status": "processing",
"created_at": "2025-12-02T08:00:00Z",
"links": {
"self": "https://api.sealegs.ai/v3/spotcast/spc_abc123xyz",
"status": "https://api.sealegs.ai/v3/spotcast/spc_abc123xyz/status"
}
}
GET https://api.sealegs.ai/v3/spotcast/{id}/forecasts
Lists all forecasts for a SpotCast, sorted by creation date (newest first). Each time you create or refresh a SpotCast, a new forecast is generated.
Query parameters:
limit (integer): Number of results to return (default: 10)Example request:
curl "https://api.sealegs.ai/v3/spotcast/spc_abc123xyz/forecasts?limit=5" \
-H "Authorization: Bearer $SEALEGS_API_KEY"
Response (200 OK):
{
"spotcast_id": "spc_abc123xyz",
"data": [
{
"forecast_id": "fcst_newxyz789",
"status": "completed",
"created_at": "2025-12-02T08:00:00Z",
"completed_at": "2025-12-02T08:00:42Z"
},
{
"forecast_id": "fcst_xyz789",
"status": "completed",
"created_at": "2025-12-01T10:30:00Z",
"completed_at": "2025-12-01T10:30:45Z"
}
],
"has_more": false
}
GET https://api.sealegs.ai/v3/spotcast/{id}/forecast/{forecast_id}
Retrieves a specific forecast with full details including AI analysis. Use this to access any forecast in a SpotCast's history, not just the latest one.
Example request:
curl "https://api.sealegs.ai/v3/spotcast/spc_abc123xyz/forecast/fcst_xyz789" \
-H "Authorization: Bearer $SEALEGS_API_KEY"
Response (200 OK - Completed):
{
"forecast_id": "fcst_xyz789",
"spotcast_id": "spc_abc123xyz",
"status": "completed",
"created_at": "2025-12-01T10:30:00Z",
"completed_at": "2025-12-01T10:30:45Z",
"forecast_period": {
"start_date": "2025-12-05T00:00:00Z",
"num_days": 2
},
"ai_analysis": {
"summary": "Excellent conditions expected. Light winds 8-12kt from the NE with calm 1-2ft seas.",
"daily_classifications": [
{
"date": "2025-12-05",
"classification": "GO",
"summary": "Light winds and calm seas throughout the day."
Response (200 OK - Processing):
{
"forecast_id": "fcst_xyz789",
"spotcast_id": "spc_abc123xyz",
"status": "processing",
"created_at": "2025-12-01T10:30:00Z",
"forecast_period": {
"start_date": "2025-12-05T00:00:00Z",
"num_days": 2
},
"progress": {
"stage": "analyzing",
"percentage": 65
}
}
Response (200 OK - Failed):
{
"forecast_id": "fcst_xyz789",
"spotcast_id": "spc_abc123xyz",
"status": "failed",
"created_at": "2025-12-01T10:30:00Z",
"forecast_period": {
"start_date": "2025-12-05T00:00:00Z",
"num_days": 2
},
"error": "Processing failed"
}
GET https://api.sealegs.ai/v3/spotcasts
Retrieves all SpotCasts for your account.
Query parameters:
limit (integer): 1-100 results (default: 20)after (string): Cursor for paginationExample request:
curl "https://api.sealegs.ai/v3/spotcasts?limit=10" \
-H "Authorization: Bearer $SEALEGS_API_KEY"
Response (200 OK):
{
"data": [
{
"id": "spc_abc123xyz",
"created_at": "2025-12-01T10:30:00Z",
"coordinates": {
"latitude": 25.7617,
"longitude": -80.1918
},
"start_date": "2025-12-05T00:00:00-05:00",
"end_date": "2025-12-06T23:59:59-05:00",
"num_days": 2,
"latest_forecast": {
"forecast_id": "fcst_xyz789",
"status": "completed"
}
}
],
"has_more": true,
GET https://api.sealegs.ai/v3/account/balance
Returns your current credit balance and usage.
Example request:
curl https://api.sealegs.ai/v3/account/balance \
-H "Authorization: Bearer $SEALEGS_API_KEY"
Response (200 OK):
{
"credit_balance": 100,
"total_credits_purchased": 200,
"total_credits_used": 100,
"purchase_url": "https://developers.sealegs.ai/dashboard/billing"
}
When you provide a webhook_url during SpotCast creation or refresh, SeaLegs sends a POST request to that URL when processing completes or fails.
Content-Type: application/json
X-SeaLegs-Event: spotcast.forecast.completed
X-SeaLegs-Signature: sha256=abc123...
X-SeaLegs-Delivery-ID: whk_abc123xyz
X-SeaLegs-Timestamp: 1733045400
User-Agent: SeaLegs-Webhooks/1.0
Every webhook includes an HMAC-SHA256 signature in the X-SeaLegs-Signature header. Your webhook secret is available in the Developer Dashboard. Always verify the signature before processing the payload.
Python:
import hmac
import hashlib
def verify_webhook(payload: bytes, signature: str, secret: str) -> bool:
expected = hmac.new(secret.encode(), payload, hashlib.sha256).hexdigest()
return hmac.compare_digest(f"sha256={expected}", signature)
JavaScript:
const crypto = require('crypto');
function verifyWebhook(payload, signature, secret) {
const expected = crypto.createHmac('sha256', secret).update(payload).digest('hex');
return crypto.timingSafeEqual(
Buffer.from(`sha256=${expected}`),
Buffer.from(signature)
);
}
{
"event": "spotcast.forecast.completed",
"created_at": "2025-12-01T10:30:45Z",
"data": {
"spotcast_id": "spc_abc123xyz",
"forecast_id": "fcst_xyz789",
"status": "completed",
"summary": "Excellent conditions expected. Light winds 8-12kt from the NE with calm 1-2ft seas.",
"metadata": {
"trip_name": "Weekend Fishing Trip"
}
}
}
The summary field is included when AI analysis completes successfully. The metadata object is included when you provided metadata in the original POST /v3/spotcast request, echoed back exactly as sent.
{
"event": "spotcast.forecast.failed",
"created_at": "2025-12-01T10:31:00Z",
"data": {
"spotcast_id": "spc_abc123xyz",
"forecast_id": "fcst_xyz789",
"status": "failed",
"error": {
"code": "processing_failed",
"message": "Unable to fetch weather data for the specified location"
},
"metadata": {
"trip_name": "Weekend Fishing Trip"
}
}
}
Failed deliveries are retried up to 4 times: after 5 minutes, 30 minutes, 2 hours, and 24 hours.
Each forecast day receives a safety classification:
| Classification | Meaning |
|---|---|
| GO | Safe conditions for the vessel type |
| CAUTION | Proceed with awareness; conditions may be challenging |
| NO-GO | Conditions not recommended for the vessel type |
Classifications are adjusted based on vessel type and size when vessel_info is provided.
When vessel_info is provided:
{
"error": {
"code": "invalid_coordinates",
"message": "Latitude must be between -90 and 90",
"param": "latitude"
}
}
| Code | Meaning | Action |
|---|---|---|
| 200 | Success | Request completed |
| 201 | Created | Resource created |
| 202 | Accepted | Async processing started |
| 400 | Bad Request | Check parameter values |
| 401 | Unauthorized | Verify API key is correct |
| 402 | Payment Required | Add credits at developer.sealegs.ai |
| 403 | Forbidden | Account not verified or suspended |
| 404 | Not Found | Check resource ID |
| 429 | Rate Limited | Wait and retry (60 req/min limit) |
| 500 | Server Error | Retry after brief delay |
| Code | Description |
|---|---|
missing_api_key | No API key provided in request |
invalid_api_key | API key is not recognized |
key_revoked | API key has been revoked |
| Code | Description |
|---|---|
account_not_verified | Developer account has not been verified |
account_suspended | Developer account has been suspended |
| Code | Description |
|---|---|
insufficient_balance | Not enough credits (response includes current_balance, required_credits, purchase_url) |
| Code | Description |
|---|---|
invalid_coordinates | Coordinates out of valid range |
invalid_date_format | Not ISO 8601 format |
invalid_webhook_url | Not a valid HTTPS URL |
invalid_preferences | Preferences format is invalid |
invalid_language | Language not supported (use: en, es, fr, pt, it, ja) |
invalid_distance_units | Distance units not supported (use: nm, mi, km) |
invalid_speed_units | Speed units not supported (use: kts, mph, ms) |
invalid_json | Request body is not valid JSON |
| Code | Description |
|---|---|
spotcast_not_found | The specified SpotCast does not exist |
forecast_not_found | The specified forecast does not exist |
| Code | Description |
|---|---|
rate_limit_exceeded | Too many requests (response includes retry_after seconds) |
| Code | Description |
|---|---|
internal_error | An unexpected error occurred |
creation_failed | Failed to create SpotCast |
retrieval_failed | Failed to retrieve resource |
MIT