{
  "schemaVersion": "1.0",
  "item": {
    "slug": "limitless-lifelogs",
    "name": "limitless-lifelogs",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/jeremytoce/limitless-lifelogs",
    "canonicalUrl": "https://clawhub.ai/jeremytoce/limitless-lifelogs",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/limitless-lifelogs",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=limitless-lifelogs",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "install.sh",
      "agents.json",
      "SKILL.md"
    ],
    "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. 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. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.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/limitless-lifelogs"
    },
    "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/limitless-lifelogs",
    "agentPageUrl": "https://openagent3.xyz/skills/limitless-lifelogs/agent",
    "manifestUrl": "https://openagent3.xyz/skills/limitless-lifelogs/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/limitless-lifelogs/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. 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. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Limitless Life Logs Skill",
        "body": "You have access to the user's Limitless AI pendant recordings via the Limitless REST API.\nUse the tools below to retrieve, search, and analyze life log transcriptions."
      },
      {
        "title": "Configuration",
        "body": "Read these values from the environment before any API call:\n\nVariableRequiredDescriptionLIMITLESS_API_KEYYesAPI key from Limitless Developer settingsLIMITLESS_TIMEZONENoIANA timezone (e.g. America/Los_Angeles). Defaults to UTC\n\nIf LIMITLESS_API_KEY is not set, stop and tell the user:\n\n\"Please set your API key first: export LIMITLESS_API_KEY=your_key_here\"\n\nIf LIMITLESS_TIMEZONE is not set, proceed with UTC and note it in your response."
      },
      {
        "title": "API Reference",
        "body": "Base URL: https://api.limitless.ai\nAuth header: X-API-Key: $LIMITLESS_API_KEY\nThis skill is READ-ONLY — never call DELETE endpoints."
      },
      {
        "title": "List / Search Lifelogs",
        "body": "curl -s -H \"X-API-Key: $LIMITLESS_API_KEY\" \\\n  \"https://api.limitless.ai/v1/lifelogs?timezone=$LIMITLESS_TIMEZONE&PARAMS\"\n\nQuery parameters (append as &key=value):\n\nParamTypeDescriptionqstringHybrid semantic + keyword search querydateISO-8601 dateFilter to a specific day (YYYY-MM-DD)startISO-8601 datetimeRange startendISO-8601 datetimeRange endlimitintegerResults per page (default 10, max 50)cursorstringPagination cursor from previous nextCursordirectionasc|descSort order (default desc)includeMarkdownbooleanInclude formatted markdown contentincludeHeadingsbooleanInclude section headings"
      },
      {
        "title": "Get a Specific Lifelog",
        "body": "curl -s -H \"X-API-Key: $LIMITLESS_API_KEY\" \\\n  \"https://api.limitless.ai/v1/lifelogs/LOG_ID\""
      },
      {
        "title": "Paginate",
        "body": "If the response includes \"nextCursor\" in the meta object, fetch the next page by\nappending &cursor=NEXT_CURSOR to the same request. Continue until nextCursor is null\nor you have enough data."
      },
      {
        "title": "1. Search by Topic or Keyword",
        "body": "Trigger phrases: \"search my logs for...\", \"find mentions of...\", \"did anyone say...\"\n\nExtract the search term from the user's message.\nCall the lifelogs endpoint with q=<term> and limit=10.\nPresent results as a numbered list: timestamp, a short excerpt, and the log ID.\nOffer to fetch more pages or open a specific log."
      },
      {
        "title": "2. Summarize Recent Activity",
        "body": "Trigger phrases: \"what happened today\", \"summarize this week\", \"recap yesterday\"\n\nDetermine the date or range from the user's intent.\n\n\"today\" → date=<today's date>\n\"this week\" → start=<Monday>&end=<today>\n\"yesterday\" → date=<yesterday>\n\n\nFetch up to 50 logs for the range (paginate if needed).\nSynthesize a structured summary:\n\nKey topics and conversations\nDecisions made\nPeople mentioned\nNotable moments"
      },
      {
        "title": "3. Memory Recall",
        "body": "Trigger phrases: \"what did we decide about...\", \"who mentioned...\", \"remind me about...\"\n\nIdentify the topic or entity from the user's question.\nSearch with q=<topic>, fetching enough results to answer.\nSynthesize a direct answer citing the relevant log entries (include date and time)."
      },
      {
        "title": "4. Browse by Date / Time Range",
        "body": "Trigger phrases: \"show me logs from...\", \"what was recorded on...\", \"logs between X and Y\"\n\nParse the date or range from the user's message.\nFetch logs with date= or start=/end=.\nPresent a chronological list with titles, timestamps, and brief summaries."
      },
      {
        "title": "5. Action Item Extraction",
        "body": "Trigger phrases: \"extract tasks\", \"what did I ask [agent] to do\", \"find action items for...\", or\nautomatically after fetching logs when the user asks for a recap.\n\nAgent Roster\n\nLoad the configured agents from the roster file and extract the list of known agent names:\n\ncat ~/.openclaw/workspace/skills/limitless/agents.json | jq '[.agents[].name]'\n\nUse these names as the detection vocabulary. Never hardcode agent names in logic — always derive them from agents.json at runtime.\n\nDetection Rules\n\nScan the lifelog transcription text for directives to any agent in the roster. An action item is present when:\n\nA known agent name (from the roster) appears as a direct address at the start of a phrase or sentence\n\nExamples: \"<AgentName>, send...\", \"Hey <AgentName> can you...\", \"@<AgentName> please...\", \"<AgentName> — I need you to...\"\n\n\nA task verb follows: send, schedule, remind, book, find, create, draft, write, check, follow up, research, compile, etc.\nThe phrase contains a clear deliverable or target\n\nExtraction Format\n\nFor each detected action item, output:\n\nAgent:    <agent name>\nTrigger:  \"<exact quote from transcript>\"\nTask:     <one-sentence plain-English summary of what was asked>\nFrom log: <log ID> — <timestamp>\n\nDispatch Prompt\n\nAfter presenting each extracted action item, ask the user:\n\n\"Should I dispatch this task to [Agent Name]?\"\n\nIf the user says yes, read the agent's dispatch config from agents.json and use the\nappropriate method:\n\nwebhook: POST to dispatch.url with JSON body:\n{\n  \"agent\": \"<name>\",\n  \"task\": \"<task summary>\",\n  \"source_quote\": \"<exact quote>\",\n  \"log_id\": \"<log ID>\",\n  \"timestamp\": \"<ISO timestamp>\"\n}\n\ncurl -s -X POST -H \"Content-Type: application/json\" \\\n  -d '{\"agent\":\"NAME\",\"task\":\"TASK\",\"source_quote\":\"QUOTE\",\"log_id\":\"ID\",\"timestamp\":\"TS\"}' \\\n  \"DISPATCH_URL\"\n\n\n\nemail: Inform the user what the email should contain and ask them to send it, or\nuse the system mail command if available:\necho \"Task for AGENT_NAME:\\nTASK_SUMMARY\\n\\nSource: QUOTE\\nLog: LOG_ID\" | \\\n  mail -s \"Task from Limitless\" AGENT_EMAIL\n\nIf the agent name is not in the roster, flag it:\n\n\"I found a task directed at '[Name]' but they're not in your agents.json roster. Add them\nto ~/.openclaw/workspace/skills/limitless/agents.json to enable dispatch.\""
      },
      {
        "title": "Error Handling",
        "body": "SituationResponseLIMITLESS_API_KEY not setStop and prompt user to export itHTTP 401\"Your API key appears invalid. Check it in Limitless Developer settings.\"HTTP 429\"Rate limit hit (180 req/min). Wait 60 seconds and try again.\"HTTP 404\"That log ID wasn't found. It may have been deleted or the ID is incorrect.\"Empty results\"No logs found matching that query. Try a broader search term or different date range.\"agents.json missing\"agents.json not found. Create it at ~/.openclaw/workspace/skills/limitless/agents.json using the template in the skill repo.\""
      }
    ],
    "body": "Limitless Life Logs Skill\n\nYou have access to the user's Limitless AI pendant recordings via the Limitless REST API. Use the tools below to retrieve, search, and analyze life log transcriptions.\n\nConfiguration\n\nRead these values from the environment before any API call:\n\nVariable\tRequired\tDescription\nLIMITLESS_API_KEY\tYes\tAPI key from Limitless Developer settings\nLIMITLESS_TIMEZONE\tNo\tIANA timezone (e.g. America/Los_Angeles). Defaults to UTC\n\nIf LIMITLESS_API_KEY is not set, stop and tell the user:\n\n\"Please set your API key first: export LIMITLESS_API_KEY=your_key_here\"\n\nIf LIMITLESS_TIMEZONE is not set, proceed with UTC and note it in your response.\n\nAPI Reference\n\nBase URL: https://api.limitless.ai Auth header: X-API-Key: $LIMITLESS_API_KEY This skill is READ-ONLY — never call DELETE endpoints.\n\nList / Search Lifelogs\ncurl -s -H \"X-API-Key: $LIMITLESS_API_KEY\" \\\n  \"https://api.limitless.ai/v1/lifelogs?timezone=$LIMITLESS_TIMEZONE&PARAMS\"\n\n\nQuery parameters (append as &key=value):\n\nParam\tType\tDescription\nq\tstring\tHybrid semantic + keyword search query\ndate\tISO-8601 date\tFilter to a specific day (YYYY-MM-DD)\nstart\tISO-8601 datetime\tRange start\nend\tISO-8601 datetime\tRange end\nlimit\tinteger\tResults per page (default 10, max 50)\ncursor\tstring\tPagination cursor from previous nextCursor\ndirection\tasc|desc\tSort order (default desc)\nincludeMarkdown\tboolean\tInclude formatted markdown content\nincludeHeadings\tboolean\tInclude section headings\nGet a Specific Lifelog\ncurl -s -H \"X-API-Key: $LIMITLESS_API_KEY\" \\\n  \"https://api.limitless.ai/v1/lifelogs/LOG_ID\"\n\nPaginate\n\nIf the response includes \"nextCursor\" in the meta object, fetch the next page by appending &cursor=NEXT_CURSOR to the same request. Continue until nextCursor is null or you have enough data.\n\nCapabilities\n1. Search by Topic or Keyword\n\nTrigger phrases: \"search my logs for...\", \"find mentions of...\", \"did anyone say...\"\n\nExtract the search term from the user's message.\nCall the lifelogs endpoint with q=<term> and limit=10.\nPresent results as a numbered list: timestamp, a short excerpt, and the log ID.\nOffer to fetch more pages or open a specific log.\n2. Summarize Recent Activity\n\nTrigger phrases: \"what happened today\", \"summarize this week\", \"recap yesterday\"\n\nDetermine the date or range from the user's intent.\n\"today\" → date=<today's date>\n\"this week\" → start=<Monday>&end=<today>\n\"yesterday\" → date=<yesterday>\nFetch up to 50 logs for the range (paginate if needed).\nSynthesize a structured summary:\nKey topics and conversations\nDecisions made\nPeople mentioned\nNotable moments\n3. Memory Recall\n\nTrigger phrases: \"what did we decide about...\", \"who mentioned...\", \"remind me about...\"\n\nIdentify the topic or entity from the user's question.\nSearch with q=<topic>, fetching enough results to answer.\nSynthesize a direct answer citing the relevant log entries (include date and time).\n4. Browse by Date / Time Range\n\nTrigger phrases: \"show me logs from...\", \"what was recorded on...\", \"logs between X and Y\"\n\nParse the date or range from the user's message.\nFetch logs with date= or start=/end=.\nPresent a chronological list with titles, timestamps, and brief summaries.\n5. Action Item Extraction\n\nTrigger phrases: \"extract tasks\", \"what did I ask [agent] to do\", \"find action items for...\", or automatically after fetching logs when the user asks for a recap.\n\nAgent Roster\n\nLoad the configured agents from the roster file and extract the list of known agent names:\n\ncat ~/.openclaw/workspace/skills/limitless/agents.json | jq '[.agents[].name]'\n\n\nUse these names as the detection vocabulary. Never hardcode agent names in logic — always derive them from agents.json at runtime.\n\nDetection Rules\n\nScan the lifelog transcription text for directives to any agent in the roster. An action item is present when:\n\nA known agent name (from the roster) appears as a direct address at the start of a phrase or sentence\nExamples: \"<AgentName>, send...\", \"Hey <AgentName> can you...\", \"@<AgentName> please...\", \"<AgentName> — I need you to...\"\nA task verb follows: send, schedule, remind, book, find, create, draft, write, check, follow up, research, compile, etc.\nThe phrase contains a clear deliverable or target\n\nExtraction Format\n\nFor each detected action item, output:\n\nAgent:    <agent name>\nTrigger:  \"<exact quote from transcript>\"\nTask:     <one-sentence plain-English summary of what was asked>\nFrom log: <log ID> — <timestamp>\n\n\nDispatch Prompt\n\nAfter presenting each extracted action item, ask the user:\n\n\"Should I dispatch this task to [Agent Name]?\"\n\nIf the user says yes, read the agent's dispatch config from agents.json and use the appropriate method:\n\nwebhook: POST to dispatch.url with JSON body:\n\n{\n  \"agent\": \"<name>\",\n  \"task\": \"<task summary>\",\n  \"source_quote\": \"<exact quote>\",\n  \"log_id\": \"<log ID>\",\n  \"timestamp\": \"<ISO timestamp>\"\n}\n\ncurl -s -X POST -H \"Content-Type: application/json\" \\\n  -d '{\"agent\":\"NAME\",\"task\":\"TASK\",\"source_quote\":\"QUOTE\",\"log_id\":\"ID\",\"timestamp\":\"TS\"}' \\\n  \"DISPATCH_URL\"\n\n\nemail: Inform the user what the email should contain and ask them to send it, or use the system mail command if available:\n\necho \"Task for AGENT_NAME:\\nTASK_SUMMARY\\n\\nSource: QUOTE\\nLog: LOG_ID\" | \\\n  mail -s \"Task from Limitless\" AGENT_EMAIL\n\n\nIf the agent name is not in the roster, flag it:\n\n\"I found a task directed at '[Name]' but they're not in your agents.json roster. Add them to ~/.openclaw/workspace/skills/limitless/agents.json to enable dispatch.\"\n\nError Handling\nSituation\tResponse\nLIMITLESS_API_KEY not set\tStop and prompt user to export it\nHTTP 401\t\"Your API key appears invalid. Check it in Limitless Developer settings.\"\nHTTP 429\t\"Rate limit hit (180 req/min). Wait 60 seconds and try again.\"\nHTTP 404\t\"That log ID wasn't found. It may have been deleted or the ID is incorrect.\"\nEmpty results\t\"No logs found matching that query. Try a broader search term or different date range.\"\nagents.json missing\t\"agents.json not found. Create it at ~/.openclaw/workspace/skills/limitless/agents.json using the template in the skill repo.\""
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/jeremytoce/limitless-lifelogs",
    "publisherUrl": "https://clawhub.ai/jeremytoce/limitless-lifelogs",
    "owner": "jeremytoce",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/limitless-lifelogs",
    "downloadUrl": "https://openagent3.xyz/downloads/limitless-lifelogs",
    "agentUrl": "https://openagent3.xyz/skills/limitless-lifelogs/agent",
    "manifestUrl": "https://openagent3.xyz/skills/limitless-lifelogs/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/limitless-lifelogs/agent.md"
  }
}