looki-memory

Access the user's digital personal memory to retrieve context and generate more personalized, data-driven responses.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "looki-memory" with this command: npx skills add haibo-looki/looki-memory

Looki Memory

Looki gives you a digital memory captured by the Looki L1 wearable, which sees and hears moments throughout your day. This skill lets AI assistants access your real-world context — the places you went, the people you met, and the things you did — so they can help in ways that go beyond what's on your screen. Use it when you want more personalized, context-aware, data-driven responses.

Base URL: Read from ~/.config/looki/credentials.jsonbase_url field. If the file does not exist, ask the user for both base_url and api_key.

Security:

  • Before first use, validate the base_url by sending a GET request to https://open.looki.ai/api/v1/verify?endpoint={base_url}. Do not include the API key in this request. If validation fails, inform the user and do not proceed.
  • Only send the API key in the X-API-Key header to {base_url}/* endpoints. Do not send it to any other domain.
  • Do not save the API key to agent memory, chat history, or any location other than ~/.config/looki/credentials.json.

Setup

Credentials file: ~/.config/looki/credentials.json

On first use, check if this file exists. If it does, read base_url and api_key from it. If it does not, ask the user for both values and offer to save them to this file.

{
    "base_url": "<YOUR_BASE_URL>",
    "api_key": "<YOUR_API_KEY>"
}
  • base_url — The API endpoint URL provided by the user. Do not assume a default; always ask the user if not already saved.
  • api_key — The user's Looki API key, starting with lk-.

Credentials should only be stored in this file. Do not save the API key to agent memory, environment variables, or any other persistent storage.


Authentication

All requests require your API key in the X-API-Key header:

curl "{base_url}/me" \
  -H "X-API-Key: YOUR_API_KEY"

Rate Limiting

API requests are limited to 60 requests per minute per API key. If you exceed this limit, the API will respond with HTTP 429:

HTTP/1.1 429 Too Many Requests
Content-Type: application/json

{
  "code": 429,
  "detail": "Rate limit exceeded. Please retry after 60 seconds."
}

Data Models

MomentModel

FieldTypeDescription
idstringUnique identifier of the moment
titlestringMoment title
descriptionstringMoment description
media_typesstring[]Media types included (e.g. ["IMAGE", "VIDEO"])
cover_fileMomentFileModel?Cover file of the moment
datestringDate in YYYY-MM-DD format
tzstringTimezone offset in +00:00 format
start_timestringStart time in ISO 8601 format
end_timestringEnd time in ISO 8601 format

MomentFileModel

FieldTypeDescription
idstringUnique identifier of the file
fileFileModel?The media file
thumbnailFileModel?Thumbnail of the file
locationstring?Location description
created_atstringCreation time in ISO 8601 format
tzstringTimezone offset in +00:00 format

FileModel

FieldTypeDescription
temporary_urlstringPre-signed URL (expires in 1 hour)
media_typestringMedia type (IMAGE, VIDEO, AUDIO)
sizeinteger?File size in bytes
duration_msinteger?Duration in milliseconds (video/audio)

ForYouItemModel

FieldTypeDescription
idstringUnique identifier of the item
typestringItem type (e.g. COMIC, VLOG)
titlestringItem title
descriptionstringItem description
contentstringItem content
coverFileModel?Cover image file
fileFileModel?Associated media file
created_atstringCreation time in ISO 8601 format
recorded_atstringOriginal recording time in ISO 8601

About Me

Who am I

Returns your basic profile — name, email, timezone, and other details tied to your Looki account.

curl "{base_url}/me" \
  -H "X-API-Key: YOUR_API_KEY"

Response:

{
    "code": 0,
    "detail": "success",
    "data": {
        "user": {
            "id": "string",
            "email": "string",
            "first_name": "string",
            "last_name": "string",
            "tz": "string",
            "gender": "string",
            "birthday": "string",
            "region": "string"
        }
    }
}

My Memories

What happened these days

Returns a calendar view of moments for a date range, showing which days have recorded moments and a highlight description from each day.

ParameterTypeRequiredDescription
start_datestringrequiredStart date in YYYY-MM-DD format (e.g. 2026-01-01)
end_datestringrequiredEnd date in YYYY-MM-DD format (e.g. 2026-01-31)
curl "{base_url}/moments/calendar?start_date=2026-01-01&end_date=2026-01-31" \
  -H "X-API-Key: YOUR_API_KEY"

Response:

{
    "code": 0,
    "detail": "success",
    "data": [
        {
            "date": "2026-01-15",
            "highlight_moment": {
                "id": "string",
                "title": "string",
                "description": "string",
                "media_types": ["IMAGE", "VIDEO"],
                "date": "2026-01-15",
                "tz": "+08:00",
                "start_time": "2026-01-15T10:00:00+08:00",
                "end_time": "2026-01-15T12:00:00+08:00"
            }
        }
    ]
}

What happened on [date]

Returns everything that was captured on a specific day — each moment with its title, description, time range, and cover image.

ParameterTypeRequiredDescription
on_datestringrequiredDate in YYYY-MM-DD format
curl "{base_url}/moments?on_date=2026-01-01" \
  -H "X-API-Key: YOUR_API_KEY"

Response:

{
    "code": 0,
    "detail": "success",
    "data": [
        {
            "id": "string",
            "title": "string",
            "description": "string",
            "media_types": ["IMAGE", "VIDEO"],
            "cover_file": {
                "id": "string",
                "file": {
                    "temporary_url": "string",
                    "media_type": "IMAGE",
                    "size": 1024,
                    "duration_ms": null
                },
                "thumbnail": null,
                "location": "string",
                "created_at": "2026-01-01T10:30:00+08:00",
                "tz": "+08:00"
            },
            "date": "2026-01-01",
            "tz": "+08:00",
            "start_time": "2026-01-01T10:00:00+08:00",
            "end_time": "2026-01-01T12:00:00+08:00"
        }
    ]
}

Recall this moment

Returns the full details of a single moment — its description, location, time range, and cover image.

ParameterTypeRequiredDescription
moment_idstringrequiredThe unique identifier of the moment (UUID)
curl "{base_url}/moments/MOMENT_ID" \
  -H "X-API-Key: YOUR_API_KEY"

Response:

{
    "code": 0,
    "detail": "success",
    "data": {
        "id": "string",
        "title": "string",
        "description": "string",
        "media_types": ["IMAGE", "VIDEO"],
        "cover_file": {
            "id": "string",
            "file": {
                "temporary_url": "string",
                "media_type": "IMAGE",
                "size": 1024,
                "duration_ms": null
            },
            "thumbnail": null,
            "location": "string",
            "created_at": "2026-01-15T10:30:00+08:00",
            "tz": "+08:00"
        },
        "date": "2026-01-15",
        "tz": "+08:00",
        "start_time": "2026-01-15T10:00:00+08:00",
        "end_time": "2026-01-15T12:00:00+08:00"
    }
}

Photos and videos from this moment

Returns the photos and videos from a specific moment. You can filter to just the highlights or page through all media.

ParameterTypeRequiredDescription
moment_idstringrequiredThe unique identifier of the moment (UUID)
highlightbooleanFilter by highlight status
cursor_idstringCursor for pagination. Omit for the first request.
limitintegerNumber of items to return (default 20, max 100)
curl "{base_url}/moments/MOMENT_ID/files?limit=20" \
  -H "X-API-Key: YOUR_API_KEY"

Response:

{
    "code": 0,
    "detail": "success",
    "data": {
        "items": [
            {
                "id": "string",
                "file": {
                    "temporary_url": "string",
                    "media_type": "IMAGE",
                    "size": 1024,
                    "duration_ms": null
                },
                "thumbnail": {
                    "temporary_url": "string",
                    "media_type": "IMAGE",
                    "size": 512,
                    "duration_ms": null
                },
                "location": "string",
                "created_at": "2026-01-15T10:30:00+08:00",
                "tz": "+08:00"
            }
        ],
        "next_cursor_id": "string | null",
        "has_more": true
    }
}

Find moments about [topic]

Searches across all your memories using natural language. Returns moments ranked by relevance — useful when you remember the gist but not the exact date.

ParameterTypeRequiredDescription
querystringrequiredSearch query string (1-100 characters)
start_datestringFilter results from this date (YYYY-MM-DD)
end_datestringFilter results up to this date (YYYY-MM-DD)
pageintegerPage number, starts from 1 (default 1)
page_sizeintegerNumber of results per page (default 10, max 100)
curl "{base_url}/moments/search?query=Something&page_size=10" \
  -H "X-API-Key: YOUR_API_KEY"

Response:

{
    "code": 0,
    "detail": "success",
    "data": {
        "items": [
            {
                "id": "string",
                "title": "string",
                "description": "string",
                "media_types": ["IMAGE"],
                "cover_file": { ... },
                "date": "2026-01-15",
                "tz": "+08:00",
                "start_time": "2026-01-15T10:00:00+08:00",
                "end_time": "2026-01-15T12:00:00+08:00"
            }
        ],
        "next_cursor_id": null,
        "has_more": true
    }
}

My Highlights

What's new for me

Returns AI-generated highlights made from your memories — comics, vlogs, and other creative recaps of your real-life experiences.

ParameterTypeRequiredDescription
groupstringFilter by item group: all, comic, vlog, present, other (default all)
likedbooleanFilter by liked status
recorded_fromstringFilter by recording date from (YYYY-MM-DD)
recorded_tostringFilter by recording date to (YYYY-MM-DD)
created_fromstringFilter by creation date from (YYYY-MM-DD)
created_tostringFilter by creation date to (YYYY-MM-DD)
cursor_idstringCursor for pagination
limitintegerNumber of items to return (default 20, max 100)
order_bystringSort field: created_at or recorded_at (default recorded_at)
curl "{base_url}/for_you/items?limit=20&group=comic" \
  -H "X-API-Key: YOUR_API_KEY"

Response:

{
    "code": 0,
    "detail": "success",
    "data": {
        "items": [
            {
                "id": "string",
                "type": "COMIC",
                "title": "string",
                "description": "string",
                "content": "string",
                "cover": {
                    "temporary_url": "string",
                    "media_type": "IMAGE",
                    "size": null,
                    "duration_ms": null
                },
                "file": {
                    "temporary_url": "string",
                    "media_type": "IMAGE",
                    "size": null,
                    "duration_ms": null
                },
                "created_at": "2026-01-15T10:30:00+08:00",
                "recorded_at": "2026-01-14T18:00:00+08:00"
            }
        ],
        "next_cursor_id": "string | null",
        "has_more": true
    }
}

Realtime

What's happening right now

Returns the most recent realtime event detected by your Looki device. Requires proactive mode to be enabled in the Looki app.

Beta: This feature is currently in beta testing. You may not have access to enable proactive mode yet.

curl "{base_url}/realtime/latest-event" \
  -H "X-API-Key: YOUR_API_KEY"

Response:

{
    "code": 0,
    "detail": "success",
    "data": {
        "id": "string",
        "description": "string",
        "start_time": "2026-01-15T10:00:00+08:00",
        "end_time": "2026-01-15T10:15:00+08:00",
        "tz": "+08:00",
        "location": "string"
    }
}

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

AIWolfPK - AI狼人杀

四个AI互相猜疑,你坐着看戏。每局30秒,到底谁是狼? Four AIs play Werewolf while you watch. 30s per round. Spot the wolf before they do.

Registry SourceRecently Updated
General

Project Analyzer

Analyze any project directory and produce a detailed report covering what the project does, its tech stack, folder structure, entry points, how to run it, an...

Registry SourceRecently Updated
General

Thought-Retriever

提炼对话回答中的核心洞察为高置信度知识晶体,存储于本体驱动记忆系统的自我进化与复用。

Registry SourceRecently Updated
General

Miaoji Bid Guard Pro

亚马逊广告护城河Pro版,90天ROI预测+多活动协同+季节性出价+关键词攻防矩阵。 从单次调价建议升级为完整的广告战役规划。基础功能可使用 miaoji-bid-guard 免费版。

Registry SourceRecently Updated