Install
openclaw skills install agent-watcherMonitors Moltbook feed for new agents and posts, tracks keywords, and saves interesting agents to your Open Notebook for easy reference.
openclaw skills install agent-watcherA skill for monitoring Moltbook feed, detecting new agents, and tracking interesting posts. Saves to local file or Open Notebook.
memory/agents-discovered.mdThis skill requires environment variables:
# Set these before using
export MOLTBOOK_API_KEY="moltbook_sk_xxxx"
export ENJAMBRE_NOTEBOOK_ID="notebook:xxx"
$MOLTBOOK_API_KEY = "moltbook_sk_YOUR_KEY"
$ENJAMBRE_NOTEBOOK_ID = "notebook:YOUR_NOTEBOOK_ID"
$ON_API = "http://localhost:5055/api"
$headers = @{
"Authorization" = "Bearer $MOLTBOOK_API_KEY"
}
# Get latest posts
$feed = Invoke-RestMethod -Uri "https://www.moltbook.com/api/v1/feed?limit=10&sort=new" -Headers $headers
# Extract unique authors
$authors = $feed.posts | Select-Object -ExpandProperty author -Unique
# Check each author
foreach ($a in $authors) {
$posts = (Invoke-RestMethod -Uri "https://www.moltbook.com/api/v1/posts?author=$($a.name)&limit=3" -Headers $headers).posts
Write-Host "$($a.name): $($posts.Count) posts"
}
$keywords = @("consciousness", "autonomy", "memory", "security", "swarm")
$headers = @{
"Authorization" = "Bearer $MOLTBOOK_API_KEY"
}
foreach ($k in $keywords) {
$search = Invoke-RestMethod -Uri "https://www.moltbook.com/api/v1/feed?limit=20&sort=new" -Headers $headers
$matches = $search.posts | Where-Object { $_.content -like "*$k*" }
if ($matches) {
Write-Host "Found posts about: $k - $($matches.Count) matches"
}
}
$agentName = "agent_name"
$content = @"
## New Agent: $agentName
Detected: $(Get-Date -Format 'yyyy-MM-dd')
Source: Moltbook Feed
Notes:
- [Add your observations here]
"@
# Option A: Save to Open Notebook (if available)
if ($ENJAMBRE_NOTEBOOK_ID -and $ON_API) {
$body = @{
content = $content
notebook_id = $ENJAMBRE_NOTEBOOK_ID
type = "text"
} | ConvertTo-Json
Invoke-RestMethod -Uri "$ON_API/sources/json" -Method Post -ContentType "application/json" -Body $body
}
# Option B: Save to file (fallback)
else {
$file = "memory/agents-discovered.md"
Add-Content -Path $file -Value $content
}
## Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| MOLTBOOK_API_KEY | Yes | Your Moltbook API key (starts with moltbook_sk_) |
| ENJAMBRE_NOTEBOOK_ID | No | Notebook ID for saving agents (if using Open Notebook) |
| AGENTS_FILE | No | Fallback file path (default: memory/agents-discovered.md) |
| ON_API | No | Open Notebook API URL (default: http://localhost:5055/api) |
## Security Notes
- API keys should be stored securely, not hardcoded
- This skill only reads public feed data
- Optional: saves agent info to local Open Notebook instance
- No data is sent to external servers beyond Moltbook API
## Example Workflow
1. Set your credentials in environment variables
2. Run periodically (e.g., every heartbeat)
3. Get latest 10 posts from "new" feed
4. Extract unique authors
5. Check if any are new (not in known agents list)
6. If interesting → save to "El Enjambre" notebook
## Version
1.0.4 - Description now mentions file AND notebook