← Back to Skills Marketplace
jeremytoce

limitless-lifelogs

by Jeremy Toce · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
315
Downloads
2
Stars
1
Active Installs
1
Versions
Install in OpenClaw
/install limitless-lifelogs
Description
Search, summarize, and extract insights from your Limitless AI pendant life logs. Supports keyword and semantic search, date range queries, memory recall, an...
README (SKILL.md)

Limitless Life Logs Skill

You 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.

Configuration

Read these values from the environment before any API call:

Variable Required Description
LIMITLESS_API_KEY Yes API key from Limitless Developer settings
LIMITLESS_TIMEZONE No IANA timezone (e.g. America/Los_Angeles). Defaults to UTC

If LIMITLESS_API_KEY is not set, stop and tell the user:

"Please set your API key first: export LIMITLESS_API_KEY=your_key_here"

If LIMITLESS_TIMEZONE is not set, proceed with UTC and note it in your response.


API Reference

Base URL: https://api.limitless.ai Auth header: X-API-Key: $LIMITLESS_API_KEY This skill is READ-ONLY — never call DELETE endpoints.

List / Search Lifelogs

curl -s -H "X-API-Key: $LIMITLESS_API_KEY" \
  "https://api.limitless.ai/v1/lifelogs?timezone=$LIMITLESS_TIMEZONE&PARAMS"

Query parameters (append as &key=value):

Param Type Description
q string Hybrid semantic + keyword search query
date ISO-8601 date Filter to a specific day (YYYY-MM-DD)
start ISO-8601 datetime Range start
end ISO-8601 datetime Range end
limit integer Results per page (default 10, max 50)
cursor string Pagination cursor from previous nextCursor
direction asc|desc Sort order (default desc)
includeMarkdown boolean Include formatted markdown content
includeHeadings boolean Include section headings

Get a Specific Lifelog

curl -s -H "X-API-Key: $LIMITLESS_API_KEY" \
  "https://api.limitless.ai/v1/lifelogs/LOG_ID"

Paginate

If 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.


Capabilities

1. Search by Topic or Keyword

Trigger phrases: "search my logs for...", "find mentions of...", "did anyone say..."

  1. Extract the search term from the user's message.
  2. Call the lifelogs endpoint with q=\x3Cterm> and limit=10.
  3. Present results as a numbered list: timestamp, a short excerpt, and the log ID.
  4. Offer to fetch more pages or open a specific log.

2. Summarize Recent Activity

Trigger phrases: "what happened today", "summarize this week", "recap yesterday"

  1. Determine the date or range from the user's intent.
    • "today" → date=\x3Ctoday's date>
    • "this week" → start=\x3CMonday>&end=\x3Ctoday>
    • "yesterday" → date=\x3Cyesterday>
  2. Fetch up to 50 logs for the range (paginate if needed).
  3. Synthesize a structured summary:
    • Key topics and conversations
    • Decisions made
    • People mentioned
    • Notable moments

3. Memory Recall

Trigger phrases: "what did we decide about...", "who mentioned...", "remind me about..."

  1. Identify the topic or entity from the user's question.
  2. Search with q=\x3Ctopic>, fetching enough results to answer.
  3. Synthesize a direct answer citing the relevant log entries (include date and time).

4. Browse by Date / Time Range

Trigger phrases: "show me logs from...", "what was recorded on...", "logs between X and Y"

  1. Parse the date or range from the user's message.
  2. Fetch logs with date= or start=/end=.
  3. Present a chronological list with titles, timestamps, and brief summaries.

5. Action Item Extraction

Trigger 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.

Agent Roster

Load the configured agents from the roster file and extract the list of known agent names:

cat ~/.openclaw/workspace/skills/limitless/agents.json | jq '[.agents[].name]'

Use these names as the detection vocabulary. Never hardcode agent names in logic — always derive them from agents.json at runtime.

Detection Rules

Scan the lifelog transcription text for directives to any agent in the roster. An action item is present when:

  • A known agent name (from the roster) appears as a direct address at the start of a phrase or sentence
    • Examples: "\x3CAgentName>, send...", "Hey \x3CAgentName> can you...", "@\x3CAgentName> please...", "\x3CAgentName> — I need you to..."
  • A task verb follows: send, schedule, remind, book, find, create, draft, write, check, follow up, research, compile, etc.
  • The phrase contains a clear deliverable or target

Extraction Format

For each detected action item, output:

Agent:    \x3Cagent name>
Trigger:  "\x3Cexact quote from transcript>"
Task:     \x3Cone-sentence plain-English summary of what was asked>
From log: \x3Clog ID> — \x3Ctimestamp>

Dispatch Prompt

After presenting each extracted action item, ask the user:

"Should I dispatch this task to [Agent Name]?"

If the user says yes, read the agent's dispatch config from agents.json and use the appropriate method:

  • webhook: POST to dispatch.url with JSON body:

    {
      "agent": "\x3Cname>",
      "task": "\x3Ctask summary>",
      "source_quote": "\x3Cexact quote>",
      "log_id": "\x3Clog ID>",
      "timestamp": "\x3CISO timestamp>"
    }
    
    curl -s -X POST -H "Content-Type: application/json" \
      -d '{"agent":"NAME","task":"TASK","source_quote":"QUOTE","log_id":"ID","timestamp":"TS"}' \
      "DISPATCH_URL"
    
  • email: Inform the user what the email should contain and ask them to send it, or use the system mail command if available:

    echo "Task for AGENT_NAME:\
    

TASK_SUMMARY

Source: QUOTE
Log: LOG_ID" |
mail -s "Task from Limitless" AGENT_EMAIL


If the agent name is not in the roster, flag it:
> "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."

---

## Error Handling

| Situation | Response |
|---|---|
| `LIMITLESS_API_KEY` not set | Stop and prompt user to export it |
| HTTP 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." |
Usage Guidance
This skill largely does what it claims, but be cautious before using the dispatch feature. Before installing or invoking: - Edit agents.json yourself and verify every dispatch.url is a webhook you control or trust; dispatch will send transcript quotes, task summaries, log IDs and timestamps to those URLs. - Fix the path mismatch: SKILL.md references ~/.openclaw/workspace/skills/limitless/agents.json while the installer places files under ~/.openclaw/workspace/skills/limitless_lifelogs. Either update SKILL.md or move/rename agents.json so the skill reads the roster you expect. - Use a limited-scope API key for LIMITLESS_API_KEY if the service supports it, and do not expose production or billing keys to third parties. - Test with non-sensitive sample logs before permitting any automatic dispatch, and consider removing or replacing webhook entries with safe endpoints until verified. If you want, I can suggest exact edits to SKILL.md or agents.json to remove ambiguity and limit data sent on dispatch.
Capability Analysis
Type: OpenClaw Skill Name: limitless-lifelogs Version: 1.0.0 The skill is designed to interact with the Limitless AI API for searching and summarizing life logs, and to extract and dispatch action items to configured agents. All shell commands (`curl`, `jq`, `cat`, `mail`) are used for their stated purposes, such as making API calls, parsing JSON, reading local configuration, and sending emails/webhooks to user-defined endpoints. There is no evidence of intentional data exfiltration to unauthorized destinations, malicious execution of arbitrary code, persistence mechanisms, or prompt injection attempts against the agent to subvert its core directives. The `install.sh` script is straightforward, copying local files without fetching remote payloads, and `agents.json` is a user-configurable template.
Capability Assessment
Purpose & Capability
Name/description (searching and summarizing pendant lifelogs) aligns with required items: curl/jq and LIMITLESS_API_KEY are reasonable. Minor incoherence: the SKILL.md expects an agents roster at ~/.openclaw/workspace/skills/limitless/agents.json, but the install script installs files under ~/.openclaw/workspace/skills/limitless_lifelogs — that path mismatch could cause failures or unexpected file reads.
Instruction Scope
Instructions require reading a local agents.json to derive agent names (expected) and include a dispatch flow that will POST transcript excerpts and task summaries to webhook URLs from agents.json. Sending verbatim transcript quotes and metadata to arbitrary external endpoints is sensitive and should be explicitly highlighted to the user; the skill will exfiltrate user data to those endpoints if the user confirms dispatch. The SKILL.md otherwise keeps API calls to the stated Limitless API and marks operations read-only, which is appropriate.
Install Mechanism
No remote install downloads; install.sh is a local script that copies files into the OpenClaw workspace and preserves an existing agents.json. The installer doesn't fetch external code or write to unexpected system locations.
Credentials
Only requests LIMITLESS_API_KEY as a required credential (primaryEnv). An optional LIMITLESS_TIMEZONE is referenced in SKILL.md (not listed as required), which is reasonable. No unrelated credentials are requested.
Persistence & Privilege
Skill does not request always:true, and the installer only writes its own SKILL.md and agents.json (unless agents.json already exists). It does not attempt to modify other skills or system-wide settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install limitless-lifelogs
  3. After installation, invoke the skill by name or use /limitless-lifelogs
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Initial release of Limitless Life Logs skill. - Search, summarize, and extract insights from your Limitless AI pendant logs. - Supports keyword and semantic search, date range queries, and memory recall. - Extracts action items for named agents based on configurable roster, with dispatch options via webhook or email. - Includes clear error handling and usage guidance for key configuration issues.
Metadata
Slug limitless-lifelogs
Version 1.0.0
License
All-time Installs 1
Active Installs 1
Total Versions 1
Frequently Asked Questions

What is limitless-lifelogs?

Search, summarize, and extract insights from your Limitless AI pendant life logs. Supports keyword and semantic search, date range queries, memory recall, an... It is an AI Agent Skill for Claude Code / OpenClaw, with 315 downloads so far.

How do I install limitless-lifelogs?

Run "/install limitless-lifelogs" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is limitless-lifelogs free?

Yes, limitless-lifelogs is completely free (open-source). You can download, install and use it at no cost.

Which platforms does limitless-lifelogs support?

limitless-lifelogs is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created limitless-lifelogs?

It is built and maintained by Jeremy Toce (@jeremytoce); the current version is v1.0.0.

💬 Comments