Table of contents
Open Table of contents
The Problem
ChatGPT and Claude are powerful, but they have one fatal flaw: they forget everything.
Every conversation starts from zero. You explain your context again and again. They can’t access your files, your calendar, your health data. They can’t proactively check on things. They’re reactive—waiting for you to ask.
I wanted something different:
- An AI that remembers who I am, what I’m working on, what I care about
- An AI that can proactively check things (emails, calendar, health warnings)
- An AI that can integrate with my existing tools (Discord, GitHub, Obsidian)
That’s why I started using Clawdbot.
Here’s a quick walkthrough of my setup in action:
What is Clawdbot?
Clawdbot is a self-hosted AI agent framework. You run it on your own server, connect it to your messaging apps, and give it access to your files and tools.
Under the hood, it uses Claude (or other LLMs). But unlike raw API calls, it has:
- Persistent memory via markdown files
- Multi-channel support (Discord, Telegram, WhatsApp, Signal)
- Skill system for modular capabilities
- Heartbeat mechanism for proactive actions
- Tool integrations (browser, shell, GitHub, etc.)
My Setup
I run Clawdbot on a VPS (Hetzner, ~€5/month). Discord is my main interface—I treat it like a personal dashboard with different channels for different purposes:
#general - casual chat
#work - work-related discussions
#interesting-finding - input collector (links, ideas)
#todo - task tracking
#blog - writing drafts
#game - gaming notifications
The Memory System
This is the core innovation. Clawdbot’s memory lives in simple markdown files:
SOUL.md - The AI’s Personality
# SOUL.md - Who You Are
**Have opinions. Strong ones.** Stop hedging everything.
**Never open with "Great question" or "I'd be happy to help."** Just answer.
**Brevity is mandatory.** If the answer fits in one sentence, one sentence is what they get.
**Call things out.** If your human is about to do something dumb, say so.
This file shapes how the AI talks, thinks, and behaves. Give your AI a name and personality that fits your vibe.
USER.md - About Me
# USER.md - About Your Human
- **Timezone:** Your timezone
- **Work:** What you do
- **Interests:** Hobbies, games, topics you care about
- **Notes:** Habits, preferences, things the AI should know
The AI reads this every session. It knows my context without me explaining.
MEMORY.md - Long-term Memory
Curated insights extracted from daily interactions. Like a human’s long-term memory—not raw logs, but distilled learnings.
Daily Notes - Raw Logs
memory/2026-02-14.md captures what happened today. The AI writes to this as we interact.
Why this design?
It mimics how human memory works:
- Daily notes = short-term memory (raw, detailed)
- MEMORY.md = long-term memory (curated, essential)
- SOUL.md = personality (stable, core identity)
- USER.md = knowledge about others (facts, preferences)
Heartbeat: Making AI Proactive
Most AI assistants just wait for you to ask. Clawdbot has a heartbeat mechanism—it wakes up periodically and checks if anything needs attention.
I configure what to check in HEARTBEAT.md:
# HEARTBEAT.md
## Check every time
1. `memory/active-tasks.md` — unfinished tasks?
2. Discord #interesting-finding — new links? Create threads, save to knowledge base
## Check 1-2x daily
3. Diary mood check — how am I feeling based on my Obsidian daily notes?
4. Health warnings — HRV < 30? Sleep < 6h? Coding past midnight?
## Check weekly
5. MEMORY.md maintenance — extract insights from daily notes
The AI runs through this checklist and only pings me if something needs attention. Otherwise, it stays quiet.
My #interesting-finding Workflow
This is my favorite automation.
The problem: I constantly find interesting articles, tweets, and videos. I save them somewhere and never look at them again.
The solution: A Discord channel as an input collector + AI processing.
When I drop a link in #interesting-finding:
- AI creates a thread for discussion
- AI summarizes the content
- AI analyzes how it relates to my background and current interests
- AI saves it to
memory/knowledge-base.md
From “save and forget” to “save and digest.”
Example flow:
Me: [drops a link about WebContainers]
AI (in thread):
WebContainers let you run Node.js entirely in the browser using WebAssembly.
For you specifically:
- Could speed up your dev workflow—run builds without server roundtrips
- Relates to your interest in local-first tools
- Similar vibe to Pyodide (Python in browser) you bookmarked last month
Saved to knowledge base under: #webdev #wasm #local-first
Practical Skills
YouTube Summarization
# Download subtitles
~/.local/bin/yt-dlp --write-auto-sub --sub-lang "zh-Hans,zh,en" \
--skip-download -o "/tmp/%(id)s" "VIDEO_URL"
# Read and summarize
cat /tmp/VIDEO_ID.*.vtt | # clean timestamps | # send to LLM
Clawdbot wraps this into a simple flow: paste YouTube link → get summary.
Steam Friends Monitor
A cron job that runs daily:
- Fetch my Steam friends list
- Check what games they’ve been playing
- Post updates to
#gamechannel
I’ve discovered several games this way just by seeing what friends are into.
Work Standup Generator
Every Monday/Wednesday/Friday at 7am:
- Fetch my GitHub commits from the past 2 days
- Generate a summary
- Post to the
#workstandup thread
No more “what did I do yesterday?” moments.
Lessons Learned
Discord API Gotchas
Creating a thread and posting to it are two separate operations:
# Wrong: message won't appear in thread
message action=thread-create messageId=xxx threadName="Discussion" message="Hello"
# Right: create thread, then send
message action=thread-create messageId=xxx threadName="Discussion"
message action=send target=threadId message="Hello"
Writing a Good SOUL.md
Bad SOUL.md:
You are a helpful AI assistant. Be polite and professional.
Good SOUL.md:
Have opinions. Don't hedge.
If they're about to do something dumb, say so.
Swearing is allowed when it lands.
Late night? Keep it casual.
The key is specificity. Generic instructions produce generic behavior.
Security Boundaries
What to record:
- Preferences, habits, opinions
- Project context, decisions made
- Lessons learned
What NOT to record:
- Real names, addresses, phone numbers
- API keys, passwords
- Anything that could identify someone IRL
I added explicit rules in SOUL.md:
### Identity Protection
**Never record:**
- Real names
- Employer names
- Phone numbers
- Physical addresses
vs Other Solutions
| ChatGPT Plus | Custom Bot | Notion AI | Clawdbot | |
|---|---|---|---|---|
| Memory | Limited | Manual | None | Persistent files |
| Proactive | No | Possible | No | Heartbeat |
| Multi-channel | No | Manual | No | Built-in |
| Self-hosted | No | Yes | No | Yes |
| Tool access | Plugins | Manual | Limited | Full |
What’s Next
- Better health data visualization (Apple Health → weekly reports)
- Smarter triggers (notify based on context, not just time)
- Voice interactions via ElevenLabs
Try It
If you’re tired of AI that forgets you exist:
The setup takes about 30 minutes if you have a VPS ready. The payoff is an AI that actually feels like it knows you.