{
  "schemaVersion": "1.0",
  "item": {
    "slug": "fulcra-context",
    "name": "Fulcra Context",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/arc-claw-bot/fulcra-context",
    "canonicalUrl": "https://clawhub.ai/arc-claw-bot/fulcra-context",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/fulcra-context",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=fulcra-context",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SECURITY.md",
      "SKILL.md",
      "scripts/fulcra_auth.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/fulcra-context"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/fulcra-context",
    "agentPageUrl": "https://openagent3.xyz/skills/fulcra-context/agent",
    "manifestUrl": "https://openagent3.xyz/skills/fulcra-context/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/fulcra-context/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Fulcra Context — Personal Data for AI Partners",
        "body": "Give your agent situational awareness. With your human's consent, access their biometrics, sleep, activity, location, and calendar data from the Fulcra Life API."
      },
      {
        "title": "What This Enables",
        "body": "With Fulcra Context, you can:\n\nKnow how your human slept → adjust morning briefing intensity\nSee heart rate / HRV trends → detect stress, suggest breaks\nCheck location → context-aware suggestions (home vs. office vs. traveling)\nRead calendar → proactive meeting prep, schedule awareness\nTrack workouts → recovery-aware task scheduling"
      },
      {
        "title": "Privacy Model",
        "body": "OAuth2 per-user — your human controls exactly what data you see\nTheir data stays theirs — Fulcra stores it, you get read access only\nConsent is revocable — they can disconnect anytime\nNEVER share your human's Fulcra data publicly without explicit permission"
      },
      {
        "title": "Option 1: MCP Server (Recommended)",
        "body": "Use Fulcra's hosted MCP server at https://mcp.fulcradynamics.com/mcp (Streamable HTTP transport, OAuth2 auth).\n\nYour human needs a Fulcra account (free via the Context iOS app or Portal).\n\nClaude Desktop config (claude_desktop_config.json):\n\n{\n  \"mcpServers\": {\n    \"fulcra_context\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-remote\", \"https://mcp.fulcradynamics.com/mcp\"]\n    }\n  }\n}\n\nOr run locally via uvx:\n\n{\n  \"mcpServers\": {\n    \"fulcra_context\": {\n      \"command\": \"uvx\",\n      \"args\": [\"fulcra-context-mcp@latest\"]\n    }\n  }\n}\n\nAlso tested with: Goose, Windsurf, VS Code. Open source: github.com/fulcradynamics/fulcra-context-mcp"
      },
      {
        "title": "Option 2: Direct API Access",
        "body": "Your human creates a Fulcra account\nThey generate an access token via the Python client or Portal\nStore the token: skills.entries.fulcra-context.apiKey in openclaw.json"
      },
      {
        "title": "Option 3: Python Client (Tested & Proven)",
        "body": "pip3 install fulcra-api\n\nfrom fulcra_api.core import FulcraAPI\n\napi = FulcraAPI()\napi.authorize()  # Opens device flow — human visits URL and logs in\n\n# Now you have access:\nsleep = api.metric_samples(start, end, \"SleepStage\")\nhr = api.metric_samples(start, end, \"HeartRate\")\nevents = api.calendar_events(start, end)\ncatalog = api.metrics_catalog()\n\nSave the token for automation:\n\nimport json\ntoken_data = {\n    \"access_token\": api.fulcra_cached_access_token,\n    \"expiration\": api.fulcra_cached_access_token_expiration.isoformat(),\n    \"user_id\": api.get_fulcra_userid()\n}\nwith open(\"~/.config/fulcra/token.json\", \"w\") as f:\n    json.dump(token_data, f)\n\nToken expires in ~24h. Use the built-in token manager for automatic refresh (see below)."
      },
      {
        "title": "Token Lifecycle Management",
        "body": "The skill includes scripts/fulcra_auth.py which handles the full OAuth2 lifecycle — including refresh tokens so your human only authorizes once.\n\n# First-time setup (interactive — human approves via browser)\npython3 scripts/fulcra_auth.py authorize\n\n# Refresh token before expiry (automatic, no human needed)\npython3 scripts/fulcra_auth.py refresh\n\n# Check token status\npython3 scripts/fulcra_auth.py status\n\n# Get current access token (auto-refreshes if needed, for piping)\nexport FULCRA_ACCESS_TOKEN=$(python3 scripts/fulcra_auth.py token)\n\nHow it works:\n\nauthorize runs the Auth0 device flow and saves both the access token AND refresh token\nrefresh uses the saved refresh token to get a new access token — no human interaction\ntoken prints the access token (auto-refreshing if expired) — perfect for cron jobs and scripts\n\nSet up a cron job to keep the token fresh:\n\nFor OpenClaw agents, add a cron job that refreshes the token every 12 hours:\n\npython3 /path/to/skills/fulcra-context/scripts/fulcra_auth.py refresh\n\nToken data is stored at ~/.config/fulcra/token.json (permissions restricted to owner)."
      },
      {
        "title": "Check sleep (last night)",
        "body": "# Get time series for sleep stages (last 24h)\ncurl -s \"https://api.fulcradynamics.com/data/v0/time_series_grouped?metrics=SleepStage&start=$(date -u -v-24H +%Y-%m-%dT%H:%M:%SZ)&end=$(date -u +%Y-%m-%dT%H:%M:%SZ)&samprate=300\" \\\n  -H \"Authorization: Bearer $FULCRA_ACCESS_TOKEN\""
      },
      {
        "title": "Check heart rate (recent)",
        "body": "curl -s \"https://api.fulcradynamics.com/data/v0/time_series_grouped?metrics=HeartRate&start=$(date -u -v-2H +%Y-%m-%dT%H:%M:%SZ)&end=$(date -u +%Y-%m-%dT%H:%M:%SZ)&samprate=60\" \\\n  -H \"Authorization: Bearer $FULCRA_ACCESS_TOKEN\""
      },
      {
        "title": "Check today's calendar",
        "body": "curl -s \"https://api.fulcradynamics.com/data/v0/{fulcra_userid}/calendar_events?start=$(date -u +%Y-%m-%dT00:00:00Z)&end=$(date -u +%Y-%m-%dT23:59:59Z)\" \\\n  -H \"Authorization: Bearer $FULCRA_ACCESS_TOKEN\""
      },
      {
        "title": "Available metrics",
        "body": "curl -s \"https://api.fulcradynamics.com/data/v0/metrics_catalog\" \\\n  -H \"Authorization: Bearer $FULCRA_ACCESS_TOKEN\""
      },
      {
        "title": "Key Metrics",
        "body": "MetricWhat It Tells YouSleepStageSleep quality — REM, Deep, Light, AwakeHeartRateCurrent stress/activity levelHRVRecovery and autonomic nervous system stateStepCountActivity level throughout the dayActiveCaloriesBurnedExercise intensityRespiratoryRateBaseline health indicatorBloodOxygenWellness check"
      },
      {
        "title": "Morning Briefing",
        "body": "Check sleep + calendar + weather → compose a briefing calibrated to energy level."
      },
      {
        "title": "Stress-Aware Communication",
        "body": "Monitor HRV + heart rate → if elevated, keep messages brief and non-urgent."
      },
      {
        "title": "Proactive Recovery",
        "body": "After intense workout or poor sleep → suggest lighter schedule, remind about hydration."
      },
      {
        "title": "Travel Awareness",
        "body": "Location changes → adjust timezone handling, suggest local info, modify schedule expectations."
      },
      {
        "title": "Demo Mode",
        "body": "For public demos (VC pitches, livestreams, conferences), enable demo mode to swap in synthetic calendar and location data while keeping real biometrics."
      },
      {
        "title": "Activation",
        "body": "# Environment variable (recommended for persistent config)\nexport FULCRA_DEMO_MODE=true\n\n# Or pass --demo flag to collect_briefing_data.py\npython3 collect_briefing_data.py --demo"
      },
      {
        "title": "What changes in demo mode",
        "body": "Data TypeDemo ModeNormal ModeSleep, HR, HRV, Steps✅ Real data✅ Real dataCalendar events🔄 Synthetic (rotating schedules)✅ Real dataLocation🔄 Synthetic (curated NYC spots)✅ Real dataWeather✅ Real data✅ Real data"
      },
      {
        "title": "Transparency",
        "body": "Output JSON includes \"demo_mode\": true at the top level\nCalendar and location objects include \"demo_mode\": true\nWhen presenting to humans, include a subtle \"📍 Demo mode\" indicator"
      },
      {
        "title": "What's safe to share publicly",
        "body": "✅ Biometric trends, sleep quality, step counts, HRV — cleared for public\n✅ Synthetic calendar and location (demo mode) — designed for public display\n❌ NEVER share real location, real calendar events, or identifying data"
      },
      {
        "title": "Links",
        "body": "Fulcra Platform\nDeveloper Docs\nLife API Reference\nPython Client\nMCP Server\nDemo Notebooks\nDiscord"
      }
    ],
    "body": "Fulcra Context — Personal Data for AI Partners\n\nGive your agent situational awareness. With your human's consent, access their biometrics, sleep, activity, location, and calendar data from the Fulcra Life API.\n\nWhat This Enables\n\nWith Fulcra Context, you can:\n\nKnow how your human slept → adjust morning briefing intensity\nSee heart rate / HRV trends → detect stress, suggest breaks\nCheck location → context-aware suggestions (home vs. office vs. traveling)\nRead calendar → proactive meeting prep, schedule awareness\nTrack workouts → recovery-aware task scheduling\nPrivacy Model\nOAuth2 per-user — your human controls exactly what data you see\nTheir data stays theirs — Fulcra stores it, you get read access only\nConsent is revocable — they can disconnect anytime\nNEVER share your human's Fulcra data publicly without explicit permission\nSetup\nOption 1: MCP Server (Recommended)\n\nUse Fulcra's hosted MCP server at https://mcp.fulcradynamics.com/mcp (Streamable HTTP transport, OAuth2 auth).\n\nYour human needs a Fulcra account (free via the Context iOS app or Portal).\n\nClaude Desktop config (claude_desktop_config.json):\n\n{\n  \"mcpServers\": {\n    \"fulcra_context\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-remote\", \"https://mcp.fulcradynamics.com/mcp\"]\n    }\n  }\n}\n\n\nOr run locally via uvx:\n\n{\n  \"mcpServers\": {\n    \"fulcra_context\": {\n      \"command\": \"uvx\",\n      \"args\": [\"fulcra-context-mcp@latest\"]\n    }\n  }\n}\n\n\nAlso tested with: Goose, Windsurf, VS Code. Open source: github.com/fulcradynamics/fulcra-context-mcp\n\nOption 2: Direct API Access\nYour human creates a Fulcra account\nThey generate an access token via the Python client or Portal\nStore the token: skills.entries.fulcra-context.apiKey in openclaw.json\nOption 3: Python Client (Tested & Proven)\npip3 install fulcra-api\n\nfrom fulcra_api.core import FulcraAPI\n\napi = FulcraAPI()\napi.authorize()  # Opens device flow — human visits URL and logs in\n\n# Now you have access:\nsleep = api.metric_samples(start, end, \"SleepStage\")\nhr = api.metric_samples(start, end, \"HeartRate\")\nevents = api.calendar_events(start, end)\ncatalog = api.metrics_catalog()\n\n\nSave the token for automation:\n\nimport json\ntoken_data = {\n    \"access_token\": api.fulcra_cached_access_token,\n    \"expiration\": api.fulcra_cached_access_token_expiration.isoformat(),\n    \"user_id\": api.get_fulcra_userid()\n}\nwith open(\"~/.config/fulcra/token.json\", \"w\") as f:\n    json.dump(token_data, f)\n\n\nToken expires in ~24h. Use the built-in token manager for automatic refresh (see below).\n\nToken Lifecycle Management\n\nThe skill includes scripts/fulcra_auth.py which handles the full OAuth2 lifecycle — including refresh tokens so your human only authorizes once.\n\n# First-time setup (interactive — human approves via browser)\npython3 scripts/fulcra_auth.py authorize\n\n# Refresh token before expiry (automatic, no human needed)\npython3 scripts/fulcra_auth.py refresh\n\n# Check token status\npython3 scripts/fulcra_auth.py status\n\n# Get current access token (auto-refreshes if needed, for piping)\nexport FULCRA_ACCESS_TOKEN=$(python3 scripts/fulcra_auth.py token)\n\n\nHow it works:\n\nauthorize runs the Auth0 device flow and saves both the access token AND refresh token\nrefresh uses the saved refresh token to get a new access token — no human interaction\ntoken prints the access token (auto-refreshing if expired) — perfect for cron jobs and scripts\n\nSet up a cron job to keep the token fresh:\n\nFor OpenClaw agents, add a cron job that refreshes the token every 12 hours:\n\npython3 /path/to/skills/fulcra-context/scripts/fulcra_auth.py refresh\n\n\nToken data is stored at ~/.config/fulcra/token.json (permissions restricted to owner).\n\nQuick Commands\nCheck sleep (last night)\n# Get time series for sleep stages (last 24h)\ncurl -s \"https://api.fulcradynamics.com/data/v0/time_series_grouped?metrics=SleepStage&start=$(date -u -v-24H +%Y-%m-%dT%H:%M:%SZ)&end=$(date -u +%Y-%m-%dT%H:%M:%SZ)&samprate=300\" \\\n  -H \"Authorization: Bearer $FULCRA_ACCESS_TOKEN\"\n\nCheck heart rate (recent)\ncurl -s \"https://api.fulcradynamics.com/data/v0/time_series_grouped?metrics=HeartRate&start=$(date -u -v-2H +%Y-%m-%dT%H:%M:%SZ)&end=$(date -u +%Y-%m-%dT%H:%M:%SZ)&samprate=60\" \\\n  -H \"Authorization: Bearer $FULCRA_ACCESS_TOKEN\"\n\nCheck today's calendar\ncurl -s \"https://api.fulcradynamics.com/data/v0/{fulcra_userid}/calendar_events?start=$(date -u +%Y-%m-%dT00:00:00Z)&end=$(date -u +%Y-%m-%dT23:59:59Z)\" \\\n  -H \"Authorization: Bearer $FULCRA_ACCESS_TOKEN\"\n\nAvailable metrics\ncurl -s \"https://api.fulcradynamics.com/data/v0/metrics_catalog\" \\\n  -H \"Authorization: Bearer $FULCRA_ACCESS_TOKEN\"\n\nKey Metrics\nMetric\tWhat It Tells You\nSleepStage\tSleep quality — REM, Deep, Light, Awake\nHeartRate\tCurrent stress/activity level\nHRV\tRecovery and autonomic nervous system state\nStepCount\tActivity level throughout the day\nActiveCaloriesBurned\tExercise intensity\nRespiratoryRate\tBaseline health indicator\nBloodOxygen\tWellness check\nIntegration Patterns\nMorning Briefing\n\nCheck sleep + calendar + weather → compose a briefing calibrated to energy level.\n\nStress-Aware Communication\n\nMonitor HRV + heart rate → if elevated, keep messages brief and non-urgent.\n\nProactive Recovery\n\nAfter intense workout or poor sleep → suggest lighter schedule, remind about hydration.\n\nTravel Awareness\n\nLocation changes → adjust timezone handling, suggest local info, modify schedule expectations.\n\nDemo Mode\n\nFor public demos (VC pitches, livestreams, conferences), enable demo mode to swap in synthetic calendar and location data while keeping real biometrics.\n\nActivation\n# Environment variable (recommended for persistent config)\nexport FULCRA_DEMO_MODE=true\n\n# Or pass --demo flag to collect_briefing_data.py\npython3 collect_briefing_data.py --demo\n\nWhat changes in demo mode\nData Type\tDemo Mode\tNormal Mode\nSleep, HR, HRV, Steps\t✅ Real data\t✅ Real data\nCalendar events\t🔄 Synthetic (rotating schedules)\t✅ Real data\nLocation\t🔄 Synthetic (curated NYC spots)\t✅ Real data\nWeather\t✅ Real data\t✅ Real data\nTransparency\nOutput JSON includes \"demo_mode\": true at the top level\nCalendar and location objects include \"demo_mode\": true\nWhen presenting to humans, include a subtle \"📍 Demo mode\" indicator\nWhat's safe to share publicly\n✅ Biometric trends, sleep quality, step counts, HRV — cleared for public\n✅ Synthetic calendar and location (demo mode) — designed for public display\n❌ NEVER share real location, real calendar events, or identifying data\nLinks\nFulcra Platform\nDeveloper Docs\nLife API Reference\nPython Client\nMCP Server\nDemo Notebooks\nDiscord"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/arc-claw-bot/fulcra-context",
    "publisherUrl": "https://clawhub.ai/arc-claw-bot/fulcra-context",
    "owner": "arc-claw-bot",
    "version": "1.2.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/fulcra-context",
    "downloadUrl": "https://openagent3.xyz/downloads/fulcra-context",
    "agentUrl": "https://openagent3.xyz/skills/fulcra-context/agent",
    "manifestUrl": "https://openagent3.xyz/skills/fulcra-context/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/fulcra-context/agent.md"
  }
}