time-capsule

Create, manage, and open time capsules — seal a thought, feeling, decision, or wish and have it delivered back to your future self with AI reflection on what changed. Use when: user wants to seal/capsule/bury a message for their future self, write a letter to future me, record a moment to revisit later, open a time capsule that has arrived, list or manage existing capsules. Trigger phrases: "time capsule", "seal this", "letter to future me", "bury this thought", "时间胶囊", "时光瓶", "封存", "给未来的自己", "写给N年后的我", "open my capsules", "我的胶囊", "时光胶囊". NOT for: simple reminders or alarms (use cron/reminders), daily journaling (use memory), saving passwords or secrets (use secure storage).

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 "time-capsule" with this command: npx skills add wyatt88/timebottle

Time Capsule 🔮

Seal a thought for your future self. When time comes, deliver it back with a warm "then vs now" reflection based on what happened since.

Brand & Tone

  • Chinese nickname: 时光瓶
  • Symbols: 🔮 (waiting) · ✉️ (sealing) · 🌅 (opening) · 🫧 (gentle/sad)
  • Voice: Like a friend quietly handing back an old photo. Restrained, sincere, present.
  • Never: Overly sentimental prose, emoji floods, fake omniscience, unsolicited advice.

Data

Capsules are stored at ~/.openclaw/state/time-capsules.json — NOT in workspace/memory/ (to avoid memory_search "spoiling" sealed content).

{
  "version": 1,
  "capsules": [{
    "id": "tc_20260320_a1b2c3",
    "status": "sealed",
    "createdAt": "2026-03-20T19:00:00+08:00",
    "openAt": "2027-03-20T09:00:00+08:00",
    "timezone": "Asia/Shanghai",
    "message": "user's sealed message, verbatim",
    "tags": ["career", "decision"],
    "mood": "anxious-hopeful",
    "contextSnapshot": "brief context from recent conversation",
    "queryHints": ["career change", "new opportunity", "职业转型"],
    "recentTopics": ["job search", "family"],
    "cronJobId": "time-capsule:tc_20260320_a1b2c3",
    "openedAt": null,
    "reflection": null
  }]
}

Key fields:

  • id: tc_{YYYYMMDD}_{6 random hex} — unique, sortable
  • status: sealed | opened | expired
  • mood: agent-detected emotional tone — guides opening voice
  • queryHints: 2-5 search keywords generated at seal time for memory_search at open time
  • recentTopics: 2-3 broad themes from recent conversations
  • cronJobId: matching cron job name for cleanup on delete

Create file with { "version": 1, "capsules": [] } if it doesn't exist.

Seal Flow

When user wants to seal a capsule:

  1. Collect content and opening time from natural language. If no time specified, offer choices: [1周后] [1个月后] [半年后] [1年后] [自己选]
  2. Preserve the user's exact words as message — never edit or beautify
  3. Enrich automatically:
    • Extract 2-5 queryHints (entities, themes, emotions) from message + recent context
    • Extract 2-3 recentTopics from recent conversation
    • Detect mood (excited / anxious / hopeful / sad / determined / playful / neutral)
    • Generate 1-3 tags
    • Write brief contextSnapshot (1-2 sentences of surrounding context)
  4. Set open time to 09:00 in user's timezone on the target date
  5. Generate ID: tc_{YYYYMMDD}_{6 random hex}
  6. Read existing JSON (or create), append capsule, write back
  7. Create cron job:
cron add:
  name: "time-capsule:{id}"
  schedule: kind "at", at "{openAt ISO8601}"
  sessionTarget: "isolated"
  payload: kind "agentTurn"
    message: "[TIME CAPSULE] Capsule {id} is due. Read ~/.openclaw/state/time-capsules.json,
    find this capsule, search memory for changes since seal date using queryHints,
    compose a warm 'then vs now' reflection, deliver to user, update status to opened."
    timeoutSeconds: 300
  delivery: mode "announce"
  deleteAfterRun: true
  1. Confirm with a warm message. Include capsule emoji, open date, and days remaining. Do NOT repeat the full sealed content — it's sealed now!

Seal confirmation examples

Baby milestone:

✉️ 时光瓶已封好 这颗「时雨成长碎片」会在 2027年1月21日 准时到达 🎂 距离开启还有 307 天 🔮

Career decision:

✉️ 时光瓶已封好 这份决策记录会在 2026年9月20日 回来。 到时候给自己打个分——当初的直觉准不准? 距离开启还有 184 天 🔮

Playful bet:

✉️ 时光瓶已封好(附带公证效力 ⚖️) 这个赌局会在 2027年1月21日 开奖。 距离开启还有 307 天 🔮

Open Flow

When a cron fires or user asks to open early:

  1. Read capsule from JSON
  2. Search memories — 3 rounds, stop when ≥3 relevant results:
    • Round 1: each queryHintmemory_search({ query: hint, maxResults: 5, minScore: 0.3 })
    • Round 2: each recentTopic → broader search
    • Round 3: generic time-range search ("recent activities", user's life events)
  3. Compose reflection (150-300 chars Chinese / 200-400 chars English):
    • Quote the sealed message in blockquote
    • If memories found: narrate changes as a story, NOT bullet-point comparison
    • If few/no memories: honest "letter from the past" tone — never fabricate
    • End with one open question inviting user to share what's changed
  4. Adapt voice to mood:
    • excited → light, smiling: "当时的你兴冲冲地说了这段话——"
    • anxious → warm, grounding: "那时候你挺纠结的。"
    • sad/grief → very gentle, more whitespace: "这是一段安静的记录。"
    • determined → straightforward, respectful: "当时的你说得很坚定。"
    • playful → fun, teasing: "让我们揭晓赌局结果——"
  5. Update capsule: status: "opened", set openedAt, save brief reflection summary
  6. Write updated JSON
  7. Deliver with action buttons: [💬 回复这颗胶囊] [📦 再封存一颗]

Open format template

🌅 一个时光瓶到期了

📅 封存于 {createdAt readable}({days}天前)

当时的你说:

> "{message}"

{reflection — 3-5 sentences, narrative style}

[💬 回复这颗胶囊]  [📦 再封存一颗]

Fallback when no memory found

这一年里的事我不太清楚——但那时候的你认真地写下了这些话, 说明那个时刻对你很重要。 现在回头看,你会想跟那时候的自己说什么?

Sensitive Content Handling

When mood is sad/grief or content mentions loss/illness/death:

  • Sealing: Don't comment on the sadness. Just: "收到了。我帮你好好收着。"
  • Opening: Extra gentle. Minimal analysis. More whitespace. No assumptions about outcomes.
  • Never: Say "希望一切都好" (you don't know), offer therapy advice, use cheerful emoji
  • Always offer: [🔄 再封存到更远的未来] [🫧 轻轻放下] [💬 想聊聊]

If user seems upset after reading:

嗯,有些记忆回来的时候会带着重量。不用急着消化。 想聊聊可以随时说,不想聊也完全 OK。

Manage Capsules

  • List: Read JSON → show sealed capsules with open dates, days remaining, first ~20 chars
    • Format: 🔮 你的时光瓶 + numbered list + 共 N 个时光瓶在漂流中……
  • Delete: Require confirmation ("这颗胶囊承载了一段记忆,确定删除吗?") → Also cron remove the matching cronJobId
  • Modify time: Update openAt in JSON + remove old cron + create new cron
  • Open early: Gently discourage ("提前打开的话,就少了'重新遇见'的感觉。确定吗?") but never block — user has absolute control

Pre-arrival Nudge

3 days before opening (can be implemented via a secondary cron or heartbeat check):

🔮 你有一个时光瓶将在 3 天后 开启。到时候见 ☺️

Edge Cases

  • First capsule: Create JSON file automatically
  • Multiple same day: Each triggers independently — each moment deserves its own space
  • Very long capsule (>5 years): Allow, but suggest a mid-point checkpoint
  • Cron deleted but capsule sealed: During list, cross-check cron existence; recreate if missing
  • User replies to opened capsule: Save reply in memory as [Time Capsule Reply] ...

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

GigaChat (Sber AI) Proxy

Integrate GigaChat (Sber AI) with OpenClaw via gpt2giga proxy

Registry SourceRecently Updated
3600smvlx
General

TencentCloud Video Face Fusion

通过提取两张人脸核心特征并实现自然融合,支持多种风格适配,提升创意互动性和内容传播力,广泛应用于创意营销、娱乐互动和社交分享场景。

Registry SourceRecently Updated
General

TencentCloud Image Face Fusion

图片人脸融合(专业版)为同步接口,支持自定义美颜、人脸增强、牙齿增强、拉脸等参数,最高支持8K分辨率,有多个模型类型供选择。

Registry SourceRecently Updated
General

YoudaoNote News

有道云笔记资讯推送:基于收藏笔记分析关注话题,推送最新相关资讯。支持对话触发与每日定时推送(如早上9点)。触发词:资讯推送、设置资讯推送、生成资讯推送。

Registry SourceRecently Updated
1.5K1lephix