|
26238
|
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Source Control (⌃⇧G) - 11 pending changes
11
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
logs
pipes
.gitignore
app_settings.json
archive.db
archive.db-bak
U
db.sqlite
db.sqlite-shm
db.sqlite-wal
screenpipe_f
screenpipe_sync_updated.sh
U
screenpipe_sync.sh
M
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
screenpipe_f, Editor Group 1
screenpipe_sync_updated.sh, preview, Editor Group 1
pipe.md, Editor Group 1
.env, Editor Group 1
Implement and run pipe l…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports - 1 forwarded port
PORTS
1
Remote - SSH - Output
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
Forwarded Ports: 8766
1
Notifications
Sign In
Sign In
Plain Text
Editor Language Status: Inline Suggestions, next: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 4
Ln 1, Col 1
Info: Downloading VS Code Server...
Implement and run pipe logic...
|
Code
|
screenpipe_f — screenpipe [SSH: nas]
|
NULL
|
26238
|
|
26239
|
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Source Control (⌃⇧G) - 11 pending changes
11
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
logs
pipes
.gitignore
app_settings.json
archive.db
archive.db-bak
U
db.sqlite
db.sqlite-shm
db.sqlite-wal
screenpipe_f
screenpipe_sync_updated.sh
U
screenpipe_sync.sh
M
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
screenpipe_f, Editor Group 1
screenpipe_sync_updated.sh, preview, Editor Group 1
pipe.md, Editor Group 1
.env, Editor Group 1
Implement and run pipe l…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports - 1 forwarded port
PORTS
1
Remote - SSH - Output
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
Forwarded Ports: 8766
1
Notifications
Sign In
Sign In
Plain Text
Editor Language Status: Inline Suggestions, next: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 4
Ln 1, Col 1
Info: Downloading VS Code Server...
Implement and run pipe logic
Session history
New session
Message actions
main.py
main.py
lets implement logic with pipes. how can I run it?
Thinking
Thinking...
|
Code
|
screenpipe_f — screenpipe [SSH: nas]
|
NULL
|
26239
|
|
26240
|
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Source Control (⌃⇧G) - 11 pending changes
11
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
logs
pipes
.gitignore
app_settings.json
archive.db
archive.db-bak
U
db.sqlite
db.sqlite-shm
db.sqlite-wal
screenpipe_f
screenpipe_sync_updated.sh
U
screenpipe_sync.sh
M
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
screenpipe_f, Editor Group 1
screenpipe_sync_updated.sh, preview, Editor Group 1
pipe.md, Editor Group 1
.env, Editor Group 1
Implement and run pipe l…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports - 1 forwarded port
PORTS
1
Remote - SSH - Output
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
Forwarded Ports: 8766
1
Notifications
Sign In
Sign In
Plain Text
Editor Language Status: Inline Suggestions, next: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 4
Ln 1, Col 1
Info: Downloading VS Code Server...
Implement and run pipe logic
Session history
New session
Message actions
main.py
main.py
lets implement logic with pipes. how can I run it?
Thinking
Thinking
Let me look at the current project structure to understand what's already in place.
Bash
List project files
IN
find /volume1/screenpipe -type f | head -50 && echo "---" && ls /volume1/screenpipe
Copy code to clipboard
OUT
/volume1/screenpipe/.DS_Store
/volume1/screenpipe/screenpipe.db
/volume1/screenpipe/screenpipe_sync.sh
/volume1/screenpipe/app_settings.json
/volume1/screenpipe/.gitignore
/volume1/screenpipe/archive.db
/volume1/screenpipe/db.sqlite
/volume1/screenpipe/db.sqlite-wal
/volume1/screenpipe/db.sqlite-shm
/volume1/screenpipe/#recycle/desktop.ini
/volume1/screenpipe/#recycle/db.sqlite
/volume1/screenpipe/#recycle/Copy #1 of db.sqlite
/volume1/screenpipe/#recycle/.DS_Store
/volume1/screenpipe/#recycle/Copy #2 of db.sqlite
/volume1/screenpipe/#recycle/archive.db
/volume1/screenpipe/#recycle/Copy #1 of archive.db
/volume1/screenpipe/#recycle/Copy #2 of archive.db
/volume1/screenpipe/#recycle/Copy #3 of archive.db
/volume1/screenpipe/#recycle/Copy #4 of archive.db
/volume1/screenpipe/#recycle/Copy #5 of archive.db
/volume1/screenpipe/#recycle/Copy #3 of db.sqlite
/volume1/screenpipe/#recycle/Copy #4 of db.sqlite
/volume1/screenpipe/#recycle/Copy #6 of archive.db
/volume1/screenpipe/#recycle/test.txt
/volume1/screenpipe/#recycle/Copy #7 of archive.db
/volume1/screenpipe/#recycle/Copy #8 of archive.db
/volume1/screenpipe/#recycle/archive.db-journal
/volume1/screenpipe/#recycle/Copy #1 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #2 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #3 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #4 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #5 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #6 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #7 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #5 of db.sqlite
/volume1/screenpipe/pipes/.DS_Store
/volume1/screenpipe/app/.env
/volume1/screenpipe/app/cli.py
/volume1/screenpipe/app/.DS_Store
/volume1/screenpipe/app/db.py
/volume1/screenpipe/app/docker-compose.yml
/volume1/screenpipe/app/main.py
/volume1/screenpipe/app/requirements.txt
/volume1/screenpipe/app/Dockerfile
/volume1/screenpipe/data/.DS_Store
/volume1/screenpipe/.git/description
/volume1/screenpipe/.git/HEAD
/volume1/screenpipe/.git/index
/volume1/screenpipe/.git/COMMIT_EDITMSG
/volume1/screenpipe/#recycle/data/.DS_Store
---
app
app_settings.json
archive.db
data
db.sqlite
db.sqlite-shm
db.sqlite-wal
pipes
#recycle
screenpipe.db
screenpipe_sync.sh
Read
main.py
main.py
Bash
Check pipes directory and docker-compose
IN
ls /volume1/screenpipe/pipes/ && ls /volume1/screenpipe/app/ && cat /volume1/screenpipe/app/docker-compose.yml
Copy code to clipboard
OUT
ai-habits
day-recap
meeting-summary
standup-update
time-breakdown
video-export
cli.py
consumers
db.py
docker-compose.yml
Dockerfile
main.py
__pycache__
requirements.txt
static
services:
screenpipe-app:
build: .
container_name: screenpipe-app
restart: unless-stopped
ports:
- "8766:8000"
volumes:
- /volume1/screenpipe:/data
env_file:
- .env
environment:
TZ: Europe/Sofia
DB_PATH: /data/db.sqlite
sqlite-web-archive:
image: ghcr.io/coleifer/sqlite-web:latest
container_name: screenpipe-sqlweb-archive
restart: unless-stopped
ports:
- "8767:8080"
volumes:
- /volume1/screenpipe:/data
command: ["-H", "[IP_ADDRESS]", "-r", "/data/archive.db"]
sqlite-web-live:
image: ghcr.io/coleifer/sqlite-web:latest
container_name: screenpipe-sqlweb-live
restart: unless-stopped
ports:
- "8768:8080"
volumes:
- /volume1/screenpipe:/data
command: ["-H", "[IP_ADDRESS]", "-r", "/data/db.sqlite"]
Read
requirements.txt
requirements.txt
Bash
Inspect a pipe directory
IN
ls /volume1/screenpipe/pipes/day-recap/ && cat /volume1/screenpipe/pipes/day-recap/pipe.json 2>/dev/null || ls /volume1/screenpipe/pipes/day-recap/
Copy code to clipboard
OUT
pipe.md
pipe.md
Read
cli.py
cli.py
Bash
List all pipes and their contents
IN
ls /volume1/screenpipe/pipes/ && for d in /volume1/screenpipe/pipes/*/; do echo "=== $d ==="; ls "$d"; done
Copy code to clipboard
OUT
ai-habits
day-recap
meeting-summary
standup-update
time-breakdown
video-export
=== /volume1/screenpipe/pipes/ai-habits/ ===
pipe.md
=== /volume1/screenpipe/pipes/day-recap/ ===
pipe.md
=== /volume1/screenpipe/pipes/meeting-summary/ ===
pipe.md
=== /volume1/screenpipe/pipes/standup-update/ ===
pipe.md
=== /volume1/screenpipe/pipes/time-breakdown/ ===
pipe.md
=== /volume1/screenpipe/pipes/video-export/ ===
pipe.md
Bash
Read pipe markdown files
IN
cat /volume1/screenpipe/pipes/day-recap/pipe.md && echo "===" && cat /volume1/screenpipe/pipes/meeting-summary/pipe.md 2>/dev/null | head -50
Copy code to clipboard
OUT
---
schedule: manual
enabled: true
template: true
title: Day Recap
description: "Today's accomplishments, key moments, and unfinished work"
icon: "📋"
featured: true
---
Analyze my screen and audio recordings from today (last 16 hours only).
Read screenpipe skill first.
Use this exact format:
## Summary
One sentence: what I mainly did today.
## Accomplishments
- Top 3 things I finished, with timestamps (e.g. "2:30 PM")
- Name specific apps, files, or projects
## Key Moments
- Important things I saw, said, or heard — with timestamps
## Unfinished Work
- What I should continue tomorrow — name the app/file/task
## Patterns
- Apps I used most, topics that came up repeatedly
Only report what you can verify from the data. End with: "**Next step:** [most important thing to continue]"
===
---
schedule: manual
enabled: true
template: true
title: Meeting Summary
description: "Summarize meeting transcript with key takeaways and action items"
icon: "🤝"
featured: false
---
Summarize the meeting transcript provided in the context. Include key takeaways and action items. If the meeting is marked as ongoing, note that and summarize what's available so far.
Read screenpipe skill first.
Use this exact format:
## Meeting Summary
One sentence: what this meeting was about.
## Key Takeaways
- Top 3-5 important points discussed
- Include who said what when relevant
## Action Items
- [ ] Task — assigned to whom, deadline if mentioned
- [ ] Task — assigned to whom
## Decisions Made
- List any decisions or agreements reached
## Open Questions
- Anything unresolved or needing follow-up
Keep it concise and actionable.
Thinking
Thinking
Bash
Read summary consumer
IN
ls /volume1/screenpipe/app/consumers/ && cat /volume1/screenpipe/app/consumers/summary.py
Copy code to clipboard
OUT
activity.py
audio.py
elements.py
__init__.py
interactions.py
ocr.py
__pycache__
report.py
summary.py
"""AI summary generator using Claude."""
import os
from datetime import date
from typing import Any
from consumers.activity import app_time, summary_stats, browser_urls, ui_event_summary
from consumers.ocr import deduplicated_text
from consumers.audio import formatted_transcript
SUMMARY_TYPES = {
"day_recap": {
"title": "Day Recap",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Browser URLs visited:
{browser_urls}
## UI activity per app (clicks / keystrokes / app-switches):
{ui_events}
## Screen content (sampled every 5 minutes):
{ocr_text}
## Audio/speech:
{audio}
Write a concise day recap using EXACTLY this format:
## Summary
One sentence: what I mainly worked on today.
## Accomplishments
- Top 3 things I finished, with approximate times
- Name specific apps, files, or projects
## Key Moments
- Important things seen or heard, with timestamps
## Unfinished Work
- What to continue tomorrow
## Patterns
- Apps used most, topics that came up repeatedly
Only report what you can verify from the data. End with:
**Next step:** [most important thing to continue]""",
},
"standup": {
"title": "Standup Update",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Browser URLs visited:
{browser_urls}
## UI activity per app (clicks / keystrokes / app-switches):
{ui_events}
## Screen content (sampled every 5 minutes):
{ocr_text}
## Audio/speech:
{audio}
Write a brief standup update:
**Yesterday:** What I worked on (2-3 bullets)
**Today:** What I plan to continue (1-2 bullets)
**Blockers:** Any issues observed (or "None")
Keep it under 150 words. Only report what's verifiable from the data.""",
},
"focus_time": {
"title": "Focus & Distraction Analysis",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Browser URLs visited:
{browser_urls}
## UI activity per app (clicks / keystrokes / app-switches):
{ui_events}
## Screen content (sampled every 5 minutes):
{ocr_text}
Analyze focus vs distraction patterns:
## Deep Work Periods
- When and how long were sustained focus sessions?
- What was being worked on?
## Distractions
- Which apps/sites were used recreationally?
- How much time was lost to context switching?
## Recommendations
- 2-3 concrete suggestions to improve focus tomorrow
Be specific with times and app names.""",
},
}
def _build_context(for_date: date) -> dict[str, str]:
apps = app_time(for_date)
app_lines = "\n".join(f"- {a['app_name']}: {a['minutes']} min" for a in apps[:20])
urls = browser_urls(for_date, limit=20)
url_lines = "\n".join(
f"- {u['browser_url'][:100]} ({u['minutes']} min)" for u in urls
)
ui_rows = ui_event_summary(for_date)
ui_lines = "\n".join(
f"- {r['app_name']}: {r['clicks']} clicks, {r['keystrokes']} keys, {r['switches']} switches"
for r in ui_rows[:15]
)
ocr_rows = deduplicated_text(for_date, chunk_minutes=5)
ocr_lines = "\n".join(
f"[{r['bucket']}] {r['app_name']} / {r['window_name'] or ''}: {r['text'][:200]}"
for r in ocr_rows[:100]
)
audio = formatted_transcript(for_date)
return {
"app_time": app_lines or "(no app data)",
"browser_urls": url_lines or "(no browser data)",
"ui_events": ui_lines or "(no UI event data)",
"ocr_text": ocr_lines or "(no screen data)",
"audio": audio[:3000] if len(audio) > 3000 else audio,
}
def generate(
summary_type: str = "day_recap",
for_date: date | None = None,
api_key: str | None = None,
) -> dict[str, Any]:
"""Generate an AI summary. Returns dict with 'title', 'content', 'date'."""
import anthropic
d = for_date or date.today()
key = api_key or os.environ.get("ANTHROPIC_API_KEY", "")
if not key:
return {
"title": "Error",
"content": "ANTHROPIC_API_KEY not set. Add it to your .env file.",
"date": str(d),
}
spec = SUMMARY_TYPES.get(summary_type)
if not spec:
return {"title": "Error", "content": f"Unknown summary type: {summary_type}", "date": str(d)}
stats = summary_stats(d)
if stats["total_frames"] == 0:
return {
"title": spec["title"],
"content": f"No screen data found for {d}.",
"date": str(d),
}
ctx = _build_context(d)
prompt = spec["prompt"].format(**ctx)
client = anthropic.Anthropic(api_key=key)
message = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=1024,
messages=[{"role": "user", "content": prompt}],
)
return {
"title": spec["title"],
"content": message.content[0].text,
"date": str(d),
"stats": stats,
}
Thinking
Thinking
Bash
Read all pipe.md files
IN
for f in /volume1/screenpipe/pipes/*/pipe.md; do echo "=== $f ==="; cat "$f"; echo; done
Copy code to clipboard
OUT
=== /volume1/screenpipe/pipes/ai-habits/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: AI Habits
description: "How you use AI tools — patterns and insights"
icon: "🤖"
featured: true
---
Search my recordings from the last 24 hours for AI tool usage. Use app_name filter for each tool separately: ChatGPT, Claude, Copilot, Cursor, Gemini, Perplexity. Use limit=5 per search, max 6 searches total.
Read screenpipe skill first.
Use this exact format:
## AI Tools Used
- List each tool with approximate time spent (e.g. "Claude: ~45min")
## What I Used Them For
- For each tool: coding, writing, research, or brainstorming
## Usage Patterns
- Do I switch between tools? Use them in bursts or steadily?
## Effectiveness
- Which tool appeared alongside completed work vs. abandoned attempts
If no AI usage is found, say so clearly. End with: "**Tip:** [one suggestion to use AI tools more effectively]"
=== /volume1/screenpipe/pipes/day-recap/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Day Recap
description: "Today's accomplishments, key moments, and unfinished work"
icon: "📋"
featured: true
---
Analyze my screen and audio recordings from today (last 16 hours only).
Read screenpipe skill first.
Use this exact format:
## Summary
One sentence: what I mainly did today.
## Accomplishments
- Top 3 things I finished, with timestamps (e.g. "2:30 PM")
- Name specific apps, files, or projects
## Key Moments
- Important things I saw, said, or heard — with timestamps
## Unfinished Work
- What I should continue tomorrow — name the app/file/task
## Patterns
- Apps I used most, topics that came up repeatedly
Only report what you can verify from the data. End with: "**Next step:** [most important thing to continue]"
=== /volume1/screenpipe/pipes/meeting-summary/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Meeting Summary
description: "Summarize meeting transcript with key takeaways and action items"
icon: "🤝"
featured: false
---
Summarize the meeting transcript provided in the context. Include key takeaways and action items. If the meeting is marked as ongoing, note that and summarize what's available so far.
Read screenpipe skill first.
Use this exact format:
## Meeting Summary
One sentence: what this meeting was about.
## Key Takeaways
- Top 3-5 important points discussed
- Include who said what when relevant
## Action Items
- [ ] Task — assigned to whom, deadline if mentioned
- [ ] Task — assigned to whom
## Decisions Made
- List any decisions or agreements reached
## Open Questions
- Anything unresolved or needing follow-up
Keep it concise and actionable.
=== /volume1/screenpipe/pipes/standup-update/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Standup Update
description: "What you did, what's next, and any blockers"
icon: "🏢"
featured: true
---
Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.
Read screenpipe skill first.
Use this exact format:
## Yesterday
- What I worked on (name specific projects, files, tools, PRs)
## Today
- What I will work on next (based on unfinished tasks and recent activity)
## Blockers
- Issues I hit — errors, slow builds, waiting on someone
- If no blockers, write "None"
Keep it under 150 words. Copy-paste ready for a team standup.
=== /volume1/screenpipe/pipes/time-breakdown/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Time Breakdown
description: "Where your time went — by app, project, and category"
icon: "⏱"
featured: false
---
Analyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.
Read screenpipe skill first.
Use this exact format with durations and percentages:
## By Application
- List each app with duration and percentage, sorted by time (e.g. "VS Code: 2h 15min (28%)")
## By Category
- Group into: coding, meetings, browsing, writing, communication, other
- Show hours and percentage per category
## By Project
- Group related activities by project/topic. Name specific repos or tasks.
## Productivity Score
- Calculate: focused_work_hours / total_hours as a percentage
- Focused = coding + writing. Unfocused = browsing + switching.
End with: "**Suggestion:** [one specific change to improve tomorrow's productivity]"
=== /volume1/screenpipe/pipes/video-export/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Export Video Clip
description: "Create a video of your recent screen activity"
icon: "🎬"
featured: false
---
Export a video of my screen activity from the last 5 minutes.
Read screenpipe skill first.
Use the POST /frames/export endpoint with the time range and fps=1.0. Then show me the exported video file path as an inline code block so I can watch it.
If the export is large, suggest a lower fps or shorter time range.
Thinking
Thinking...
|
Code
|
screenpipe_f — screenpipe [SSH: nas]
|
NULL
|
26240
|
|
26241
|
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Source Control (⌃⇧G) - 11 pending changes
11
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
logs
pipes
.gitignore
app_settings.json
archive.db
archive.db-bak
U
db.sqlite
db.sqlite-shm
db.sqlite-wal
screenpipe_f
screenpipe_sync_updated.sh
U
screenpipe_sync.sh
M
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
screenpipe_f, Editor Group 1
screenpipe_sync_updated.sh, preview, Editor Group 1
pipe.md, Editor Group 1
.env, Editor Group 1
Implement and run pipe l…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports - 1 forwarded port
PORTS
1
Remote - SSH - Output
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
Forwarded Ports: 8766
1
Notifications
Sign In
Sign In
Plain Text
Editor Language Status: Inline Suggestions, next: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 4
Ln 1, Col 1
Info: Downloading VS Code Server...
Implement and run pipe logic
Session history
New session
Message actions
main.py
main.py
lets implement logic with pipes. how can I run it?
Thinking
Thinking
Let me look at the current project structure to understand what's already in place.
Bash
List project files
IN
find /volume1/screenpipe -type f | head -50 && echo "---" && ls /volume1/screenpipe
Copy code to clipboard
OUT
/volume1/screenpipe/.DS_Store
/volume1/screenpipe/screenpipe.db
/volume1/screenpipe/screenpipe_sync.sh
/volume1/screenpipe/app_settings.json
/volume1/screenpipe/.gitignore
/volume1/screenpipe/archive.db
/volume1/screenpipe/db.sqlite
/volume1/screenpipe/db.sqlite-wal
/volume1/screenpipe/db.sqlite-shm
/volume1/screenpipe/#recycle/desktop.ini
/volume1/screenpipe/#recycle/db.sqlite
/volume1/screenpipe/#recycle/Copy #1 of db.sqlite
/volume1/screenpipe/#recycle/.DS_Store
/volume1/screenpipe/#recycle/Copy #2 of db.sqlite
/volume1/screenpipe/#recycle/archive.db
/volume1/screenpipe/#recycle/Copy #1 of archive.db
/volume1/screenpipe/#recycle/Copy #2 of archive.db
/volume1/screenpipe/#recycle/Copy #3 of archive.db
/volume1/screenpipe/#recycle/Copy #4 of archive.db
/volume1/screenpipe/#recycle/Copy #5 of archive.db
/volume1/screenpipe/#recycle/Copy #3 of db.sqlite
/volume1/screenpipe/#recycle/Copy #4 of db.sqlite
/volume1/screenpipe/#recycle/Copy #6 of archive.db
/volume1/screenpipe/#recycle/test.txt
/volume1/screenpipe/#recycle/Copy #7 of archive.db
/volume1/screenpipe/#recycle/Copy #8 of archive.db
/volume1/screenpipe/#recycle/archive.db-journal
/volume1/screenpipe/#recycle/Copy #1 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #2 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #3 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #4 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #5 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #6 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #7 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #5 of db.sqlite
/volume1/screenpipe/pipes/.DS_Store
/volume1/screenpipe/app/.env
/volume1/screenpipe/app/cli.py
/volume1/screenpipe/app/.DS_Store
/volume1/screenpipe/app/db.py
/volume1/screenpipe/app/docker-compose.yml
/volume1/screenpipe/app/main.py
/volume1/screenpipe/app/requirements.txt
/volume1/screenpipe/app/Dockerfile
/volume1/screenpipe/data/.DS_Store
/volume1/screenpipe/.git/description
/volume1/screenpipe/.git/HEAD
/volume1/screenpipe/.git/index
/volume1/screenpipe/.git/COMMIT_EDITMSG
/volume1/screenpipe/#recycle/data/.DS_Store
---
app
app_settings.json
archive.db
data
db.sqlite
db.sqlite-shm
db.sqlite-wal
pipes
#recycle
screenpipe.db
screenpipe_sync.sh
Read
main.py
main.py
Bash
Check pipes directory and docker-compose
IN
ls /volume1/screenpipe/pipes/ && ls /volume1/screenpipe/app/ && cat /volume1/screenpipe/app/docker-compose.yml
Copy code to clipboard
OUT
ai-habits
day-recap
meeting-summary
standup-update
time-breakdown
video-export
cli.py
consumers
db.py
docker-compose.yml
Dockerfile
main.py
__pycache__
requirements.txt
static
services:
screenpipe-app:
build: .
container_name: screenpipe-app
restart: unless-stopped
ports:
- "8766:8000"
volumes:
- /volume1/screenpipe:/data
env_file:
- .env
environment:
TZ: Europe/Sofia
DB_PATH: /data/db.sqlite
sqlite-web-archive:
image: ghcr.io/coleifer/sqlite-web:latest
container_name: screenpipe-sqlweb-archive
restart: unless-stopped
ports:
- "8767:8080"
volumes:
- /volume1/screenpipe:/data
command: ["-H", "[IP_ADDRESS]", "-r", "/data/archive.db"]
sqlite-web-live:
image: ghcr.io/coleifer/sqlite-web:latest
container_name: screenpipe-sqlweb-live
restart: unless-stopped
ports:
- "8768:8080"
volumes:
- /volume1/screenpipe:/data
command: ["-H", "[IP_ADDRESS]", "-r", "/data/db.sqlite"]
Read
requirements.txt
requirements.txt
Bash
Inspect a pipe directory
IN
ls /volume1/screenpipe/pipes/day-recap/ && cat /volume1/screenpipe/pipes/day-recap/pipe.json 2>/dev/null || ls /volume1/screenpipe/pipes/day-recap/
Copy code to clipboard
OUT
pipe.md
pipe.md
Read
cli.py
cli.py
Bash
List all pipes and their contents
IN
ls /volume1/screenpipe/pipes/ && for d in /volume1/screenpipe/pipes/*/; do echo "=== $d ==="; ls "$d"; done
Copy code to clipboard
OUT
ai-habits
day-recap
meeting-summary
standup-update
time-breakdown
video-export
=== /volume1/screenpipe/pipes/ai-habits/ ===
pipe.md
=== /volume1/screenpipe/pipes/day-recap/ ===
pipe.md
=== /volume1/screenpipe/pipes/meeting-summary/ ===
pipe.md
=== /volume1/screenpipe/pipes/standup-update/ ===
pipe.md
=== /volume1/screenpipe/pipes/time-breakdown/ ===
pipe.md
=== /volume1/screenpipe/pipes/video-export/ ===
pipe.md
Bash
Read pipe markdown files
IN
cat /volume1/screenpipe/pipes/day-recap/pipe.md && echo "===" && cat /volume1/screenpipe/pipes/meeting-summary/pipe.md 2>/dev/null | head -50
Copy code to clipboard
OUT
---
schedule: manual
enabled: true
template: true
title: Day Recap
description: "Today's accomplishments, key moments, and unfinished work"
icon: "📋"
featured: true
---
Analyze my screen and audio recordings from today (last 16 hours only).
Read screenpipe skill first.
Use this exact format:
## Summary
One sentence: what I mainly did today.
## Accomplishments
- Top 3 things I finished, with timestamps (e.g. "2:30 PM")
- Name specific apps, files, or projects
## Key Moments
- Important things I saw, said, or heard — with timestamps
## Unfinished Work
- What I should continue tomorrow — name the app/file/task
## Patterns
- Apps I used most, topics that came up repeatedly
Only report what you can verify from the data. End with: "**Next step:** [most important thing to continue]"
===
---
schedule: manual
enabled: true
template: true
title: Meeting Summary
description: "Summarize meeting transcript with key takeaways and action items"
icon: "🤝"
featured: false
---
Summarize the meeting transcript provided in the context. Include key takeaways and action items. If the meeting is marked as ongoing, note that and summarize what's available so far.
Read screenpipe skill first.
Use this exact format:
## Meeting Summary
One sentence: what this meeting was about.
## Key Takeaways
- Top 3-5 important points discussed
- Include who said what when relevant
## Action Items
- [ ] Task — assigned to whom, deadline if mentioned
- [ ] Task — assigned to whom
## Decisions Made
- List any decisions or agreements reached
## Open Questions
- Anything unresolved or needing follow-up
Keep it concise and actionable....
|
Code
|
screenpipe_f — screenpipe [SSH: nas]
|
NULL
|
26241
|
|
26242
|
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Source Control (⌃⇧G) - 11 pending changes
11
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
logs
pipes
.gitignore
app_settings.json
archive.db
archive.db-bak
U
db.sqlite
db.sqlite-shm
db.sqlite-wal
screenpipe_f
screenpipe_sync_updated.sh
U
screenpipe_sync.sh
M
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
screenpipe_f, Editor Group 1
screenpipe_sync_updated.sh, preview, Editor Group 1
pipe.md, Editor Group 1
.env, Editor Group 1
Implement and run pipe l…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports - 1 forwarded port
PORTS
1
Remote - SSH - Output
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
Forwarded Ports: 8766
1
Notifications
Sign In
Sign In
Plain Text
Editor Language Status: Inline Suggestions, next: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 4
Ln 1, Col 1
Info: Downloading VS Code Server...
Implement and run pipe logic
Session history
New session
Message actions
main.py
main.py
lets implement logic with pipes. how can I run it?
Thinking
Thinking
Let me look at the current project structure to understand what's already in place.
Bash
List project files
IN
find /volume1/screenpipe -type f | head -50 && echo "---" && ls /volume1/screenpipe
Copy code to clipboard
OUT
/volume1/screenpipe/.DS_Store
/volume1/screenpipe/screenpipe.db
/volume1/screenpipe/screenpipe_sync.sh
/volume1/screenpipe/app_settings.json
/volume1/screenpipe/.gitignore
/volume1/screenpipe/archive.db
/volume1/screenpipe/db.sqlite
/volume1/screenpipe/db.sqlite-wal
/volume1/screenpipe/db.sqlite-shm
/volume1/screenpipe/#recycle/desktop.ini
/volume1/screenpipe/#recycle/db.sqlite
/volume1/screenpipe/#recycle/Copy #1 of db.sqlite
/volume1/screenpipe/#recycle/.DS_Store
/volume1/screenpipe/#recycle/Copy #2 of db.sqlite
/volume1/screenpipe/#recycle/archive.db
/volume1/screenpipe/#recycle/Copy #1 of archive.db
/volume1/screenpipe/#recycle/Copy #2 of archive.db
/volume1/screenpipe/#recycle/Copy #3 of archive.db
/volume1/screenpipe/#recycle/Copy #4 of archive.db
/volume1/screenpipe/#recycle/Copy #5 of archive.db
/volume1/screenpipe/#recycle/Copy #3 of db.sqlite
/volume1/screenpipe/#recycle/Copy #4 of db.sqlite
/volume1/screenpipe/#recycle/Copy #6 of archive.db
/volume1/screenpipe/#recycle/test.txt
/volume1/screenpipe/#recycle/Copy #7 of archive.db
/volume1/screenpipe/#recycle/Copy #8 of archive.db
/volume1/screenpipe/#recycle/archive.db-journal
/volume1/screenpipe/#recycle/Copy #1 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #2 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #3 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #4 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #5 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #6 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #7 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #5 of db.sqlite
/volume1/screenpipe/pipes/.DS_Store
/volume1/screenpipe/app/.env
/volume1/screenpipe/app/cli.py
/volume1/screenpipe/app/.DS_Store
/volume1/screenpipe/app/db.py
/volume1/screenpipe/app/docker-compose.yml
/volume1/screenpipe/app/main.py
/volume1/screenpipe/app/requirements.txt
/volume1/screenpipe/app/Dockerfile
/volume1/screenpipe/data/.DS_Store
/volume1/screenpipe/.git/description
/volume1/screenpipe/.git/HEAD
/volume1/screenpipe/.git/index
/volume1/screenpipe/.git/COMMIT_EDITMSG
/volume1/screenpipe/#recycle/data/.DS_Store
---
app
app_settings.json
archive.db
data
db.sqlite
db.sqlite-shm
db.sqlite-wal
pipes
#recycle
screenpipe.db
screenpipe_sync.sh
Read
main.py
main.py
Bash
Check pipes directory and docker-compose
IN
ls /volume1/screenpipe/pipes/ && ls /volume1/screenpipe/app/ && cat /volume1/screenpipe/app/docker-compose.yml
Copy code to clipboard
OUT
ai-habits
day-recap
meeting-summary
standup-update
time-breakdown
video-export
cli.py
consumers
db.py
docker-compose.yml
Dockerfile
main.py
__pycache__
requirements.txt
static
services:
screenpipe-app:
build: .
container_name: screenpipe-app
restart: unless-stopped
ports:
- "8766:8000"
volumes:
- /volume1/screenpipe:/data
env_file:
- .env
environment:
TZ: Europe/Sofia
DB_PATH: /data/db.sqlite
sqlite-web-archive:
image: ghcr.io/coleifer/sqlite-web:latest
container_name: screenpipe-sqlweb-archive
restart: unless-stopped
ports:
- "8767:8080"
volumes:
- /volume1/screenpipe:/data
command: ["-H", "[IP_ADDRESS]", "-r", "/data/archive.db"]
sqlite-web-live:
image: ghcr.io/coleifer/sqlite-web:latest
container_name: screenpipe-sqlweb-live
restart: unless-stopped
ports:
- "8768:8080"
volumes:
- /volume1/screenpipe:/data
command: ["-H", "[IP_ADDRESS]", "-r", "/data/db.sqlite"]
Read
requirements.txt
requirements.txt
Bash
Inspect a pipe directory
IN
ls /volume1/screenpipe/pipes/day-recap/ && cat /volume1/screenpipe/pipes/day-recap/pipe.json 2>/dev/null || ls /volume1/screenpipe/pipes/day-recap/
Copy code to clipboard
OUT
pipe.md
pipe.md
Read
cli.py
cli.py
Bash
List all pipes and their contents
IN
ls /volume1/screenpipe/pipes/ && for d in /volume1/screenpipe/pipes/*/; do echo "=== $d ==="; ls "$d"; done
Copy code to clipboard
OUT
ai-habits
day-recap
meeting-summary
standup-update
time-breakdown
video-export
=== /volume1/screenpipe/pipes/ai-habits/ ===
pipe.md
=== /volume1/screenpipe/pipes/day-recap/ ===
pipe.md
=== /volume1/screenpipe/pipes/meeting-summary/ ===
pipe.md
=== /volume1/screenpipe/pipes/standup-update/ ===
pipe.md
=== /volume1/screenpipe/pipes/time-breakdown/ ===
pipe.md
=== /volume1/screenpipe/pipes/video-export/ ===
pipe.md
Bash
Read pipe markdown files
IN
cat /volume1/screenpipe/pipes/day-recap/pipe.md && echo "===" && cat /volume1/screenpipe/pipes/meeting-summary/pipe.md 2>/dev/null | head -50
Copy code to clipboard
OUT
---
schedule: manual
enabled: true
template: true
title: Day Recap
description: "Today's accomplishments, key moments, and unfinished work"
icon: "📋"
featured: true
---
Analyze my screen and audio recordings from today (last 16 hours only).
Read screenpipe skill first.
Use this exact format:
## Summary
One sentence: what I mainly did today.
## Accomplishments
- Top 3 things I finished, with timestamps (e.g. "2:30 PM")
- Name specific apps, files, or projects
## Key Moments
- Important things I saw, said, or heard — with timestamps
## Unfinished Work
- What I should continue tomorrow — name the app/file/task
## Patterns
- Apps I used most, topics that came up repeatedly
Only report what you can verify from the data. End with: "**Next step:** [most important thing to continue]"
===
---
schedule: manual
enabled: true
template: true
title: Meeting Summary
description: "Summarize meeting transcript with key takeaways and action items"
icon: "🤝"
featured: false
---
Summarize the meeting transcript provided in the context. Include key takeaways and action items. If the meeting is marked as ongoing, note that and summarize what's available so far.
Read screenpipe skill first.
Use this exact format:
## Meeting Summary
One sentence: what this meeting was about.
## Key Takeaways
- Top 3-5 important points discussed
- Include who said what when relevant
## Action Items
- [ ] Task — assigned to whom, deadline if mentioned
- [ ] Task — assigned to whom
## Decisions Made
- List any decisions or agreements reached
## Open Questions
- Anything unresolved or needing follow-up
Keep it concise and actionable.
Thinking
Thinking
Bash
Read summary consumer
IN
ls /volume1/screenpipe/app/consumers/ && cat /volume1/screenpipe/app/consumers/summary.py
Copy code to clipboard
OUT
activity.py
audio.py
elements.py
__init__.py
interactions.py
ocr.py
__pycache__
report.py
summary.py
"""AI summary generator using Claude."""
import os
from datetime import date
from typing import Any
from consumers.activity import app_time, summary_stats, browser_urls, ui_event_summary
from consumers.ocr import deduplicated_text
from consumers.audio import formatted_transcript
SUMMARY_TYPES = {
"day_recap": {
"title": "Day Recap",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Browser URLs visited:
{browser_urls}
## UI activity per app (clicks / keystrokes / app-switches):
{ui_events}
## Screen content (sampled every 5 minutes):
{ocr_text}
## Audio/speech:
{audio}
Write a concise day recap using EXACTLY this format:
## Summary
One sentence: what I mainly worked on today.
## Accomplishments
- Top 3 things I finished, with approximate times
- Name specific apps, files, or projects
## Key Moments
- Important things seen or heard, with timestamps
## Unfinished Work
- What to continue tomorrow
## Patterns
- Apps used most, topics that came up repeatedly
Only report what you can verify from the data. End with:
**Next step:** [most important thing to continue]""",
},
"standup": {
"title": "Standup Update",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Browser URLs visited:
{browser_urls}
## UI activity per app (clicks / keystrokes / app-switches):
{ui_events}
## Screen content (sampled every 5 minutes):
{ocr_text}
## Audio/speech:
{audio}
Write a brief standup update:
**Yesterday:** What I worked on (2-3 bullets)
**Today:** What I plan to continue (1-2 bullets)
**Blockers:** Any issues observed (or "None")
Keep it under 150 words. Only report what's verifiable from the data.""",
},
"focus_time": {
"title": "Focus & Distraction Analysis",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Browser URLs visited:
{browser_urls}
## UI activity per app (clicks / keystrokes / app-switches):
{ui_events}
## Screen content (sampled every 5 minutes):
{ocr_text}
Analyze focus vs distraction patterns:
## Deep Work Periods
- When and how long were sustained focus sessions?
- What was being worked on?
## Distractions
- Which apps/sites were used recreationally?
- How much time was lost to context switching?
## Recommendations
- 2-3 concrete suggestions to improve focus tomorrow
Be specific with times and app names.""",
},
}
def _build_context(for_date: date) -> dict[str, str]:
apps = app_time(for_date)
app_lines = "\n".join(f"- {a['app_name']}: {a['minutes']} min" for a in apps[:20])
urls = browser_urls(for_date, limit=20)
url_lines = "\n".join(
f"- {u['browser_url'][:100]} ({u['minutes']} min)" for u in urls
)
ui_rows = ui_event_summary(for_date)
ui_lines = "\n".join(
f"- {r['app_name']}: {r['clicks']} clicks, {r['keystrokes']} keys, {r['switches']} switches"
for r in ui_rows[:15]
)
ocr_rows = deduplicated_text(for_date, chunk_minutes=5)
ocr_lines = "\n".join(
f"[{r['bucket']}] {r['app_name']} / {r['window_name'] or ''}: {r['text'][:200]}"
for r in ocr_rows[:100]
)
audio = formatted_transcript(for_date)
return {
"app_time": app_lines or "(no app data)",
"browser_urls": url_lines or "(no browser data)",
"ui_events": ui_lines or "(no UI event data)",
"ocr_text": ocr_lines or "(no screen data)",
"audio": audio[:3000] if len(audio) > 3000 else audio,
}
def generate(
summary_type: str = "day_recap",
for_date: date | None = None,
api_key: str | None = None,
) -> dict[str, Any]:
"""Generate an AI summary. Returns dict with 'title', 'content', 'date'."""
import anthropic
d = for_date or date.today()
key = api_key or os.environ.get("ANTHROPIC_API_KEY", "")
if not key:
return {
"title": "Error",
"content": "ANTHROPIC_API_KEY not set. Add it to your .env file.",
"date": str(d),
}
spec = SUMMARY_TYPES.get(summary_type)
if not spec:
return {"title": "Error", "content": f"Unknown summary type: {summary_type}", "date": str(d)}
stats = summary_stats(d)
if stats["total_frames"] == 0:
return {
"title": spec["title"],
"content": f"No screen data found for {d}.",
"date": str(d),
}
ctx = _build_context(d)
prompt = spec["prompt"].format(**ctx)
client = anthropic.Anthropic(api_key=key)
message = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=1024,
messages=[{"role": "user", "content": prompt}],
)
return {
"title": spec["title"],
"content": message.content[0].text,
"date": str(d),
"stats": stats,
}
Thinking
Thinking
Bash
Read all pipe.md files
IN
for f in /volume1/screenpipe/pipes/*/pipe.md; do echo "=== $f ==="; cat "$f"; echo; done
Copy code to clipboard
OUT
=== /volume1/screenpipe/pipes/ai-habits/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: AI Habits
description: "How you use AI tools — patterns and insights"
icon: "🤖"
featured: true
---
Search my recordings from the last 24 hours for AI tool usage. Use app_name filter for each tool separately: ChatGPT, Claude, Copilot, Cursor, Gemini, Perplexity. Use limit=5 per search, max 6 searches total.
Read screenpipe skill first.
Use this exact format:
## AI Tools Used
- List each tool with approximate time spent (e.g. "Claude: ~45min")
## What I Used Them For
- For each tool: coding, writing, research, or brainstorming
## Usage Patterns
- Do I switch between tools? Use them in bursts or steadily?
## Effectiveness
- Which tool appeared alongside completed work vs. abandoned attempts
If no AI usage is found, say so clearly. End with: "**Tip:** [one suggestion to use AI tools more effectively]"
=== /volume1/screenpipe/pipes/day-recap/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Day Recap
description: "Today's accomplishments, key moments, and unfinished work"
icon: "📋"
featured: true
---
Analyze my screen and audio recordings from today (last 16 hours only).
Read screenpipe skill first.
Use this exact format:
## Summary
One sentence: what I mainly did today.
## Accomplishments
- Top 3 things I finished, with timestamps (e.g. "2:30 PM")
- Name specific apps, files, or projects
## Key Moments
- Important things I saw, said, or heard — with timestamps
## Unfinished Work
- What I should continue tomorrow — name the app/file/task
## Patterns
- Apps I used most, topics that came up repeatedly
Only report what you can verify from the data. End with: "**Next step:** [most important thing to continue]"
=== /volume1/screenpipe/pipes/meeting-summary/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Meeting Summary
description: "Summarize meeting transcript with key takeaways and action items"
icon: "🤝"
featured: false
---
Summarize the meeting transcript provided in the context. Include key takeaways and action items. If the meeting is marked as ongoing, note that and summarize what's available so far.
Read screenpipe skill first.
Use this exact format:
## Meeting Summary
One sentence: what this meeting was about.
## Key Takeaways
- Top 3-5 important points discussed
- Include who said what when relevant
## Action Items
- [ ] Task — assigned to whom, deadline if mentioned
- [ ] Task — assigned to whom
## Decisions Made
- List any decisions or agreements reached
## Open Questions
- Anything unresolved or needing follow-up
Keep it concise and actionable.
=== /volume1/screenpipe/pipes/standup-update/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Standup Update
description: "What you did, what's next, and any blockers"
icon: "🏢"
featured: true
---
Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.
Read screenpipe skill first.
Use this exact format:
## Yesterday
- What I worked on (name specific projects, files, tools, PRs)
## Today
- What I will work on next (based on unfinished tasks and recent activity)
## Blockers
- Issues I hit — errors, slow builds, waiting on someone
- If no blockers, write "None"
Keep it under 150 words. Copy-paste ready for a team standup.
=== /volume1/screenpipe/pipes/time-breakdown/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Time Breakdown
description: "Where your time went — by app, project, and category"
icon: "⏱"
featured: false
---
Analyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.
Read screenpipe skill first.
Use this exact format with durations and percentages:
## By Application
- List each app with duration and percentage, sorted by time (e.g. "VS Code: 2h 15min (28%)")
## By Category
- Group into: coding, meetings, browsing, writing, communication, other
- Show hours and percentage per category
## By Project
- Group related activities by project/topic. Name specific repos or tasks.
## Productivity Score
- Calculate: focused_work_hours / total_hours as a percentage
- Focused = coding + writing. Unfocused = browsing + switching.
End with: "**Suggestion:** [one specific change to improve tomorrow's productivity]"
=== /volume1/screenpipe/pipes/video-export/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Export Video Clip
description: "Create a video of your recent screen activity"
icon: "🎬"
featured: false
---
Export a video of my screen activity from the last 5 minutes.
Read screenpipe skill first.
Use the POST /frames/export endpoint with the time range and fps=1.0. Then show me the exported video file path as an inline code block so I can watch it.
If the export is large, suggest a lower fps or shorter time range.
Thinking
Thinking
Now I have a clear picture. The pipes are markdown prompt templates in...
|
Code
|
screenpipe_f — screenpipe [SSH: nas]
|
NULL
|
26242
|
|
26243
|
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Source Control (⌃⇧G) - 11 pending changes
11
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
logs
pipes
.gitignore
app_settings.json
archive.db
archive.db-bak
U
db.sqlite
db.sqlite-shm
db.sqlite-wal
screenpipe_f
screenpipe_sync_updated.sh
U
screenpipe_sync.sh
M
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
screenpipe_f, Editor Group 1
screenpipe_sync_updated.sh, preview, Editor Group 1
pipe.md, Editor Group 1
.env, Editor Group 1
Implement and run pipe l…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports - 1 forwarded port
PORTS
1
Remote - SSH - Output
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
Forwarded Ports: 8766
1
Notifications
Sign In
Sign In
Plain Text
Editor Language Status: Inline Suggestions, next: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 4
Ln 1, Col 1
Info: Downloading VS Code Server...
Implement and run pipe logic
Session history
New session
Message actions
main.py
main.py
lets implement logic with pipes. how can I run it?
Thinking
Thinking
Let me look at the current project structure to understand what's already in place.
Bash
List project files
IN
find /volume1/screenpipe -type f | head -50 && echo "---" && ls /volume1/screenpipe
Copy code to clipboard
OUT
/volume1/screenpipe/.DS_Store
/volume1/screenpipe/screenpipe.db
/volume1/screenpipe/screenpipe_sync.sh
/volume1/screenpipe/app_settings.json
/volume1/screenpipe/.gitignore
/volume1/screenpipe/archive.db
/volume1/screenpipe/db.sqlite
/volume1/screenpipe/db.sqlite-wal
/volume1/screenpipe/db.sqlite-shm
/volume1/screenpipe/#recycle/desktop.ini
/volume1/screenpipe/#recycle/db.sqlite
/volume1/screenpipe/#recycle/Copy #1 of db.sqlite
/volume1/screenpipe/#recycle/.DS_Store
/volume1/screenpipe/#recycle/Copy #2 of db.sqlite
/volume1/screenpipe/#recycle/archive.db
/volume1/screenpipe/#recycle/Copy #1 of archive.db
/volume1/screenpipe/#recycle/Copy #2 of archive.db
/volume1/screenpipe/#recycle/Copy #3 of archive.db
/volume1/screenpipe/#recycle/Copy #4 of archive.db
/volume1/screenpipe/#recycle/Copy #5 of archive.db
/volume1/screenpipe/#recycle/Copy #3 of db.sqlite
/volume1/screenpipe/#recycle/Copy #4 of db.sqlite
/volume1/screenpipe/#recycle/Copy #6 of archive.db
/volume1/screenpipe/#recycle/test.txt
/volume1/screenpipe/#recycle/Copy #7 of archive.db
/volume1/screenpipe/#recycle/Copy #8 of archive.db
/volume1/screenpipe/#recycle/archive.db-journal
/volume1/screenpipe/#recycle/Copy #1 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #2 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #3 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #4 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #5 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #6 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #7 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #5 of db.sqlite
/volume1/screenpipe/pipes/.DS_Store
/volume1/screenpipe/app/.env
/volume1/screenpipe/app/cli.py
/volume1/screenpipe/app/.DS_Store
/volume1/screenpipe/app/db.py
/volume1/screenpipe/app/docker-compose.yml
/volume1/screenpipe/app/main.py
/volume1/screenpipe/app/requirements.txt
/volume1/screenpipe/app/Dockerfile
/volume1/screenpipe/data/.DS_Store
/volume1/screenpipe/.git/description
/volume1/screenpipe/.git/HEAD
/volume1/screenpipe/.git/index
/volume1/screenpipe/.git/COMMIT_EDITMSG
/volume1/screenpipe/#recycle/data/.DS_Store
---
app
app_settings.json
archive.db
data
db.sqlite
db.sqlite-shm
db.sqlite-wal
pipes
#recycle
screenpipe.db
screenpipe_sync.sh
Read
main.py
main.py
Bash
Check pipes directory and docker-compose
IN
ls /volume1/screenpipe/pipes/ && ls /volume1/screenpipe/app/ && cat /volume1/screenpipe/app/docker-compose.yml
Copy code to clipboard
OUT
ai-habits
day-recap
meeting-summary
standup-update
time-breakdown
video-export
cli.py
consumers
db.py
docker-compose.yml
Dockerfile
main.py
__pycache__
requirements.txt
static
services:
screenpipe-app:
build: .
container_name: screenpipe-app
restart: unless-stopped
ports:
- "8766:8000"
volumes:
- /volume1/screenpipe:/data
env_file:
- .env
environment:
TZ: Europe/Sofia
DB_PATH: /data/db.sqlite
sqlite-web-archive:
image: ghcr.io/coleifer/sqlite-web:latest
container_name: screenpipe-sqlweb-archive
restart: unless-stopped
ports:
- "8767:8080"
volumes:
- /volume1/screenpipe:/data
command: ["-H", "[IP_ADDRESS]", "-r", "/data/archive.db"]
sqlite-web-live:
image: ghcr.io/coleifer/sqlite-web:latest
container_name: screenpipe-sqlweb-live
restart: unless-stopped
ports:
- "8768:8080"
volumes:
- /volume1/screenpipe:/data
command: ["-H", "[IP_ADDRESS]", "-r", "/data/db.sqlite"]
Read
requirements.txt
requirements.txt
Bash
Inspect a pipe directory
IN
ls /volume1/screenpipe/pipes/day-recap/ && cat /volume1/screenpipe/pipes/day-recap/pipe.json 2>/dev/null || ls /volume1/screenpipe/pipes/day-recap/
Copy code to clipboard
OUT
pipe.md
pipe.md
Read
cli.py
cli.py
Bash
List all pipes and their contents
IN
ls /volume1/screenpipe/pipes/ && for d in /volume1/screenpipe/pipes/*/; do echo "=== $d ==="; ls "$d"; done
Copy code to clipboard
OUT
ai-habits
day-recap
meeting-summary
standup-update
time-breakdown
video-export
=== /volume1/screenpipe/pipes/ai-habits/ ===
pipe.md
=== /volume1/screenpipe/pipes/day-recap/ ===
pipe.md
=== /volume1/screenpipe/pipes/meeting-summary/ ===
pipe.md
=== /volume1/screenpipe/pipes/standup-update/ ===
pipe.md
=== /volume1/screenpipe/pipes/time-breakdown/ ===
pipe.md
=== /volume1/screenpipe/pipes/video-export/ ===
pipe.md
Bash
Read pipe markdown files
IN
cat /volume1/screenpipe/pipes/day-recap/pipe.md && echo "===" && cat /volume1/screenpipe/pipes/meeting-summary/pipe.md 2>/dev/null | head -50
Copy code to clipboard
OUT
---
schedule: manual
enabled: true
template: true
title: Day Recap
description: "Today's accomplishments, key moments, and unfinished work"
icon: "📋"
featured: true
---
Analyze my screen and audio recordings from today (last 16 hours only).
Read screenpipe skill first.
Use this exact format:
## Summary
One sentence: what I mainly did today.
## Accomplishments
- Top 3 things I finished, with timestamps (e.g. "2:30 PM")
- Name specific apps, files, or projects
## Key Moments
- Important things I saw, said, or heard — with timestamps
## Unfinished Work
- What I should continue tomorrow — name the app/file/task
## Patterns
- Apps I used most, topics that came up repeatedly
Only report what you can verify from the data. End with: "**Next step:** [most important thing to continue]"
===
---
schedule: manual
enabled: true
template: true
title: Meeting Summary
description: "Summarize meeting transcript with key takeaways and action items"
icon: "🤝"
featured: false
---
Summarize the meeting transcript provided in the context. Include key takeaways and action items. If the meeting is marked as ongoing, note that and summarize what's available so far.
Read screenpipe skill first.
Use this exact format:
## Meeting Summary
One sentence: what this meeting was about.
## Key Takeaways
- Top 3-5 important points discussed
- Include who said what when relevant
## Action Items
- [ ] Task — assigned to whom, deadline if mentioned
- [ ] Task — assigned to whom
## Decisions Made
- List any decisions or agreements reached
## Open Questions
- Anything unresolved or needing follow-up
Keep it concise and actionable.
Thinking
Thinking
Bash
Read summary consumer
IN
ls /volume1/screenpipe/app/consumers/ && cat /volume1/screenpipe/app/consumers/summary.py
Copy code to clipboard
OUT
activity.py
audio.py
elements.py
__init__.py
interactions.py
ocr.py
__pycache__
report.py
summary.py
"""AI summary generator using Claude."""
import os
from datetime import date
from typing import Any
from consumers.activity import app_time, summary_stats, browser_urls, ui_event_summary
from consumers.ocr import deduplicated_text
from consumers.audio import formatted_transcript
SUMMARY_TYPES = {
"day_recap": {
"title": "Day Recap",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Browser URLs visited:
{browser_urls}
## UI activity per app (clicks / keystrokes / app-switches):
{ui_events}
## Screen content (sampled every 5 minutes):
{ocr_text}
## Audio/speech:
{audio}
Write a concise day recap using EXACTLY this format:
## Summary
One sentence: what I mainly worked on today.
## Accomplishments
- Top 3 things I finished, with approximate times
- Name specific apps, files, or projects
## Key Moments
- Important things seen or heard, with timestamps
## Unfinished Work
- What to continue tomorrow
## Patterns
- Apps used most, topics that came up repeatedly
Only report what you can verify from the data. End with:
**Next step:** [most important thing to continue]""",
},
"standup": {
"title": "Standup Update",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Browser URLs visited:
{browser_urls}
## UI activity per app (clicks / keystrokes / app-switches):
{ui_events}
## Screen content (sampled every 5 minutes):
{ocr_text}
## Audio/speech:
{audio}
Write a brief standup update:
**Yesterday:** What I worked on (2-3 bullets)
**Today:** What I plan to continue (1-2 bullets)
**Blockers:** Any issues observed (or "None")
Keep it under 150 words. Only report what's verifiable from the data.""",
},
"focus_time": {
"title": "Focus & Distraction Analysis",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Browser URLs visited:
{browser_urls}
## UI activity per app (clicks / keystrokes / app-switches):
{ui_events}
## Screen content (sampled every 5 minutes):
{ocr_text}
Analyze focus vs distraction patterns:
## Deep Work Periods
- When and how long were sustained focus sessions?
- What was being worked on?
## Distractions
- Which apps/sites were used recreationally?
- How much time was lost to context switching?
## Recommendations
- 2-3 concrete suggestions to improve focus tomorrow
Be specific with times and app names.""",
},
}
def _build_context(for_date: date) -> dict[str, str]:
apps = app_time(for_date)
app_lines = "\n".join(f"- {a['app_name']}: {a['minutes']} min" for a in apps[:20])
urls = browser_urls(for_date, limit=20)
url_lines = "\n".join(
f"- {u['browser_url'][:100]} ({u['minutes']} min)" for u in urls
)
ui_rows = ui_event_summary(for_date)
ui_lines = "\n".join(
f"- {r['app_name']}: {r['clicks']} clicks, {r['keystrokes']} keys, {r['switches']} switches"
for r in ui_rows[:15]
)
ocr_rows = deduplicated_text(for_date, chunk_minutes=5)
ocr_lines = "\n".join(
f"[{r['bucket']}] {r['app_name']} / {r['window_name'] or ''}: {r['text'][:200]}"
for r in ocr_rows[:100]
)
audio = formatted_transcript(for_date)
return {
"app_time": app_lines or "(no app data)",
"browser_urls": url_lines or "(no browser data)",
"ui_events": ui_lines or "(no UI event data)",
"ocr_text": ocr_lines or "(no screen data)",
"audio": audio[:3000] if len(audio) > 3000 else audio,
}
def generate(
summary_type: str = "day_recap",
for_date: date | None = None,
api_key: str | None = None,
) -> dict[str, Any]:
"""Generate an AI summary. Returns dict with 'title', 'content', 'date'."""
import anthropic
d = for_date or date.today()
key = api_key or os.environ.get("ANTHROPIC_API_KEY", "")
if not key:
return {
"title": "Error",
"content": "ANTHROPIC_API_KEY not set. Add it to your .env file.",
"date": str(d),
}
spec = SUMMARY_TYPES.get(summary_type)
if not spec:
return {"title": "Error", "content": f"Unknown summary type: {summary_type}", "date": str(d)}
stats = summary_stats(d)
if stats["total_frames"] == 0:
return {
"title": spec["title"],
"content": f"No screen data found for {d}.",
"date": str(d),
}
ctx = _build_context(d)
prompt = spec["prompt"].format(**ctx)
client = anthropic.Anthropic(api_key=key)
message = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=1024,
messages=[{"role": "user", "content": prompt}],
)
return {
"title": spec["title"],
"content": message.content[0].text,
"date": str(d),
"stats": stats,
}
Thinking
Thinking
Bash
Read all pipe.md files
IN
for f in /volume1/screenpipe/pipes/*/pipe.md; do echo "=== $f ==="; cat "$f"; echo; done
Copy code to clipboard
OUT
=== /volume1/screenpipe/pipes/ai-habits/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: AI Habits
description: "How you use AI tools — patterns and insights"
icon: "🤖"
featured: true
---
Search my recordings from the last 24 hours for AI tool usage. Use app_name filter for each tool separately: ChatGPT, Claude, Copilot, Cursor, Gemini, Perplexity. Use limit=5 per search, max 6 searches total.
Read screenpipe skill first.
Use this exact format:
## AI Tools Used
- List each tool with approximate time spent (e.g. "Claude: ~45min")
## What I Used Them For
- For each tool: coding, writing, research, or brainstorming
## Usage Patterns
- Do I switch between tools? Use them in bursts or steadily?
## Effectiveness
- Which tool appeared alongside completed work vs. abandoned attempts
If no AI usage is found, say so clearly. End with: "**Tip:** [one suggestion to use AI tools more effectively]"
=== /volume1/screenpipe/pipes/day-recap/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Day Recap
description: "Today's accomplishments, key moments, and unfinished work"
icon: "📋"
featured: true
---
Analyze my screen and audio recordings from today (last 16 hours only).
Read screenpipe skill first.
Use this exact format:
## Summary
One sentence: what I mainly did today.
## Accomplishments
- Top 3 things I finished, with timestamps (e.g. "2:30 PM")
- Name specific apps, files, or projects
## Key Moments
- Important things I saw, said, or heard — with timestamps
## Unfinished Work
- What I should continue tomorrow — name the app/file/task
## Patterns
- Apps I used most, topics that came up repeatedly
Only report what you can verify from the data. End with: "**Next step:** [most important thing to continue]"
=== /volume1/screenpipe/pipes/meeting-summary/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Meeting Summary
description: "Summarize meeting transcript with key takeaways and action items"
icon: "🤝"
featured: false
---
Summarize the meeting transcript provided in the context. Include key takeaways and action items. If the meeting is marked as ongoing, note that and summarize what's available so far.
Read screenpipe skill first.
Use this exact format:
## Meeting Summary
One sentence: what this meeting was about.
## Key Takeaways
- Top 3-5 important points discussed
- Include who said what when relevant
## Action Items
- [ ] Task — assigned to whom, deadline if mentioned
- [ ] Task — assigned to whom
## Decisions Made
- List any decisions or agreements reached
## Open Questions
- Anything unresolved or needing follow-up
Keep it concise and actionable.
=== /volume1/screenpipe/pipes/standup-update/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Standup Update
description: "What you did, what's next, and any blockers"
icon: "🏢"
featured: true
---
Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.
Read screenpipe skill first.
Use this exact format:
## Yesterday
- What I worked on (name specific projects, files, tools, PRs)
## Today
- What I will work on next (based on unfinished tasks and recent activity)
## Blockers
- Issues I hit — errors, slow builds, waiting on someone
- If no blockers, write "None"
Keep it under 150 words. Copy-paste ready for a team standup.
=== /volume1/screenpipe/pipes/time-breakdown/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Time Breakdown
description: "Where your time went — by app, project, and category"
icon: "⏱"
featured: false
---
Analyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.
Read screenpipe skill first.
Use this exact format with durations and percentages:
## By Application
- List each app with duration and percentage, sorted by time (e.g. "VS Code: 2h 15min (28%)")
## By Category
- Group into: coding, meetings, browsing, writing, communication, other
- Show hours and percentage per category
## By Project
- Group related activities by project/topic. Name specific repos or tasks.
## Productivity Score
- Calculate: focused_work_hours / total_hours as a percentage
- Focused = coding + writing. Unfocused = browsing + switching.
End with: "**Suggestion:** [one specific change to improve tomorrow's productivity]"
=== /volume1/screenpipe/pipes/video-export/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Export Video Clip
description: "Create a video of your recent screen activity"
icon: "🎬"
featured: false
---
Export a video of my screen activity from the last 5 minutes.
Read screenpipe skill first.
Use the POST /frames/export endpoint with the time range and fps=1.0. Then show me the exported video file path as an inline code block so I can watch it.
If the export is large, suggest a lower fps or shorter time range.
Thinking
Thinking
Now I have a clear picture. The pipes are markdown prompt templates in
/volume1/screenpipe/pipes/
, but there's no code to actually load and run them —
consumers/summary.py
has its own hardcoded prompts instead.
Here's what I'll implement:
consumers/pipes.py
— dynamically loads pipe.md files and runs them via Claude (data injected as system message, pipe body as user prompt)
main.py
— two new endpoints:
GET /api/pipes
and
POST /api/pipes/{pipe_id}/run
cli.py
— a
pipe
command to run pipes from the terminal
Let me build it:
Bash
Check browser_urls signature
IN
cat /volume1/screenpipe/app/consumers/activity.py | grep "def browser_urls" -A 5
Copy code to clipboard
OUT
def browser_urls(
for_date: date | None = None,
app_name: str | None = None,
ts_from: str | None = None,
ts_to: str | None = None,
limit: int = 30,
Write
pipes.py
pipes.py
143 lines
"""Dynamic pipe loader and runner."""
import os
import re
from datetime import date
from pathlib import Path
from typing import Any
def _parse_frontmatter(text: str) -> tuple[dict, str]:
if not text.startswith("---"):
return {}, text
try:
end = text.index("---", 3)
except ValueError:
return {}, text
fm_text = text[3:end].strip()
body = text[end + 3:].strip()
meta: dict = {}
for line in fm_text.splitlines():
if ":" in line:
k, _, v = line.partition(":")
meta[k.strip()] = v.strip().strip('"')
return meta, body
def load_pipes(pipes_dir: Path) -> list[dict]:
if not pipes_dir.exists():
return []
pipes = []
for pipe_dir in sorted(pipes_dir.iterdir()):
if not pipe_dir.is_dir() or pipe_dir.name.startswith("."):
continue
pipe_md = pipe_dir / "pipe.md"
if not pipe_md.exists():
continue
text = pipe_md.read_text(encoding="utf-8")
meta, body = _parse_frontmatter(text)
if meta.get("enabled", "true").lower() == "false":
continue
body = re.sub(r"Read screenpipe skill first\.?\n?", "", body).strip()
pipes.append({
"id": pipe_dir.name,
"title": meta.get("title", pipe_dir.name),
"description": meta.get("description", ""),
"icon": meta.get("icon", ""),
"schedule": meta.get("schedule", "manual"),
"featured": meta.get("featured", "false").lower() == "true",
"prompt": body,
})
return pipes
def _build_system(d: date, stats: dict) -> str:
from consumers.activity import app_time, browser_urls, ui_event_summary
from consumers.ocr import deduplicated_text
from consumers.audio import formatted_transcript
apps = app_time(d)
app_lines = "\n".join(f"- {a['app_name']}: {a['minutes']} min" for a in apps[:20])
urls = browser_urls(d, limit=20)
url_lines = "\n".join(f"- {u['browser_url'][:100]} ({u['minutes']} min)" for u in urls)
ui_rows = ui_event_summary(d)
ui_lines = "\n".join(
f"- {r['app_name']}: {r['clicks']} clicks, {r['keystrokes']} keys, {r['switches']} switches"
for r in ui_rows[:15]
)
ocr_rows = deduplicated_text(d, chunk_minutes=5)
ocr_lines = "\n".join(
f"[{r['bucket']}] {r['app_name']} / {r['window_name'] or ''}: {r['text'][:200]}"
for r in ocr_rows[:100]
)
audio = formatted_transcript(d)
if len(audio) > 3000:
audio = audio[:3000]
return f"""You are analyzing screenpipe data — recordings of a person's computer activity.
## App usage (minutes per app):
{app_lines or '(no app data)'}
## Browser URLs visited:
{url_lines or '(no browser data)'}
## UI activity per app (clicks / keystrokes / app-switches):
{ui_lines or '(no UI event data)'}
## Screen content (sampled every 5 minutes):
{ocr_lines or '(no screen data)'}
## Audio / speech:
{audio or '(no audio data)'}
Date: {d}
Total frames recorded: {stats['total_frames']}"""
def run_pipe(
pipe_id: str,
for_date: date | None = None,
api_key: str | None = None,
pipes_dir: Path | None = None,
) -> dict[str, Any]:
import anthropic
from consumers.activity import summary_stats
d = for_date or date.today()
key = api_key or os.environ.get("ANTHROPIC_API_KEY", "")
if not key:
return {"title": "Error", "content": "ANTHROPIC_API_KEY not set.", "date": str(d)}
_pipes_dir = pipes_dir or Path(os.environ.get("PIPES_DIR", "/data/pipes"))
all_pipes = {p["id"]: p for p in load_pipes(_pipes_dir)}
if pipe_id not in all_pipes:
return {"title": "Error", "content": f"Pipe not found: {pipe_id}", "date": str(d)}
pipe = all_pipes[pipe_id]
stats = summary_stats(d)
if stats["total_frames"] == 0:
return {"title": pipe["title"], "content": f"No screen data found for {d}.", "date": str(d)}
system = _build_system(d, stats)
client = anthropic.Anthropic(api_key=key)
message = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=1024,
system=system,
messages=[{"role": "user", "content": pipe["prompt"]}],
)
return {
"title": pipe["title"],
"content": message.content[0].text,
"date": str(d),
"stats": stats,
}
Now add the API endpoints to
main.py
:
Edit
main.py
main.py
Added 1 line
Edit
main.py
main.py
Added 1 line
Now add the pipe endpoints at the end of main.py, before the closing summary section:
Edit
main.py
main.py
Added 14 lines
Now add the CLI command to
cli.py
cli.py
:
Edit...
|
Code
|
screenpipe_f — screenpipe [SSH: nas]
|
NULL
|
26243
|
|
26244
|
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Source Control (⌃⇧G) - 11 pending changes
11
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
logs
pipes
.gitignore
app_settings.json
archive.db
archive.db-bak
U
db.sqlite
db.sqlite-shm
db.sqlite-wal
screenpipe_f
screenpipe_sync_updated.sh
U
screenpipe_sync.sh
M
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
screenpipe_f, Editor Group 1
screenpipe_sync_updated.sh, preview, Editor Group 1
pipe.md, Editor Group 1
.env, Editor Group 1
Implement and run pipe l…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports - 1 forwarded port
PORTS
1
Remote - SSH - Output
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
Forwarded Ports: 8766
1
Notifications
Sign In
Sign In
Plain Text
Editor Language Status: Inline Suggestions, next: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 4
Ln 1, Col 1
Info: Downloading VS Code Server...
Implement and run pipe logic
Session history
New session
Message actions
main.py
main.py
lets implement logic with pipes. how can I run it?
Thinking
Thinking
Let me look at the current project structure to understand what's already in place.
Bash
List project files
IN
find /volume1/screenpipe -type f | head -50 && echo "---" && ls /volume1/screenpipe
Copy code to clipboard
OUT
/volume1/screenpipe/.DS_Store
/volume1/screenpipe/screenpipe.db
/volume1/screenpipe/screenpipe_sync.sh
/volume1/screenpipe/app_settings.json
/volume1/screenpipe/.gitignore
/volume1/screenpipe/archive.db
/volume1/screenpipe/db.sqlite
/volume1/screenpipe/db.sqlite-wal
/volume1/screenpipe/db.sqlite-shm
/volume1/screenpipe/#recycle/desktop.ini
/volume1/screenpipe/#recycle/db.sqlite
/volume1/screenpipe/#recycle/Copy #1 of db.sqlite
/volume1/screenpipe/#recycle/.DS_Store
/volume1/screenpipe/#recycle/Copy #2 of db.sqlite
/volume1/screenpipe/#recycle/archive.db
/volume1/screenpipe/#recycle/Copy #1 of archive.db
/volume1/screenpipe/#recycle/Copy #2 of archive.db
/volume1/screenpipe/#recycle/Copy #3 of archive.db
/volume1/screenpipe/#recycle/Copy #4 of archive.db
/volume1/screenpipe/#recycle/Copy #5 of archive.db
/volume1/screenpipe/#recycle/Copy #3 of db.sqlite
/volume1/screenpipe/#recycle/Copy #4 of db.sqlite
/volume1/screenpipe/#recycle/Copy #6 of archive.db
/volume1/screenpipe/#recycle/test.txt
/volume1/screenpipe/#recycle/Copy #7 of archive.db
/volume1/screenpipe/#recycle/Copy #8 of archive.db
/volume1/screenpipe/#recycle/archive.db-journal
/volume1/screenpipe/#recycle/Copy #1 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #2 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #3 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #4 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #5 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #6 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #7 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #5 of db.sqlite
/volume1/screenpipe/pipes/.DS_Store
/volume1/screenpipe/app/.env
/volume1/screenpipe/app/cli.py
/volume1/screenpipe/app/.DS_Store
/volume1/screenpipe/app/db.py
/volume1/screenpipe/app/docker-compose.yml
/volume1/screenpipe/app/main.py
/volume1/screenpipe/app/requirements.txt
/volume1/screenpipe/app/Dockerfile
/volume1/screenpipe/data/.DS_Store
/volume1/screenpipe/.git/description
/volume1/screenpipe/.git/HEAD
/volume1/screenpipe/.git/index
/volume1/screenpipe/.git/COMMIT_EDITMSG
/volume1/screenpipe/#recycle/data/.DS_Store
---
app
app_settings.json
archive.db
data
db.sqlite
db.sqlite-shm
db.sqlite-wal
pipes
#recycle
screenpipe.db
screenpipe_sync.sh
Read
main.py
main.py
Bash
Check pipes directory and docker-compose
IN
ls /volume1/screenpipe/pipes/ && ls /volume1/screenpipe/app/ && cat /volume1/screenpipe/app/docker-compose.yml
Copy code to clipboard
OUT
ai-habits
day-recap
meeting-summary
standup-update
time-breakdown
video-export
cli.py
consumers
db.py
docker-compose.yml
Dockerfile
main.py
__pycache__
requirements.txt
static
services:
screenpipe-app:
build: .
container_name: screenpipe-app
restart: unless-stopped
ports:
- "8766:8000"
volumes:
- /volume1/screenpipe:/data
env_file:
- .env
environment:
TZ: Europe/Sofia
DB_PATH: /data/db.sqlite
sqlite-web-archive:
image: ghcr.io/coleifer/sqlite-web:latest
container_name: screenpipe-sqlweb-archive
restart: unless-stopped
ports:
- "8767:8080"
volumes:
- /volume1/screenpipe:/data
command: ["-H", "[IP_ADDRESS]", "-r", "/data/archive.db"]
sqlite-web-live:
image: ghcr.io/coleifer/sqlite-web:latest
container_name: screenpipe-sqlweb-live
restart: unless-stopped
ports:
- "8768:8080"
volumes:
- /volume1/screenpipe:/data
command: ["-H", "[IP_ADDRESS]", "-r", "/data/db.sqlite"]
Read
requirements.txt
requirements.txt
Bash
Inspect a pipe directory
IN
ls /volume1/screenpipe/pipes/day-recap/ && cat /volume1/screenpipe/pipes/day-recap/pipe.json 2>/dev/null || ls /volume1/screenpipe/pipes/day-recap/
Copy code to clipboard
OUT
pipe.md
pipe.md
Read
cli.py
cli.py
Bash
List all pipes and their contents
IN
ls /volume1/screenpipe/pipes/ && for d in /volume1/screenpipe/pipes/*/; do echo "=== $d ==="; ls "$d"; done
Copy code to clipboard
OUT
ai-habits
day-recap
meeting-summary
standup-update
time-breakdown
video-export
=== /volume1/screenpipe/pipes/ai-habits/ ===
pipe.md
=== /volume1/screenpipe/pipes/day-recap/ ===
pipe.md
=== /volume1/screenpipe/pipes/meeting-summary/ ===
pipe.md
=== /volume1/screenpipe/pipes/standup-update/ ===
pipe.md
=== /volume1/screenpipe/pipes/time-breakdown/ ===
pipe.md
=== /volume1/screenpipe/pipes/video-export/ ===
pipe.md
Bash
Read pipe markdown files
IN...
|
Code
|
screenpipe_f — screenpipe [SSH: nas]
|
NULL
|
26244
|
|
26245
|
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Explorer (⇧⌘E) - 1 unsaved file
1
Search (⇧⌘F)
Source Control (⌃⇧G) - 11 pending changes
11
Run and Debug (⇧⌘D)
Remote Explorer
Extensions (⇧⌘X) - 2 require update, 1 requires restart
3
Claude Code
Containers
EXPLORER
EXPLORER
Explorer Section: screenpipe [SSH: nas]
Explorer Section: screenpipe [SSH: nas]
SCREENPIPE [SSH: NAS]
#recycle
app
data
logs
pipes
.gitignore
app_settings.json
archive.db
archive.db-bak
U
db.sqlite
db.sqlite-shm
db.sqlite-wal
screenpipe_f
screenpipe_sync_updated.sh
U
screenpipe_sync.sh
M
screenpipe.db
Outline Section
OUTLINE
OUTLINE
Timeline Section
TIMELINE
TIMELINE
app_settings.json, Editor Group 1
screenpipe_sync.sh, Editor Group 1
screenpipe_f, Editor Group 1
screenpipe_sync_updated.sh, preview, Editor Group 1
pipe.md, Editor Group 1
.env, Editor Group 1
Implement and run pipe l…, Editor Group 2
Problems (⇧⌘M)
PROBLEMS
Output (⇧⌘U)
OUTPUT
Debug Console (⇧⌘Y)
DEBUG CONSOLE
Terminal (⌃`)
TERMINAL
Ports - 1 forwarded port
PORTS
1
Remote - SSH - Output
remote SSH: nas
SSH: nas
screenpipe (Git) - master*, Checkout Branch/Tag...
master*
screenpipe (Git) - Synchronize Changes
No Problems
0
0
Forwarded Ports: 8766
1
Notifications
Sign In
Sign In
Plain Text
Editor Language Status: Inline Suggestions, next: $(copilot) No inline suggestion available, Inline suggestions
LF
UTF-8
Spaces: 4
Ln 1, Col 1
Info: Downloading VS Code Server...
Implement and run pipe logic
Session history
New session
Message actions
main.py
main.py
lets implement logic with pipes. how can I run it?
Thinking
Thinking
Let me look at the current project structure to understand what's already in place.
Bash
List project files
IN
find /volume1/screenpipe -type f | head -50 && echo "---" && ls /volume1/screenpipe
Copy code to clipboard
OUT
/volume1/screenpipe/.DS_Store
/volume1/screenpipe/screenpipe.db
/volume1/screenpipe/screenpipe_sync.sh
/volume1/screenpipe/app_settings.json
/volume1/screenpipe/.gitignore
/volume1/screenpipe/archive.db
/volume1/screenpipe/db.sqlite
/volume1/screenpipe/db.sqlite-wal
/volume1/screenpipe/db.sqlite-shm
/volume1/screenpipe/#recycle/desktop.ini
/volume1/screenpipe/#recycle/db.sqlite
/volume1/screenpipe/#recycle/Copy #1 of db.sqlite
/volume1/screenpipe/#recycle/.DS_Store
/volume1/screenpipe/#recycle/Copy #2 of db.sqlite
/volume1/screenpipe/#recycle/archive.db
/volume1/screenpipe/#recycle/Copy #1 of archive.db
/volume1/screenpipe/#recycle/Copy #2 of archive.db
/volume1/screenpipe/#recycle/Copy #3 of archive.db
/volume1/screenpipe/#recycle/Copy #4 of archive.db
/volume1/screenpipe/#recycle/Copy #5 of archive.db
/volume1/screenpipe/#recycle/Copy #3 of db.sqlite
/volume1/screenpipe/#recycle/Copy #4 of db.sqlite
/volume1/screenpipe/#recycle/Copy #6 of archive.db
/volume1/screenpipe/#recycle/test.txt
/volume1/screenpipe/#recycle/Copy #7 of archive.db
/volume1/screenpipe/#recycle/Copy #8 of archive.db
/volume1/screenpipe/#recycle/archive.db-journal
/volume1/screenpipe/#recycle/Copy #1 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #2 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #3 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #4 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #5 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #6 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #7 of archive.db-journal
/volume1/screenpipe/#recycle/Copy #5 of db.sqlite
/volume1/screenpipe/pipes/.DS_Store
/volume1/screenpipe/app/.env
/volume1/screenpipe/app/cli.py
/volume1/screenpipe/app/.DS_Store
/volume1/screenpipe/app/db.py
/volume1/screenpipe/app/docker-compose.yml
/volume1/screenpipe/app/main.py
/volume1/screenpipe/app/requirements.txt
/volume1/screenpipe/app/Dockerfile
/volume1/screenpipe/data/.DS_Store
/volume1/screenpipe/.git/description
/volume1/screenpipe/.git/HEAD
/volume1/screenpipe/.git/index
/volume1/screenpipe/.git/COMMIT_EDITMSG
/volume1/screenpipe/#recycle/data/.DS_Store
---
app
app_settings.json
archive.db
data
db.sqlite
db.sqlite-shm
db.sqlite-wal
pipes
#recycle
screenpipe.db
screenpipe_sync.sh
Read
main.py
main.py
Bash
Check pipes directory and docker-compose
IN
ls /volume1/screenpipe/pipes/ && ls /volume1/screenpipe/app/ && cat /volume1/screenpipe/app/docker-compose.yml
Copy code to clipboard
OUT
ai-habits
day-recap
meeting-summary
standup-update
time-breakdown
video-export
cli.py
consumers
db.py
docker-compose.yml
Dockerfile
main.py
__pycache__
requirements.txt
static
services:
screenpipe-app:
build: .
container_name: screenpipe-app
restart: unless-stopped
ports:
- "8766:8000"
volumes:
- /volume1/screenpipe:/data
env_file:
- .env
environment:
TZ: Europe/Sofia
DB_PATH: /data/db.sqlite
sqlite-web-archive:
image: ghcr.io/coleifer/sqlite-web:latest
container_name: screenpipe-sqlweb-archive
restart: unless-stopped
ports:
- "8767:8080"
volumes:
- /volume1/screenpipe:/data
command: ["-H", "[IP_ADDRESS]", "-r", "/data/archive.db"]
sqlite-web-live:
image: ghcr.io/coleifer/sqlite-web:latest
container_name: screenpipe-sqlweb-live
restart: unless-stopped
ports:
- "8768:8080"
volumes:
- /volume1/screenpipe:/data
command: ["-H", "[IP_ADDRESS]", "-r", "/data/db.sqlite"]
Read
requirements.txt
requirements.txt
Bash
Inspect a pipe directory
IN
ls /volume1/screenpipe/pipes/day-recap/ && cat /volume1/screenpipe/pipes/day-recap/pipe.json 2>/dev/null || ls /volume1/screenpipe/pipes/day-recap/
Copy code to clipboard
OUT
pipe.md
pipe.md
Read
cli.py
cli.py
Bash
List all pipes and their contents
IN
ls /volume1/screenpipe/pipes/ && for d in /volume1/screenpipe/pipes/*/; do echo "=== $d ==="; ls "$d"; done
Copy code to clipboard
OUT
ai-habits
day-recap
meeting-summary
standup-update
time-breakdown
video-export
=== /volume1/screenpipe/pipes/ai-habits/ ===
pipe.md
=== /volume1/screenpipe/pipes/day-recap/ ===
pipe.md
=== /volume1/screenpipe/pipes/meeting-summary/ ===
pipe.md
=== /volume1/screenpipe/pipes/standup-update/ ===
pipe.md
=== /volume1/screenpipe/pipes/time-breakdown/ ===
pipe.md
=== /volume1/screenpipe/pipes/video-export/ ===
pipe.md
Bash
Read pipe markdown files
IN
cat /volume1/screenpipe/pipes/day-recap/pipe.md && echo "===" && cat /volume1/screenpipe/pipes/meeting-summary/pipe.md 2>/dev/null | head -50
Copy code to clipboard
OUT
---
schedule: manual
enabled: true
template: true
title: Day Recap
description: "Today's accomplishments, key moments, and unfinished work"
icon: "📋"
featured: true
---
Analyze my screen and audio recordings from today (last 16 hours only).
Read screenpipe skill first.
Use this exact format:
## Summary
One sentence: what I mainly did today.
## Accomplishments
- Top 3 things I finished, with timestamps (e.g. "2:30 PM")
- Name specific apps, files, or projects
## Key Moments
- Important things I saw, said, or heard — with timestamps
## Unfinished Work
- What I should continue tomorrow — name the app/file/task
## Patterns
- Apps I used most, topics that came up repeatedly
Only report what you can verify from the data. End with: "**Next step:** [most important thing to continue]"
===
---
schedule: manual
enabled: true
template: true
title: Meeting Summary
description: "Summarize meeting transcript with key takeaways and action items"
icon: "🤝"
featured: false
---
Summarize the meeting transcript provided in the context. Include key takeaways and action items. If the meeting is marked as ongoing, note that and summarize what's available so far.
Read screenpipe skill first.
Use this exact format:
## Meeting Summary
One sentence: what this meeting was about.
## Key Takeaways
- Top 3-5 important points discussed
- Include who said what when relevant
## Action Items
- [ ] Task — assigned to whom, deadline if mentioned
- [ ] Task — assigned to whom
## Decisions Made
- List any decisions or agreements reached
## Open Questions
- Anything unresolved or needing follow-up
Keep it concise and actionable.
Thinking
Thinking
Bash
Read summary consumer
IN
ls /volume1/screenpipe/app/consumers/ && cat /volume1/screenpipe/app/consumers/summary.py
Copy code to clipboard
OUT
activity.py
audio.py
elements.py
__init__.py
interactions.py
ocr.py
__pycache__
report.py
summary.py
"""AI summary generator using Claude."""
import os
from datetime import date
from typing import Any
from consumers.activity import app_time, summary_stats, browser_urls, ui_event_summary
from consumers.ocr import deduplicated_text
from consumers.audio import formatted_transcript
SUMMARY_TYPES = {
"day_recap": {
"title": "Day Recap",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Browser URLs visited:
{browser_urls}
## UI activity per app (clicks / keystrokes / app-switches):
{ui_events}
## Screen content (sampled every 5 minutes):
{ocr_text}
## Audio/speech:
{audio}
Write a concise day recap using EXACTLY this format:
## Summary
One sentence: what I mainly worked on today.
## Accomplishments
- Top 3 things I finished, with approximate times
- Name specific apps, files, or projects
## Key Moments
- Important things seen or heard, with timestamps
## Unfinished Work
- What to continue tomorrow
## Patterns
- Apps used most, topics that came up repeatedly
Only report what you can verify from the data. End with:
**Next step:** [most important thing to continue]""",
},
"standup": {
"title": "Standup Update",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Browser URLs visited:
{browser_urls}
## UI activity per app (clicks / keystrokes / app-switches):
{ui_events}
## Screen content (sampled every 5 minutes):
{ocr_text}
## Audio/speech:
{audio}
Write a brief standup update:
**Yesterday:** What I worked on (2-3 bullets)
**Today:** What I plan to continue (1-2 bullets)
**Blockers:** Any issues observed (or "None")
Keep it under 150 words. Only report what's verifiable from the data.""",
},
"focus_time": {
"title": "Focus & Distraction Analysis",
"prompt": """\
You are analyzing a person's computer activity for the day.
## App usage (minutes per app):
{app_time}
## Browser URLs visited:
{browser_urls}
## UI activity per app (clicks / keystrokes / app-switches):
{ui_events}
## Screen content (sampled every 5 minutes):
{ocr_text}
Analyze focus vs distraction patterns:
## Deep Work Periods
- When and how long were sustained focus sessions?
- What was being worked on?
## Distractions
- Which apps/sites were used recreationally?
- How much time was lost to context switching?
## Recommendations
- 2-3 concrete suggestions to improve focus tomorrow
Be specific with times and app names.""",
},
}
def _build_context(for_date: date) -> dict[str, str]:
apps = app_time(for_date)
app_lines = "\n".join(f"- {a['app_name']}: {a['minutes']} min" for a in apps[:20])
urls = browser_urls(for_date, limit=20)
url_lines = "\n".join(
f"- {u['browser_url'][:100]} ({u['minutes']} min)" for u in urls
)
ui_rows = ui_event_summary(for_date)
ui_lines = "\n".join(
f"- {r['app_name']}: {r['clicks']} clicks, {r['keystrokes']} keys, {r['switches']} switches"
for r in ui_rows[:15]
)
ocr_rows = deduplicated_text(for_date, chunk_minutes=5)
ocr_lines = "\n".join(
f"[{r['bucket']}] {r['app_name']} / {r['window_name'] or ''}: {r['text'][:200]}"
for r in ocr_rows[:100]
)
audio = formatted_transcript(for_date)
return {
"app_time": app_lines or "(no app data)",
"browser_urls": url_lines or "(no browser data)",
"ui_events": ui_lines or "(no UI event data)",
"ocr_text": ocr_lines or "(no screen data)",
"audio": audio[:3000] if len(audio) > 3000 else audio,
}
def generate(
summary_type: str = "day_recap",
for_date: date | None = None,
api_key: str | None = None,
) -> dict[str, Any]:
"""Generate an AI summary. Returns dict with 'title', 'content', 'date'."""
import anthropic
d = for_date or date.today()
key = api_key or os.environ.get("ANTHROPIC_API_KEY", "")
if not key:
return {
"title": "Error",
"content": "ANTHROPIC_API_KEY not set. Add it to your .env file.",
"date": str(d),
}
spec = SUMMARY_TYPES.get(summary_type)
if not spec:
return {"title": "Error", "content": f"Unknown summary type: {summary_type}", "date": str(d)}
stats = summary_stats(d)
if stats["total_frames"] == 0:
return {
"title": spec["title"],
"content": f"No screen data found for {d}.",
"date": str(d),
}
ctx = _build_context(d)
prompt = spec["prompt"].format(**ctx)
client = anthropic.Anthropic(api_key=key)
message = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=1024,
messages=[{"role": "user", "content": prompt}],
)
return {
"title": spec["title"],
"content": message.content[0].text,
"date": str(d),
"stats": stats,
}
Thinking
Thinking
Bash
Read all pipe.md files
IN
for f in /volume1/screenpipe/pipes/*/pipe.md; do echo "=== $f ==="; cat "$f"; echo; done
Copy code to clipboard
OUT
=== /volume1/screenpipe/pipes/ai-habits/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: AI Habits
description: "How you use AI tools — patterns and insights"
icon: "🤖"
featured: true
---
Search my recordings from the last 24 hours for AI tool usage. Use app_name filter for each tool separately: ChatGPT, Claude, Copilot, Cursor, Gemini, Perplexity. Use limit=5 per search, max 6 searches total.
Read screenpipe skill first.
Use this exact format:
## AI Tools Used
- List each tool with approximate time spent (e.g. "Claude: ~45min")
## What I Used Them For
- For each tool: coding, writing, research, or brainstorming
## Usage Patterns
- Do I switch between tools? Use them in bursts or steadily?
## Effectiveness
- Which tool appeared alongside completed work vs. abandoned attempts
If no AI usage is found, say so clearly. End with: "**Tip:** [one suggestion to use AI tools more effectively]"
=== /volume1/screenpipe/pipes/day-recap/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Day Recap
description: "Today's accomplishments, key moments, and unfinished work"
icon: "📋"
featured: true
---
Analyze my screen and audio recordings from today (last 16 hours only).
Read screenpipe skill first.
Use this exact format:
## Summary
One sentence: what I mainly did today.
## Accomplishments
- Top 3 things I finished, with timestamps (e.g. "2:30 PM")
- Name specific apps, files, or projects
## Key Moments
- Important things I saw, said, or heard — with timestamps
## Unfinished Work
- What I should continue tomorrow — name the app/file/task
## Patterns
- Apps I used most, topics that came up repeatedly
Only report what you can verify from the data. End with: "**Next step:** [most important thing to continue]"
=== /volume1/screenpipe/pipes/meeting-summary/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Meeting Summary
description: "Summarize meeting transcript with key takeaways and action items"
icon: "🤝"
featured: false
---
Summarize the meeting transcript provided in the context. Include key takeaways and action items. If the meeting is marked as ongoing, note that and summarize what's available so far.
Read screenpipe skill first.
Use this exact format:
## Meeting Summary
One sentence: what this meeting was about.
## Key Takeaways
- Top 3-5 important points discussed
- Include who said what when relevant
## Action Items
- [ ] Task — assigned to whom, deadline if mentioned
- [ ] Task — assigned to whom
## Decisions Made
- List any decisions or agreements reached
## Open Questions
- Anything unresolved or needing follow-up
Keep it concise and actionable.
=== /volume1/screenpipe/pipes/standup-update/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Standup Update
description: "What you did, what's next, and any blockers"
icon: "🏢"
featured: true
---
Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.
Read screenpipe skill first.
Use this exact format:
## Yesterday
- What I worked on (name specific projects, files, tools, PRs)
## Today
- What I will work on next (based on unfinished tasks and recent activity)
## Blockers
- Issues I hit — errors, slow builds, waiting on someone
- If no blockers, write "None"
Keep it under 150 words. Copy-paste ready for a team standup.
=== /volume1/screenpipe/pipes/time-breakdown/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Time Breakdown
description: "Where your time went — by app, project, and category"
icon: "⏱"
featured: false
---
Analyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.
Read screenpipe skill first.
Use this exact format with durations and percentages:
## By Application
- List each app with duration and percentage, sorted by time (e.g. "VS Code: 2h 15min (28%)")
## By Category
- Group into: coding, meetings, browsing, writing, communication, other
- Show hours and percentage per category
## By Project
- Group related activities by project/topic. Name specific repos or tasks.
## Productivity Score
- Calculate: focused_work_hours / total_hours as a percentage
- Focused = coding + writing. Unfocused = browsing + switching.
End with: "**Suggestion:** [one specific change to improve tomorrow's productivity]"
=== /volume1/screenpipe/pipes/video-export/pipe.md ===
---
schedule: manual
enabled: true
template: true
title: Export Video Clip
description: "Create a video of your recent screen activity"
icon: "🎬"
featured: false
---
Export a video of my screen activity from the last 5 minutes.
Read screenpipe skill first.
Use the POST /frames/export endpoint with the time range and fps=1.0. Then show me the exported video file path as an inline code block so I can watch it.
If the export is large, suggest a lower fps or shorter time range.
Thinking
Thinking
Now I have a clear picture. The pipes are markdown prompt templates in
/volume1/screenpipe/pipes/
, but there's no code to actually load and run them —
consumers/summary.py
has its own hardcoded prompts instead.
Here's what I'll implement:
consumers/pipes.py
— dynamically loads pipe.md files and runs them via Claude (data injected as system message, pipe body as user prompt)
main.py
— two new endpoints:
GET /api/pipes
and
POST /api/pipes/{pipe_id}/run
cli.py
— a
pipe
command to run pipes from the terminal
Let me build it:
Bash
Check browser_urls signature
IN
cat /volume1/screenpipe/app/consumers/activity.py | grep "def browser_urls" -A 5
Copy code to clipboard
OUT
def browser_urls(
for_date: date | None = None,
app_name: str | None = None,
ts_from: str | None = None,
ts_to: str | None = None,
limit: int = 30,
Write
pipes.py
pipes.py
143 lines
"""Dynamic pipe loader and runner."""
import os
import re
from datetime import date
from pathlib import Path
from typing import Any
def _parse_frontmatter(text: str) -> tuple[dict, str]:
if not text.startswith("---"):
return {}, text
try:
end = text.index("---", 3)
except ValueError:
return {}, text
fm_text = text[3:end].strip()
body = text[end + 3:].strip()
meta: dict = {}
for line in fm_text.splitlines():
if ":" in line:
k, _, v = line.partition(":")
meta[k.strip()] = v.strip().strip('"')
return meta, body
def load_pipes(pipes_dir: Path) -> list[dict]:
if not pipes_dir.exists():
return []
pipes = []
for pipe_dir in sorted(pipes_dir.iterdir()):
if not pipe_dir.is_dir() or pipe_dir.name.startswith("."):
continue
pipe_md = pipe_dir / "pipe.md"
if not pipe_md.exists():
continue
text = pipe_md.read_text(encoding="utf-8")
meta, body = _parse_frontmatter(text)
if meta.get("enabled", "true").lower() == "false":
continue
body = re.sub(r"Read screenpipe skill first\.?\n?", "", body).strip()
pipes.append({
"id": pipe_dir.name,
"title": meta.get("title", pipe_dir.name),
"description": meta.get("description", ""),
"icon": meta.get("icon", ""),
"schedule": meta.get("schedule", "manual"),
"featured": meta.get("featured", "false").lower() == "true",
"prompt": body,
})
return pipes
def _build_system(d: date, stats: dict) -> str:
from consumers.activity import app_time, browser_urls, ui_event_summary
from consumers.ocr import deduplicated_text
from consumers.audio import formatted_transcript
apps = app_time(d)
app_lines = "\n".join(f"- {a['app_name']}: {a['minutes']} min" for a in apps[:20])
urls = browser_urls(d, limit=20)
url_lines = "\n".join(f"- {u['browser_url'][:100]} ({u['minutes']} min)" for u in urls)
ui_rows = ui_event_summary(d)
ui_lines = "\n".join(
f"- {r['app_name']}: {r['clicks']} clicks, {r['keystrokes']} keys, {r['switches']} switches"
for r in ui_rows[:15]
)
ocr_rows = deduplicated_text(d, chunk_minutes=5)
ocr_lines = "\n".join(
f"[{r['bucket']}] {r['app_name']} / {r['window_name'] or ''}: {r['text'][:200]}"
for r in ocr_rows[:100]
)
audio = formatted_transcript(d)
if len(audio) > 3000:
audio = audio[:3000]
return f"""You are analyzing screenpipe data — recordings of a person's computer activity.
## App usage (minutes per app):
{app_lines or '(no app data)'}
## Browser URLs visited:
{url_lines or '(no browser data)'}
## UI activity per app (clicks / keystrokes / app-switches):
{ui_lines or '(no UI event data)'}
## Screen content (sampled every 5 minutes):
{ocr_lines or '(no screen data)'}
## Audio / speech:
{audio or '(no audio data)'}
Date: {d}
Total frames recorded: {stats['total_frames']}"""
def run_pipe(
pipe_id: str,
for_date: date | None = None,
api_key: str | None = None,
pipes_dir: Path | None = None,
) -> dict[str, Any]:
import anthropic
from consumers.activity import summary_stats
d = for_date or date.today()
key = api_key or os.environ.get("ANTHROPIC_API_KEY", "")
if not key:
return {"title": "Error", "content": "ANTHROPIC_API_KEY not set.", "date": str(d)}
_pipes_dir = pipes_dir or Path(os.environ.get("PIPES_DIR", "/data/pipes"))
all_pipes = {p["id"]: p for p in load_pipes(_pipes_dir)}
if pipe_id not in all_pipes:
return {"title": "Error", "content": f"Pipe not found: {pipe_id}", "date": str(d)}
pipe = all_pipes[pipe_id]
stats = summary_stats(d)
if stats["total_frames"] == 0:
return {"title": pipe["title"], "content": f"No screen data found for {d}.", "date": str(d)}
system = _build_system(d, stats)
client = anthropic.Anthropic(api_key=key)
message = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=1024,
system=system,
messages=[{"role": "user", "content": pipe["prompt"]}],
)
return {
"title": pipe["title"],
"content": message.content[0].text,
"date": str(d),
"stats": stats,
}
Now add the API endpoints to
main.py
:
Edit
main.py
main.py
Added 1 line
Edit
main.py
main.py
Added 1 line
Now add the pipe endpoints at the end of main.py, before the closing summary section:
Edit
main.py...
|
Code
|
screenpipe_f — screenpipe [SSH: nas]
|
NULL
|
26245
|
|
1
|
-rw-r--r-- 1 lukas staff 659494 28 Apr 10:38 -rw-r--r-- 1 lukas staff 659494 28 Apr 10:38 compact_monitor_1_1777361899343.mp4
-rw-r--r-- 1 lukas staff 659619 28 Apr 10:43 compact_monitor_1_1777362216761.mp4
-rw-r--r-- 1 lukas staff 658369 28 Apr 10:48 compact_monitor_1_1777362531562.mp4
-rw-r--r-- 1 lukas staff 658744 28 Apr 10:54 compact_monitor_1_1777362844570.mp4
-rw-r--r-- 1 lukas staff 658494 28 Apr 10:59 compact_monitor_1_1777363156173.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 11:04 compact_monitor_1_1777363471960.mp4
-rw-r--r-- 1 lukas staff 659244 28 Apr 11:09 compact_monitor_1_1777363780754.mp4
-rw-r--r-- 1 lukas staff 658119 28 Apr 11:14 compact_monitor_1_1777364091631.mp4
-rw-r--r-- 1 lukas staff 657619 28 Apr 11:20 compact_monitor_1_1777364399949.mp4
-rw-r--r-- 1 lukas staff 658994 28 Apr 11:25 compact_monitor_1_1777364707696.mp4
-rw-r--r-- 1 lukas staff 657619 28 Apr 11:30 compact_monitor_1_1777365021138.mp4
-rw-r--r-- 1 lukas staff 657494 28 Apr 11:35 compact_monitor_1_1777365334863.mp4
-rw-r--r-- 1 lukas staff 658744 28 Apr 11:40 compact_monitor_1_1777365647363.mp4
-rw-r--r-- 1 lukas staff 659619 28 Apr 11:46 compact_monitor_1_1777365960793.mp4
-rw-r--r-- 1 lukas staff 658369 28 Apr 11:51 compact_monitor_1_1777366272670.mp4
-rw-r--r-- 1 lukas staff 657869 28 Apr 11:56 compact_monitor_1_1777366581087.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 12:01 compact_monitor_1_1777366885670.mp4
-rw-r--r-- 1 lukas staff 657619 28 Apr 12:06 compact_monitor_1_1777367201821.mp4
-rw-r--r-- 1 lukas staff 657994 28 Apr 12:11 compact_monitor_1_1777367517013.mp4
-rw-r--r-- 1 lukas staff 661994 28 Apr 12:17 compact_monitor_1_1777367833288.mp4
-rw-r--r-- 1 lukas staff 658869 28 Apr 12:22 compact_monitor_1_1777368158856.mp4
-rw-r--r-- 1 lukas staff 657619 28 Apr 12:27 compact_monitor_1_1777368475271.mp4
-rw-r--r-- 1 lukas staff 659994 28 Apr 12:33 compact_monitor_1_1777368789494.mp4
-rw-r--r-- 1 lukas staff 658744 28 Apr 12:38 compact_monitor_1_1777369105746.mp4
-rw-r--r-- 1 lukas staff 658244 28 Apr 12:43 compact_monitor_1_1777369420420.mp4
-rw-r--r-- 1 lukas staff 659244 28 Apr 12:48 compact_monitor_1_1777369728628.mp4
-rw-r--r-- 1 lukas staff 657619 28 Apr 12:54 compact_monitor_1_1777370046041.mp4
-rw-r--r-- 1 lukas staff 657869 28 Apr 12:59 compact_monitor_1_1777370361638.mp4
-rw-r--r-- 1 lukas staff 658994 28 Apr 13:04 compact_monitor_1_1777370677661.mp4
-rw-r--r-- 1 lukas staff 660995 28 Apr 13:09 compact_monitor_1_1777370991662.mp4
-rw-r--r-- 1 lukas staff 658619 28 Apr 13:15 compact_monitor_1_1777371307758.mp4
-rw-r--r-- 1 lukas staff 659119 28 Apr 13:20 compact_monitor_1_1777371622003.mp4
-rw-r--r-- 1 lukas staff 659119 28 Apr 13:25 compact_monitor_1_1777371936310.mp4
-rw-r--r-- 1 lukas staff 658119 28 Apr 13:30 compact_monitor_1_1777372250913.mp4
-rw-r--r-- 1 lukas staff 659869 28 Apr 13:36 compact_monitor_1_1777372563723.mp4
-rw-r--r-- 1 lukas staff 658619 28 Apr 13:41 compact_monitor_1_1777372878952.mp4
-rw-r--r-- 1 lukas staff 658119 28 Apr 13:46 compact_monitor_1_1777373192385.mp4
-rw-r--r-- 1 lukas staff 658119 28 Apr 13:51 compact_monitor_1_1777373505576.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 13:56 compact_monitor_1_1777373815249.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 14:02 compact_monitor_1_1777374129679.mp4
-rw-r--r-- 1 lukas staff 657869 28 Apr 14:07 compact_monitor_1_1777374442607.mp4
-rw-r--r-- 1 lukas staff 658619 28 Apr 14:12 compact_monitor_1_1777374754971.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 14:17 compact_monitor_1_1777375068922.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 14:23 compact_monitor_1_1777375395803.mp4
-rw-r--r-- 1 lukas staff 659619 28 Apr 14:28 compact_monitor_1_1777375713843.mp4
-rw-r--r-- 1 lukas staff 658869 28 Apr 14:33 compact_monitor_1_1777376032046.mp4
-rw-r--r-- 1 lukas staff 659494 28 Apr 14:39 compact_monitor_1_1777376346251.mp4
-rw-r--r-- 1 lukas staff 658744 28 Apr 14:44 compact_monitor_1_1777376655731.mp4
-rw-r--r-- 1 lukas staff 657619 28 Apr 14:49 compact_monitor_1_1777376965747.mp4
-rw-r--r-- 1 lukas staff 658869 28 Apr 14:54 compact_monitor_1_1777377278905.mp4
-rw-r--r-- 1 lukas staff 658869 28 Apr 15:00 compact_monitor_1_1777377599386.mp4
-rw-r--r-- 1 lukas staff 659494 28 Apr 15:05 compact_monitor_1_1777377913234.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 15:10 compact_monitor_1_1777378230148.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 15:15 compact_monitor_1_1777378546013.mp4
-rw-r--r-- 1 lukas staff 658994 28 Apr 15:21 compact_monitor_1_1777378863028.mp4
-rw-r--r-- 1 lukas staff 657619 28 Apr 15:26 compact_monitor_1_1777379181829.mp4
-rw-r--r-- 1 lukas staff 660244 28 Apr 15:31 compact_monitor_1_1777379498541.mp4
-rw-r--r-- 1 lukas staff 661370 28 Apr 15:36 compact_monitor_1_1777379816522.mp4
-rw-r--r-- 1 lukas staff 657994 28 Apr 15:42 compact_monitor_1_1777380132952.mp4
-rw-r--r-- 1 lukas staff 658494 28 Apr 15:47 compact_monitor_1_1777380451138.mp4
-rw-r--r-- 1 lukas staff 658119 28 Apr 15:52 compact_monitor_1_1777380769459.mp4
-rw-r--r-- 1 lukas staff 658869 28 Apr 15:58 compact_monitor_1_1777381085241.mp4
-rw-r--r-- 1 lukas staff 660245 28 Apr 16:03 compact_monitor_1_1777381399658.mp4
-rw-r--r-- 1 lukas staff 661870 28 Apr 16:08 compact_monitor_1_1777381716781.mp4
-rw-r--r-- 1 lukas staff 661620 28 Apr 16:13 compact_monitor_1_1777382034411.mp4
-rw-r--r-- 1 lukas staff 661118 28 Apr 16:19 compact_monitor_1_1777382351932.mp4
-rw-r--r-- 1 lukas staff 659369 28 Apr 16:24 compact_monitor_1_1777382669035.mp4
-rw-r--r-- 1 lukas staff 659119 28 Apr 16:29 compact_monitor_1_1777382983556.mp4
-rw-r--r-- 1 lukas staff 657869 28 Apr 16:34 compact_monitor_1_1777383297132.mp4
-rw-r--r-- 1 lukas staff 606367 28 Apr 16:40 compact_monitor_1_1777383609588.mp4
-rw-r--r-- 1 lukas staff 397068 28 Apr 17:01 compact_monitor_1_1777384874970.mp4
-rw-r--r-- 1 lukas staff 1592462 28 Apr 17:06 compact_monitor_1_1777385198571.mp4
-rw-r--r-- 1 lukas staff 1327809 28 Apr 17:12 compact_monitor_1_1777385523980.mp4
-rw-r--r-- 1 lukas staff 2262498 28 Apr 17:17 compact_monitor_1_1777385864559.mp4
-rw-r--r-- 1 lukas staff 1702453 28 Apr 17:23 compact_monitor_1_1777386198870.mp4
-rw-r--r-- 1 lukas staff 2034287 28 Apr 17:29 compact_monitor_1_1777386532344.mp4
-rw-r--r-- 1 lukas staff 1352893 28 Apr 17:34 compact_monitor_1_1777386875277.mp4
-rw-r--r-- 1 lukas staff 1873946 28 Apr 17:40 compact_monitor_1_1777387208685.mp4
-rw-r--r-- 1 lukas staff 1155463 28 Apr 17:45 compact_monitor_1_1777387548798.mp4
-rw-r--r-- 1 lukas staff 1428159 28 Apr 17:51 compact_monitor_1_1777387882691.mp4
-rw-r--r-- 1 lukas staff 1398484 28 Apr 17:56 compact_monitor_1_1777388213861.mp4
-rw-r--r-- 1 lukas staff 1688438 28 Apr 18:02 compact_monitor_1_1777388542869.mp4
-rw-r--r-- 1 lukas staff 2401161 28 Apr 18:07 compact_monitor_1_1777388869470.mp4
-rw-r--r-- 1 lukas staff 1283247 28 Apr 18:13 compact_monitor_1_1777389192202.mp4
-rw-r--r-- 1 lukas staff 1398160 28 Apr 18:18 compact_monitor_1_1777389525394.mp4
-rw-r--r-- 1 lukas staff 452906 28 Apr 18:24 compact_monitor_1_1777389856559.mp4
-rw-r--r-- 1 lukas staff 566518 28 Apr 18:29 compact_monitor_1_1777390191054.mp4
-rw-r--r-- 1 lukas staff 445894 28 Apr 18:35 compact_monitor_1_1777390513567.mp4
-rw-r--r-- 1 lukas staff 444044 28 Apr 18:40 compact_monitor_1_1777390841877.mp4
-rw-r--r-- 1 lukas staff 437853 28 Apr 18:46 compact_monitor_1_1777391162552.mp4
-rw-r--r-- 1 lukas staff 441008 28 Apr 18:51 compact_monitor_1_1777391489107.mp4
-rw-r--r-- 1 lukas staff 443934 28 Apr 18:57 compact_monitor_1_1777391823165.mp4
-rw-r--r-- 1 lukas staff 443624 28 Apr 19:02 compact_monitor_1_1777392146221.mp4
-rw-r--r-- 1 lukas staff 447164 28 Apr 19:07 compact_monitor_1_1777392469679.mp4
-rw-r--r-- 1 lukas staff 442431 28 Apr 19:13 compact_monitor_1_1777392792794.mp4
-rw-r--r-- 1 lukas staff 436805 28 Apr 19:18 compact_monitor_1_1777393109301.mp4
-rw-r--r-- 1 lukas staff 435633 28 Apr 19:23 compact_monitor_1_1777393423192.mp4
-rw-r--r-- 1 lukas staff 1162510 28 Apr 09:30 compact_monitor_2_1777357806702.mp4
-rw-r--r-- 1 lukas staff 3394878 28 Apr 09:35 compact_monitor_2_1777358126186.mp4
-rw-r--r-- 1 lukas staff 268044 28 Apr 09:40 compact_monitor_2_1777358443280.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 09:46 compact_monitor_2_1777358769231.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 09:51 compact_monitor_2_1777359084493.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 09:56 compact_monitor_2_1777359399758.mp4
-rw-r--r-- 1 lukas staff 266694 28 Apr 10:01 compact_monitor_2_1777359707884.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 10:06 compact_monitor_2_1777360016892.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 10:12 compact_monitor_2_1777360329199.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 10:17 compact_monitor_2_1777360641498.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 10:22 compact_monitor_2_1777360953971.mp4
-rw-r--r-- 1 lukas staff 267099 28 Apr 10:27 compact_monitor_2_1777361264266.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 10:33 compact_monitor_2_1777361583211.mp4
-rw-r--r-- 1 lukas staff 266829 28 Apr 10:38 compact_monitor_2_1777361903545.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 10:43 compact_monitor_2_1777362219032.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 10:48 compact_monitor_2_1777362532674.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 10:54 compact_monitor_2_1777362845950.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 10:59 compact_monitor_2_1777363157577.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 11:04 compact_monitor_2_1777363473776.mp4
-rw-r--r-- 1 lukas staff 267099 28 Apr 11:09 compact_monitor_2_1777363782342.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 11:14 compact_monitor_2_1777364092822.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 11:20 compact_monitor_2_1777364400840.mp4
-rw-r--r-- 1 lukas staff 266694 28 Apr 11:25 compact_monitor_2_1777364709144.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 11:30 compact_monitor_2_1777365022090.mp4
-rw-r--r-- 1 lukas staff 264669 28 Apr 11:35 compact_monitor_2_1777365335928.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 11:40 compact_monitor_2_1777365649137.mp4
-rw-r--r-- 1 lukas staff 266964 28 Apr 11:46 compact_monitor_2_1777365962619.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 11:51 compact_monitor_2_1777366273740.mp4
-rw-r--r-- 1 lukas staff 265209 28 Apr 11:56 compact_monitor_2_1777366582034.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 12:01 compact_monitor_2_1777366886631.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 12:06 compact_monitor_2_1777367202805.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 12:11 compact_monitor_2_1777367518861.mp4
-rw-r--r-- 1 lukas staff 269261 28 Apr 12:17 compact_monitor_2_1777367837441.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 12:22 compact_monitor_2_1777368160952.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 12:28 compact_monitor_2_1777368477571.mp4
-rw-r--r-- 1 lukas staff 267234 28 Apr 12:33 compact_monitor_2_1777368792600.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 12:38 compact_monitor_2_1777369107069.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 12:43 compact_monitor_2_1777369421530.mp4
-rw-r--r-- 1 lukas staff 266829 28 Apr 12:48 compact_monitor_2_1777369731189.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 12:54 compact_monitor_2_1777370048214.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 12:59 compact_monitor_2_1777370363567.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 13:04 compact_monitor_2_1777370679314.mp4
-rw-r--r-- 1 lukas staff 268855 28 Apr 13:09 compact_monitor_2_1777370994284.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 13:15 compact_monitor_2_1777371309064.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 13:20 compact_monitor_2_1777371623643.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 13:25 compact_monitor_2_1777371938006.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 13:30 compact_monitor_2_1777372252120.mp4
-rw-r--r-- 1 lukas staff 266964 28 Apr 13:36 compact_monitor_2_1777372566394.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 13:41 compact_monitor_2_1777372880197.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 13:46 compact_monitor_2_1777373193667.mp4
-rw-r--r-- 1 lukas staff 265209 28 Apr 13:51 compact_monitor_2_1777373506832.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 13:56 compact_monitor_2_1777373816197.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 14:02 compact_monitor_2_1777374130774.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 14:07 compact_monitor_2_1777374443527.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 14:12 compact_monitor_2_1777374756405.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 14:17 compact_monitor_2_1777375070551.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 14:23 compact_monitor_2_1777375397987.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 14:28 compact_monitor_2_1777375715930.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 14:33 compact_monitor_2_1777376034152.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 14:39 compact_monitor_2_1777376348246.mp4
-rw-r--r-- 1 lukas staff 266019 28 Apr 14:44 compact_monitor_2_1777376657026.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 14:49 compact_monitor_2_1777376966683.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 14:54 compact_monitor_2_1777377280571.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:00 compact_monitor_2_1777377602616.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:05 compact_monitor_2_1777377915467.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 15:10 compact_monitor_2_1777378232424.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 15:15 compact_monitor_2_1777378547117.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:21 compact_monitor_2_1777378865359.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 15:26 compact_monitor_2_1777379183376.mp4
-rw-r--r-- 1 lukas staff 267774 28 Apr 15:31 compact_monitor_2_1777379502714.mp4
-rw-r--r-- 1 lukas staff 268046 28 Apr 15:37 compact_monitor_2_1777379819259.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 15:42 compact_monitor_2_1777380134674.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 15:47 compact_monitor_2_1777380454708.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 15:52 compact_monitor_2_1777380771150.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 15:58 compact_monitor_2_1777381086934.mp4
-rw-r--r-- 1 lukas staff 268044 28 Apr 16:03 compact_monitor_2_1777381401816.mp4
-rw-r--r-- 1 lukas staff 269530 28 Apr 16:08 compact_monitor_2_1777381720100.mp4
-rw-r--r-- 1 lukas staff 268721 28 Apr 16:13 compact_monitor_2_1777382037168.mp4
-rw-r--r-- 1 lukas staff 268583 28 Apr 16:19 compact_monitor_2_1777382355014.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 16:24 compact_monitor_2_1777382670965.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 16:29 compact_monitor_2_1777382984987.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 16:34 compact_monitor_2_1777383298084.mp4
-rw-r--r-- 1 lukas staff 236209 28 Apr 16:40 compact_monitor_2_1777383610070.mp4
-rw-r--r-- 1 lukas staff 1191690 28 Apr 17:01 compact_monitor_2_1777384877981.mp4
-rw-r--r-- 1 lukas staff 2975861 28 Apr 17:06 compact_monitor_2_1777385201736.mp4
-rw-r--r-- 1 lukas staff 5319560 28 Apr 17:12 compact_monitor_2_1777385529432.mp4
-rw-r--r-- 1 lukas staff 3006284 28 Apr 17:18 compact_monitor_2_1777385870812.mp4
-rw-r--r-- 1 lukas staff 2726877 28 Apr 17:23 compact_monitor_2_1777386204715.mp4
-rw-r--r-- 1 lukas staff 3315722 28 Apr 17:29 compact_monitor_2_1777386541280.mp4
-rw-r--r-- 1 lukas staff 1577465 28 Apr 17:34 compact_monitor_2_1777386883461.mp4
-rw-r--r-- 1 lukas staff 1745214 28 Apr 17:40 compact_monitor_2_1777387214543.mp4
-rw-r--r-- 1 lukas staff 950993 28 Apr 17:45 compact_monitor_2_1777387552842.mp4
-rw-r--r-- 1 lukas staff 429007 28 Apr 17:51 compact_monitor_2_1777387889075.mp4
-rw-r--r-- 1 lukas staff 884099 28 Apr 17:57 compact_monitor_2_1777388218623.mp4
-rw-r--r-- 1 lukas staff 2352504 28 Apr 18:02 compact_monitor_2_1777388548021.mp4
-rw-r--r-- 1 lukas staff 3298542 28 Apr 18:07 compact_monitor_2_1777388874095.mp4
-rw-r--r-- 1 lukas staff 2143027 28 Apr 18:13 compact_monitor_2_1777389196097.mp4
-rw-r--r-- 1 lukas staff 2448311 28 Apr 18:18 compact_monitor_2_1777389532297.mp4
-rw-r--r-- 1 lukas staff 2780051 28 Apr 18:24 compact_monitor_2_1777389861076.mp4
-rw-r--r-- 1 lukas staff 2715534 28 Apr 18:29 compact_monitor_2_1777390193677.mp4
-rw-r--r-- 1 lukas staff 2102173 28 Apr 18:35 compact_monitor_2_1777390515997.mp4
-rw-r--r-- 1 lukas staff 2324557 28 Apr 18:40 compact_monitor_2_1777390843577.mp4
-rw-r--r-- 1 lukas staff 1525510 28 Apr 18:46 compact_monitor_2_1777391163945.mp4
-rw-r--r-- 1 lukas staff 2776584 28 Apr 18:51 compact_monitor_2_1777391495138.mp4
-rw-r--r-- 1 lukas staff 1168205 28 Apr 18:57 compact_monitor_2_1777391825305.mp4
-rw-r--r-- 1 lukas staff 1736686 28 Apr 19:02 compact_monitor_2_1777392149583.mp4
-rw-r--r-- 1 lukas staff 2133415 28 Apr 19:07 compact_monitor_2_1777392471754.mp4
-rw-r--r-- 1 lukas staff 1289951 28 Apr 19:13 compact_monitor_2_1777392794343.mp4
-rw-r--r-- 1 lukas staff 223494 28 Apr 19:18 compact_monitor_2_1777393110228.mp4
-rw-r--r-- 1 lukas staff 222168 28 Apr 19:23 compact_monitor_2_1777393424109.mp4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-28 $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 22523176
drwxr-xr-x 30 lukas staff 960 28 Apr 09:18 .
drwx------+ 93 lukas staff 2976 28 Apr 16:51 ..
-rw-r--r--@ 1 lukas staff 8196 26 Apr 17:14 .DS_Store
drwxr-xr-x 3 lukas staff 96 26 Apr 19:23 .claude
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 167 lukas staff 5344 18 Apr 14:45 data
-rw-r--r--@ 1 lukas staff 11525263360 28 Apr 19:33 db.sqlite
-rw-r--r-- 1 lukas staff 65536 28 Apr 15:26 db.sqlite-shm
-rw-r--r-- 1 lukas staff 2323712 28 Apr 22:23 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 208424 17 Apr 21:06 screenpipe.2026-04-17.0.log
-rw-r--r-- 1 lukas staff 61983 18 Apr 14:45 screenpipe.2026-04-18.0.log
-rw-r--r-- 1 lukas staff 359800 20 Apr 18:52 screenpipe.2026-04-20.0.log
-rw-r--r-- 1 lukas staff 683671 21 Apr 20:18 screenpipe.2026-04-21.0.log
-rw-r--r-- 1 lukas staff 284763 22 Apr 19:10 screenpipe.2026-04-22.0.log
-rw-r--r-- 1 lukas staff 176386 23 Apr 14:01 screenpipe.2026-04-23.0.log
-rw-r--r-- 1 lukas staff 276189 24 Apr 22:35 screenpipe.2026-04-24.0.log
-rw-r--r-- 1 lukas staff 68794 25 Apr 19:40 screenpipe.2026-04-25.0.log
-rw-r--r-- 1 lukas staff 75543 26 Apr 22:56 screenpipe.2026-04-26.0.log
-rw-r--r-- 1 lukas staff 607811 27 Apr 20:42 screenpipe.2026-04-27.0.log
-rw-r--r-- 1 lukas staff 396094 28 Apr 22:23 screenpipe.2026-04-28.0.log
-rwxr-xr-x@ 1 lukas staff 14994 25 Apr 18:50 screenpipe_sync.sh
-rw-r--r--@ 1 lukas staff 34227 26 Apr 17:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-27
[2026-05-06 18:58:18] ========================================
[2026-05-06 18:58:18] Screenpipe sync starting for: 2026-04-27
[2026-05-06 18:58:18] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (7.7G)
Data dir: OK (242 files, 325M)
[+00m04s] ▶ Counting source rows for 2026-04-27
frames: 7543
elements: 470235
ui_events: 9909
ocr_text: 2193
meetings: 3
[+00m06s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m07s] ▶ Syncing data for 2026-04-27
video_chunks ✓ 0m11s
frames (7543 rows) ⠧ Runtime error near line 3: disk I/O error (10)
frames (7543 rows) ⠴ %
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-27
[2026-05-06 19:22:16] ========================================
[2026-05-06 19:22:16] Screenpipe sync starting for: 2026-04-27
[2026-05-06 19:22:16] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (7.7G)
Data dir: OK (242 files, 325M)
[+00m01s] ▶ Counting source rows for 2026-04-27
frames: 7543
elements: 470235
ui_events: 9909
ocr_text: 2193
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m03s] ▶ Syncing data for 2026-04-27
video_chunks ✓ 0m11s
frames (7543 rows) ✓ 4m40s
ocr_text (2193 rows) ✓ 0m25s
ui_events (9909 rows) ✓ 0m02s
elements (470235 rows) ✓ 2m46s
meetings (3 rows) ✓ 0m00s
[+08m07s] ▶ Updating FTS indexes
elements_fts ✓ 2m59s
frames_fts ✓ 6m07s
ui_events_fts ✓ 0m03s
[+17m16s] ▶ Verifying DB
frames: 7543 / 7543 ✓
elements: 470235 / 470235 ✓
ui_events: 9909 / 9909 ✓
ocr_text: 2193 / 2193 ✓
meetings: 3 / 3 ✓
[+18m46s] ▶ Copying data folder for 2026-04-27
rsync 2026-04-27/ → NAS ✓ 0m26s (242 files, 325M)
[2026-05-06 19:41:28] Archive DB size: 9.7G
[2026-05-06 19:41:28] Total time: 19m12s
[2026-05-06 19:41:28] Sync complete for 2026-04-27
[2026-05-06 19:41:28] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-28
[2026-05-06 19:44:49] ========================================
[2026-05-06 19:44:49] Screenpipe sync starting for: 2026-04-28
[2026-05-06 19:44:49] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (9.7G)
Data dir: OK (223 files, 159M)
[+00m00s] ▶ Counting source rows for 2026-04-28
frames: 4535
elements: 407532
ui_events: 8621
ocr_text: 1623
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m00s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-04-28
video_chunks ✓ 0m12s
frames (4535 rows) ✓ 1m30s
ocr_text (1623 rows) ✓ 0m32s
ui_events (8621 rows) ✓ 0m01s
elements (407532 rows) ✓ 1m02s
meetings (3 rows) ✓ 0m00s
[+03m19s] ▶ Updating FTS indexes
elements_fts ✓ 1m36s
frames_fts ✓ 2m28s
ui_events_fts ✓ 0m04s
[+07m27s] ▶ Verifying DB
frames: 4535 / 4535 ✓
elements: 407532 / 407532 ✓
ui_events: 8621 / 8621 ✓
ocr_text: 1623 / 1623 ✓
meetings: 3 / 3 ✓
[+08m59s] ▶ Copying data folder for 2026-04-28
rsync 2026-04-28/ → NAS ✓ 0m20s (223 files, 159M)
[2026-05-06 19:54:08] Archive DB size: 10G
[2026-05-06 19:54:08] Total time: 9m19s
[2026-05-06 19:54:08] Sync complete for 2026-04-28
[2026-05-06 19:54:08] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cat screenpipe_sync.sh
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ pkill -f screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm -rf ~/.screenpipe/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 0
drwxr-xr-x 2 lukas staff 64 6 May 20:22 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd .npm
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ ll
total 24
drwx------ 9 lukas staff 288 28 Apr 09:18 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
drwx------ 5 lukas staff 160 1 Nov 2021 _cacache
drwx------@ 2 lukas staff 64 28 Apr 09:18 _locks
drwx------ 15 lukas staff 480 27 Apr 19:54 _logs
drwxr-xr-x 67 lukas staff 2144 28 Apr 09:17 _npx
-rw-r--r--@ 1 lukas staff 0 26 Apr 19:10 _update-notifier-last-checked
-rw-r--r-- 1 lukas staff 173 28 Apr 09:18 anonymous-cli-metrics.json
-rw-r--r-- 1 lukas staff 4764 31 Jan 2024 eresolve-report.txt
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ rm -rf ~/.npm/_npx
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 52920
drwx------+ 92 lukas staff 2944 6 May 20:22 .
drwxr-xr-x 5 root admin 160 23 Aug 2024 ..
-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding
-rw-r--r--@ 1 lukas staff 28676 27 Apr 09:11 .DS_Store
drwx------+ 10 lukas staff 320 28 Apr 17:07 .Trash
drwx------ 5 lukas staff 160 1 Nov 2021 .aws
-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json
-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history
-rw-r--r--@ 1 lukas staff 115 18 Apr 13:19 .bashrc
drwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito
drwx------@ 6 lukas staff 192 9 Apr 19:53 .cache
drwxr-xr-x 20 lukas staff 640 27 Apr 08:58 .claude
-rw------- 1 lukas staff 28647 27 Apr 09:12 .claude.json
drwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium
drwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer
drwx------ 16 lukas staff 512 21 May 2025 .config
drwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue
drwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot
drwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor
drwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor
drwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona
drwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb
drwx------ 24 lukas staff 768 27 Apr 18:14 .docker
drwx------ 15 lukas staff 480 6 Jun 2023 .dropbox
drwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak
-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth
-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig
-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp
drwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon
drwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc
-rw------- 1 lukas staff 20 28 Apr 16:51 .lesshst
drwx------ 5 lukas staff 160 23 Dec 2024 .local
-rw------- 1 lukas staff 204 16 Mar 2024 .netrc
drwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp
-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history
-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer
drwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py
drwx------ 8 lukas staff 256 6 May 20:24 .npm
-rw------- 1 lukas staff 74 20 May 2024 .npmrc
drwx------ 32 lukas staff 1024 25 Jul 2025 .nvm
drwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman
-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile
-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history
drwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode
drwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight
drwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint
drwx------ 15 lukas staff 480 8 Aug 2025 .ssh
drwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit
drwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm
-rw------- 1 lukas staff 12143 27 Apr 14:58 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm
drwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf
drwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn
-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc
-rw-r--r-- 1 lukas staff 49518 21 Apr 09:09 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 2025 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 6116 20 Apr 19:52 .zprofile
-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy
-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave
-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save
-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees
-rw------- 1 lukas staff 50310 28 Apr 11:32 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 400 18 Apr 13:19 .zshrc
drwx------@ 9 lukas staff 288 20 Apr 20:55 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 2025 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 2025 DEV
drwx------@ 10 lukas staff 320 28 Apr 18:52 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 44 lukas staff 1408 24 Apr 16:53 Downloads
drwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen
drwx------@ 112 lukas staff 3584 2 Dec 09:19 Library
drwx------ 7 lukas staff 224 12 Feb 2024 Movies
drwx------+ 5 lukas staff 160 25 Sep 2023 Music
drwx------+ 9 lukas staff 288 25 Sep 2023 Pictures
drwx------ 3 lukas staff 96 8 Nov 2021 Postman
drwx------+ 4 lukas staff 128 28 Oct 2021 Public
-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf
drwx------ 4 lukas staff 128 2 Jul 2023 Users
-rw-r--r-- 1 lukas staff 17050804 27 Apr 19:18 cleanshot-live.log
-rw-r--r-- 1 lukas staff 9363061 27 Apr 19:24 cleanshot-screenpipe.log
-rw-r--r-- 1 lukas staff 0 12 Apr 12:50 clip.mp4
-rw-r--r-- 1 lukas staff 0 12 Apr 12:51 frame.jpg
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 2025 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 2025 raycast
-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin
-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh
-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd ~/.screenpipe
cd: no such file or directory: /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ npx screenpipe@latest record --ignored-windows "Boosteroid" --retention-days 7
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-06T20:27:32.721416Z INFO screenpipe_engine::auth_key: api auth: key resolved via auto-generated
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-05-06T20:27:32.831033Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-06T20:27:34.088403Z INFO scree...
|
iTerm2
|
screenpipe"
|
NULL
|
1
|
|
2
|
-rw-r--r-- 1 lukas staff 658369 28 Apr 10:48 -rw-r--r-- 1 lukas staff 658369 28 Apr 10:48 compact_monitor_1_1777362531562.mp4
-rw-r--r-- 1 lukas staff 658744 28 Apr 10:54 compact_monitor_1_1777362844570.mp4
-rw-r--r-- 1 lukas staff 658494 28 Apr 10:59 compact_monitor_1_1777363156173.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 11:04 compact_monitor_1_1777363471960.mp4
-rw-r--r-- 1 lukas staff 659244 28 Apr 11:09 compact_monitor_1_1777363780754.mp4
-rw-r--r-- 1 lukas staff 658119 28 Apr 11:14 compact_monitor_1_1777364091631.mp4
-rw-r--r-- 1 lukas staff 657619 28 Apr 11:20 compact_monitor_1_1777364399949.mp4
-rw-r--r-- 1 lukas staff 658994 28 Apr 11:25 compact_monitor_1_1777364707696.mp4
-rw-r--r-- 1 lukas staff 657619 28 Apr 11:30 compact_monitor_1_1777365021138.mp4
-rw-r--r-- 1 lukas staff 657494 28 Apr 11:35 compact_monitor_1_1777365334863.mp4
-rw-r--r-- 1 lukas staff 658744 28 Apr 11:40 compact_monitor_1_1777365647363.mp4
-rw-r--r-- 1 lukas staff 659619 28 Apr 11:46 compact_monitor_1_1777365960793.mp4
-rw-r--r-- 1 lukas staff 658369 28 Apr 11:51 compact_monitor_1_1777366272670.mp4
-rw-r--r-- 1 lukas staff 657869 28 Apr 11:56 compact_monitor_1_1777366581087.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 12:01 compact_monitor_1_1777366885670.mp4
-rw-r--r-- 1 lukas staff 657619 28 Apr 12:06 compact_monitor_1_1777367201821.mp4
-rw-r--r-- 1 lukas staff 657994 28 Apr 12:11 compact_monitor_1_1777367517013.mp4
-rw-r--r-- 1 lukas staff 661994 28 Apr 12:17 compact_monitor_1_1777367833288.mp4
-rw-r--r-- 1 lukas staff 658869 28 Apr 12:22 compact_monitor_1_1777368158856.mp4
-rw-r--r-- 1 lukas staff 657619 28 Apr 12:27 compact_monitor_1_1777368475271.mp4
-rw-r--r-- 1 lukas staff 659994 28 Apr 12:33 compact_monitor_1_1777368789494.mp4
-rw-r--r-- 1 lukas staff 658744 28 Apr 12:38 compact_monitor_1_1777369105746.mp4
-rw-r--r-- 1 lukas staff 658244 28 Apr 12:43 compact_monitor_1_1777369420420.mp4
-rw-r--r-- 1 lukas staff 659244 28 Apr 12:48 compact_monitor_1_1777369728628.mp4
-rw-r--r-- 1 lukas staff 657619 28 Apr 12:54 compact_monitor_1_1777370046041.mp4
-rw-r--r-- 1 lukas staff 657869 28 Apr 12:59 compact_monitor_1_1777370361638.mp4
-rw-r--r-- 1 lukas staff 658994 28 Apr 13:04 compact_monitor_1_1777370677661.mp4
-rw-r--r-- 1 lukas staff 660995 28 Apr 13:09 compact_monitor_1_1777370991662.mp4
-rw-r--r-- 1 lukas staff 658619 28 Apr 13:15 compact_monitor_1_1777371307758.mp4
-rw-r--r-- 1 lukas staff 659119 28 Apr 13:20 compact_monitor_1_1777371622003.mp4
-rw-r--r-- 1 lukas staff 659119 28 Apr 13:25 compact_monitor_1_1777371936310.mp4
-rw-r--r-- 1 lukas staff 658119 28 Apr 13:30 compact_monitor_1_1777372250913.mp4
-rw-r--r-- 1 lukas staff 659869 28 Apr 13:36 compact_monitor_1_1777372563723.mp4
-rw-r--r-- 1 lukas staff 658619 28 Apr 13:41 compact_monitor_1_1777372878952.mp4
-rw-r--r-- 1 lukas staff 658119 28 Apr 13:46 compact_monitor_1_1777373192385.mp4
-rw-r--r-- 1 lukas staff 658119 28 Apr 13:51 compact_monitor_1_1777373505576.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 13:56 compact_monitor_1_1777373815249.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 14:02 compact_monitor_1_1777374129679.mp4
-rw-r--r-- 1 lukas staff 657869 28 Apr 14:07 compact_monitor_1_1777374442607.mp4
-rw-r--r-- 1 lukas staff 658619 28 Apr 14:12 compact_monitor_1_1777374754971.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 14:17 compact_monitor_1_1777375068922.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 14:23 compact_monitor_1_1777375395803.mp4
-rw-r--r-- 1 lukas staff 659619 28 Apr 14:28 compact_monitor_1_1777375713843.mp4
-rw-r--r-- 1 lukas staff 658869 28 Apr 14:33 compact_monitor_1_1777376032046.mp4
-rw-r--r-- 1 lukas staff 659494 28 Apr 14:39 compact_monitor_1_1777376346251.mp4
-rw-r--r-- 1 lukas staff 658744 28 Apr 14:44 compact_monitor_1_1777376655731.mp4
-rw-r--r-- 1 lukas staff 657619 28 Apr 14:49 compact_monitor_1_1777376965747.mp4
-rw-r--r-- 1 lukas staff 658869 28 Apr 14:54 compact_monitor_1_1777377278905.mp4
-rw-r--r-- 1 lukas staff 658869 28 Apr 15:00 compact_monitor_1_1777377599386.mp4
-rw-r--r-- 1 lukas staff 659494 28 Apr 15:05 compact_monitor_1_1777377913234.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 15:10 compact_monitor_1_1777378230148.mp4
-rw-r--r-- 1 lukas staff 657744 28 Apr 15:15 compact_monitor_1_1777378546013.mp4
-rw-r--r-- 1 lukas staff 658994 28 Apr 15:21 compact_monitor_1_1777378863028.mp4
-rw-r--r-- 1 lukas staff 657619 28 Apr 15:26 compact_monitor_1_1777379181829.mp4
-rw-r--r-- 1 lukas staff 660244 28 Apr 15:31 compact_monitor_1_1777379498541.mp4
-rw-r--r-- 1 lukas staff 661370 28 Apr 15:36 compact_monitor_1_1777379816522.mp4
-rw-r--r-- 1 lukas staff 657994 28 Apr 15:42 compact_monitor_1_1777380132952.mp4
-rw-r--r-- 1 lukas staff 658494 28 Apr 15:47 compact_monitor_1_1777380451138.mp4
-rw-r--r-- 1 lukas staff 658119 28 Apr 15:52 compact_monitor_1_1777380769459.mp4
-rw-r--r-- 1 lukas staff 658869 28 Apr 15:58 compact_monitor_1_1777381085241.mp4
-rw-r--r-- 1 lukas staff 660245 28 Apr 16:03 compact_monitor_1_1777381399658.mp4
-rw-r--r-- 1 lukas staff 661870 28 Apr 16:08 compact_monitor_1_1777381716781.mp4
-rw-r--r-- 1 lukas staff 661620 28 Apr 16:13 compact_monitor_1_1777382034411.mp4
-rw-r--r-- 1 lukas staff 661118 28 Apr 16:19 compact_monitor_1_1777382351932.mp4
-rw-r--r-- 1 lukas staff 659369 28 Apr 16:24 compact_monitor_1_1777382669035.mp4
-rw-r--r-- 1 lukas staff 659119 28 Apr 16:29 compact_monitor_1_1777382983556.mp4
-rw-r--r-- 1 lukas staff 657869 28 Apr 16:34 compact_monitor_1_1777383297132.mp4
-rw-r--r-- 1 lukas staff 606367 28 Apr 16:40 compact_monitor_1_1777383609588.mp4
-rw-r--r-- 1 lukas staff 397068 28 Apr 17:01 compact_monitor_1_1777384874970.mp4
-rw-r--r-- 1 lukas staff 1592462 28 Apr 17:06 compact_monitor_1_1777385198571.mp4
-rw-r--r-- 1 lukas staff 1327809 28 Apr 17:12 compact_monitor_1_1777385523980.mp4
-rw-r--r-- 1 lukas staff 2262498 28 Apr 17:17 compact_monitor_1_1777385864559.mp4
-rw-r--r-- 1 lukas staff 1702453 28 Apr 17:23 compact_monitor_1_1777386198870.mp4
-rw-r--r-- 1 lukas staff 2034287 28 Apr 17:29 compact_monitor_1_1777386532344.mp4
-rw-r--r-- 1 lukas staff 1352893 28 Apr 17:34 compact_monitor_1_1777386875277.mp4
-rw-r--r-- 1 lukas staff 1873946 28 Apr 17:40 compact_monitor_1_1777387208685.mp4
-rw-r--r-- 1 lukas staff 1155463 28 Apr 17:45 compact_monitor_1_1777387548798.mp4
-rw-r--r-- 1 lukas staff 1428159 28 Apr 17:51 compact_monitor_1_1777387882691.mp4
-rw-r--r-- 1 lukas staff 1398484 28 Apr 17:56 compact_monitor_1_1777388213861.mp4
-rw-r--r-- 1 lukas staff 1688438 28 Apr 18:02 compact_monitor_1_1777388542869.mp4
-rw-r--r-- 1 lukas staff 2401161 28 Apr 18:07 compact_monitor_1_1777388869470.mp4
-rw-r--r-- 1 lukas staff 1283247 28 Apr 18:13 compact_monitor_1_1777389192202.mp4
-rw-r--r-- 1 lukas staff 1398160 28 Apr 18:18 compact_monitor_1_1777389525394.mp4
-rw-r--r-- 1 lukas staff 452906 28 Apr 18:24 compact_monitor_1_1777389856559.mp4
-rw-r--r-- 1 lukas staff 566518 28 Apr 18:29 compact_monitor_1_1777390191054.mp4
-rw-r--r-- 1 lukas staff 445894 28 Apr 18:35 compact_monitor_1_1777390513567.mp4
-rw-r--r-- 1 lukas staff 444044 28 Apr 18:40 compact_monitor_1_1777390841877.mp4
-rw-r--r-- 1 lukas staff 437853 28 Apr 18:46 compact_monitor_1_1777391162552.mp4
-rw-r--r-- 1 lukas staff 441008 28 Apr 18:51 compact_monitor_1_1777391489107.mp4
-rw-r--r-- 1 lukas staff 443934 28 Apr 18:57 compact_monitor_1_1777391823165.mp4
-rw-r--r-- 1 lukas staff 443624 28 Apr 19:02 compact_monitor_1_1777392146221.mp4
-rw-r--r-- 1 lukas staff 447164 28 Apr 19:07 compact_monitor_1_1777392469679.mp4
-rw-r--r-- 1 lukas staff 442431 28 Apr 19:13 compact_monitor_1_1777392792794.mp4
-rw-r--r-- 1 lukas staff 436805 28 Apr 19:18 compact_monitor_1_1777393109301.mp4
-rw-r--r-- 1 lukas staff 435633 28 Apr 19:23 compact_monitor_1_1777393423192.mp4
-rw-r--r-- 1 lukas staff 1162510 28 Apr 09:30 compact_monitor_2_1777357806702.mp4
-rw-r--r-- 1 lukas staff 3394878 28 Apr 09:35 compact_monitor_2_1777358126186.mp4
-rw-r--r-- 1 lukas staff 268044 28 Apr 09:40 compact_monitor_2_1777358443280.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 09:46 compact_monitor_2_1777358769231.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 09:51 compact_monitor_2_1777359084493.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 09:56 compact_monitor_2_1777359399758.mp4
-rw-r--r-- 1 lukas staff 266694 28 Apr 10:01 compact_monitor_2_1777359707884.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 10:06 compact_monitor_2_1777360016892.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 10:12 compact_monitor_2_1777360329199.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 10:17 compact_monitor_2_1777360641498.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 10:22 compact_monitor_2_1777360953971.mp4
-rw-r--r-- 1 lukas staff 267099 28 Apr 10:27 compact_monitor_2_1777361264266.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 10:33 compact_monitor_2_1777361583211.mp4
-rw-r--r-- 1 lukas staff 266829 28 Apr 10:38 compact_monitor_2_1777361903545.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 10:43 compact_monitor_2_1777362219032.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 10:48 compact_monitor_2_1777362532674.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 10:54 compact_monitor_2_1777362845950.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 10:59 compact_monitor_2_1777363157577.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 11:04 compact_monitor_2_1777363473776.mp4
-rw-r--r-- 1 lukas staff 267099 28 Apr 11:09 compact_monitor_2_1777363782342.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 11:14 compact_monitor_2_1777364092822.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 11:20 compact_monitor_2_1777364400840.mp4
-rw-r--r-- 1 lukas staff 266694 28 Apr 11:25 compact_monitor_2_1777364709144.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 11:30 compact_monitor_2_1777365022090.mp4
-rw-r--r-- 1 lukas staff 264669 28 Apr 11:35 compact_monitor_2_1777365335928.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 11:40 compact_monitor_2_1777365649137.mp4
-rw-r--r-- 1 lukas staff 266964 28 Apr 11:46 compact_monitor_2_1777365962619.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 11:51 compact_monitor_2_1777366273740.mp4
-rw-r--r-- 1 lukas staff 265209 28 Apr 11:56 compact_monitor_2_1777366582034.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 12:01 compact_monitor_2_1777366886631.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 12:06 compact_monitor_2_1777367202805.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 12:11 compact_monitor_2_1777367518861.mp4
-rw-r--r-- 1 lukas staff 269261 28 Apr 12:17 compact_monitor_2_1777367837441.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 12:22 compact_monitor_2_1777368160952.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 12:28 compact_monitor_2_1777368477571.mp4
-rw-r--r-- 1 lukas staff 267234 28 Apr 12:33 compact_monitor_2_1777368792600.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 12:38 compact_monitor_2_1777369107069.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 12:43 compact_monitor_2_1777369421530.mp4
-rw-r--r-- 1 lukas staff 266829 28 Apr 12:48 compact_monitor_2_1777369731189.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 12:54 compact_monitor_2_1777370048214.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 12:59 compact_monitor_2_1777370363567.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 13:04 compact_monitor_2_1777370679314.mp4
-rw-r--r-- 1 lukas staff 268855 28 Apr 13:09 compact_monitor_2_1777370994284.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 13:15 compact_monitor_2_1777371309064.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 13:20 compact_monitor_2_1777371623643.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 13:25 compact_monitor_2_1777371938006.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 13:30 compact_monitor_2_1777372252120.mp4
-rw-r--r-- 1 lukas staff 266964 28 Apr 13:36 compact_monitor_2_1777372566394.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 13:41 compact_monitor_2_1777372880197.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 13:46 compact_monitor_2_1777373193667.mp4
-rw-r--r-- 1 lukas staff 265209 28 Apr 13:51 compact_monitor_2_1777373506832.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 13:56 compact_monitor_2_1777373816197.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 14:02 compact_monitor_2_1777374130774.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 14:07 compact_monitor_2_1777374443527.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 14:12 compact_monitor_2_1777374756405.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 14:17 compact_monitor_2_1777375070551.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 14:23 compact_monitor_2_1777375397987.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 14:28 compact_monitor_2_1777375715930.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 14:33 compact_monitor_2_1777376034152.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 14:39 compact_monitor_2_1777376348246.mp4
-rw-r--r-- 1 lukas staff 266019 28 Apr 14:44 compact_monitor_2_1777376657026.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 14:49 compact_monitor_2_1777376966683.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 14:54 compact_monitor_2_1777377280571.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:00 compact_monitor_2_1777377602616.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:05 compact_monitor_2_1777377915467.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 15:10 compact_monitor_2_1777378232424.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 15:15 compact_monitor_2_1777378547117.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:21 compact_monitor_2_1777378865359.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 15:26 compact_monitor_2_1777379183376.mp4
-rw-r--r-- 1 lukas staff 267774 28 Apr 15:31 compact_monitor_2_1777379502714.mp4
-rw-r--r-- 1 lukas staff 268046 28 Apr 15:37 compact_monitor_2_1777379819259.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 15:42 compact_monitor_2_1777380134674.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 15:47 compact_monitor_2_1777380454708.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 15:52 compact_monitor_2_1777380771150.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 15:58 compact_monitor_2_1777381086934.mp4
-rw-r--r-- 1 lukas staff 268044 28 Apr 16:03 compact_monitor_2_1777381401816.mp4
-rw-r--r-- 1 lukas staff 269530 28 Apr 16:08 compact_monitor_2_1777381720100.mp4
-rw-r--r-- 1 lukas staff 268721 28 Apr 16:13 compact_monitor_2_1777382037168.mp4
-rw-r--r-- 1 lukas staff 268583 28 Apr 16:19 compact_monitor_2_1777382355014.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 16:24 compact_monitor_2_1777382670965.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 16:29 compact_monitor_2_1777382984987.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 16:34 compact_monitor_2_1777383298084.mp4
-rw-r--r-- 1 lukas staff 236209 28 Apr 16:40 compact_monitor_2_1777383610070.mp4
-rw-r--r-- 1 lukas staff 1191690 28 Apr 17:01 compact_monitor_2_1777384877981.mp4
-rw-r--r-- 1 lukas staff 2975861 28 Apr 17:06 compact_monitor_2_1777385201736.mp4
-rw-r--r-- 1 lukas staff 5319560 28 Apr 17:12 compact_monitor_2_1777385529432.mp4
-rw-r--r-- 1 lukas staff 3006284 28 Apr 17:18 compact_monitor_2_1777385870812.mp4
-rw-r--r-- 1 lukas staff 2726877 28 Apr 17:23 compact_monitor_2_1777386204715.mp4
-rw-r--r-- 1 lukas staff 3315722 28 Apr 17:29 compact_monitor_2_1777386541280.mp4
-rw-r--r-- 1 lukas staff 1577465 28 Apr 17:34 compact_monitor_2_1777386883461.mp4
-rw-r--r-- 1 lukas staff 1745214 28 Apr 17:40 compact_monitor_2_1777387214543.mp4
-rw-r--r-- 1 lukas staff 950993 28 Apr 17:45 compact_monitor_2_1777387552842.mp4
-rw-r--r-- 1 lukas staff 429007 28 Apr 17:51 compact_monitor_2_1777387889075.mp4
-rw-r--r-- 1 lukas staff 884099 28 Apr 17:57 compact_monitor_2_1777388218623.mp4
-rw-r--r-- 1 lukas staff 2352504 28 Apr 18:02 compact_monitor_2_1777388548021.mp4
-rw-r--r-- 1 lukas staff 3298542 28 Apr 18:07 compact_monitor_2_1777388874095.mp4
-rw-r--r-- 1 lukas staff 2143027 28 Apr 18:13 compact_monitor_2_1777389196097.mp4
-rw-r--r-- 1 lukas staff 2448311 28 Apr 18:18 compact_monitor_2_1777389532297.mp4
-rw-r--r-- 1 lukas staff 2780051 28 Apr 18:24 compact_monitor_2_1777389861076.mp4
-rw-r--r-- 1 lukas staff 2715534 28 Apr 18:29 compact_monitor_2_1777390193677.mp4
-rw-r--r-- 1 lukas staff 2102173 28 Apr 18:35 compact_monitor_2_1777390515997.mp4
-rw-r--r-- 1 lukas staff 2324557 28 Apr 18:40 compact_monitor_2_1777390843577.mp4
-rw-r--r-- 1 lukas staff 1525510 28 Apr 18:46 compact_monitor_2_1777391163945.mp4
-rw-r--r-- 1 lukas staff 2776584 28 Apr 18:51 compact_monitor_2_1777391495138.mp4
-rw-r--r-- 1 lukas staff 1168205 28 Apr 18:57 compact_monitor_2_1777391825305.mp4
-rw-r--r-- 1 lukas staff 1736686 28 Apr 19:02 compact_monitor_2_1777392149583.mp4
-rw-r--r-- 1 lukas staff 2133415 28 Apr 19:07 compact_monitor_2_1777392471754.mp4
-rw-r--r-- 1 lukas staff 1289951 28 Apr 19:13 compact_monitor_2_1777392794343.mp4
-rw-r--r-- 1 lukas staff 223494 28 Apr 19:18 compact_monitor_2_1777393110228.mp4
-rw-r--r-- 1 lukas staff 222168 28 Apr 19:23 compact_monitor_2_1777393424109.mp4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-28 $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 22523176
drwxr-xr-x 30 lukas staff 960 28 Apr 09:18 .
drwx------+ 93 lukas staff 2976 28 Apr 16:51 ..
-rw-r--r--@ 1 lukas staff 8196 26 Apr 17:14 .DS_Store
drwxr-xr-x 3 lukas staff 96 26 Apr 19:23 .claude
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 167 lukas staff 5344 18 Apr 14:45 data
-rw-r--r--@ 1 lukas staff 11525263360 28 Apr 19:33 db.sqlite
-rw-r--r-- 1 lukas staff 65536 28 Apr 15:26 db.sqlite-shm
-rw-r--r-- 1 lukas staff 2323712 28 Apr 22:23 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 208424 17 Apr 21:06 screenpipe.2026-04-17.0.log
-rw-r--r-- 1 lukas staff 61983 18 Apr 14:45 screenpipe.2026-04-18.0.log
-rw-r--r-- 1 lukas staff 359800 20 Apr 18:52 screenpipe.2026-04-20.0.log
-rw-r--r-- 1 lukas staff 683671 21 Apr 20:18 screenpipe.2026-04-21.0.log
-rw-r--r-- 1 lukas staff 284763 22 Apr 19:10 screenpipe.2026-04-22.0.log
-rw-r--r-- 1 lukas staff 176386 23 Apr 14:01 screenpipe.2026-04-23.0.log
-rw-r--r-- 1 lukas staff 276189 24 Apr 22:35 screenpipe.2026-04-24.0.log
-rw-r--r-- 1 lukas staff 68794 25 Apr 19:40 screenpipe.2026-04-25.0.log
-rw-r--r-- 1 lukas staff 75543 26 Apr 22:56 screenpipe.2026-04-26.0.log
-rw-r--r-- 1 lukas staff 607811 27 Apr 20:42 screenpipe.2026-04-27.0.log
-rw-r--r-- 1 lukas staff 396094 28 Apr 22:23 screenpipe.2026-04-28.0.log
-rwxr-xr-x@ 1 lukas staff 14994 25 Apr 18:50 screenpipe_sync.sh
-rw-r--r--@ 1 lukas staff 34227 26 Apr 17:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-27
[2026-05-06 18:58:18] ========================================
[2026-05-06 18:58:18] Screenpipe sync starting for: 2026-04-27
[2026-05-06 18:58:18] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (7.7G)
Data dir: OK (242 files, 325M)
[+00m04s] ▶ Counting source rows for 2026-04-27
frames: 7543
elements: 470235
ui_events: 9909
ocr_text: 2193
meetings: 3
[+00m06s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m07s] ▶ Syncing data for 2026-04-27
video_chunks ✓ 0m11s
frames (7543 rows) ⠧ Runtime error near line 3: disk I/O error (10)
frames (7543 rows) ⠴ %
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-27
[2026-05-06 19:22:16] ========================================
[2026-05-06 19:22:16] Screenpipe sync starting for: 2026-04-27
[2026-05-06 19:22:16] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (7.7G)
Data dir: OK (242 files, 325M)
[+00m01s] ▶ Counting source rows for 2026-04-27
frames: 7543
elements: 470235
ui_events: 9909
ocr_text: 2193
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m03s] ▶ Syncing data for 2026-04-27
video_chunks ✓ 0m11s
frames (7543 rows) ✓ 4m40s
ocr_text (2193 rows) ✓ 0m25s
ui_events (9909 rows) ✓ 0m02s
elements (470235 rows) ✓ 2m46s
meetings (3 rows) ✓ 0m00s
[+08m07s] ▶ Updating FTS indexes
elements_fts ✓ 2m59s
frames_fts ✓ 6m07s
ui_events_fts ✓ 0m03s
[+17m16s] ▶ Verifying DB
frames: 7543 / 7543 ✓
elements: 470235 / 470235 ✓
ui_events: 9909 / 9909 ✓
ocr_text: 2193 / 2193 ✓
meetings: 3 / 3 ✓
[+18m46s] ▶ Copying data folder for 2026-04-27
rsync 2026-04-27/ → NAS ✓ 0m26s (242 files, 325M)
[2026-05-06 19:41:28] Archive DB size: 9.7G
[2026-05-06 19:41:28] Total time: 19m12s
[2026-05-06 19:41:28] Sync complete for 2026-04-27
[2026-05-06 19:41:28] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-28
[2026-05-06 19:44:49] ========================================
[2026-05-06 19:44:49] Screenpipe sync starting for: 2026-04-28
[2026-05-06 19:44:49] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (9.7G)
Data dir: OK (223 files, 159M)
[+00m00s] ▶ Counting source rows for 2026-04-28
frames: 4535
elements: 407532
ui_events: 8621
ocr_text: 1623
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m00s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-04-28
video_chunks ✓ 0m12s
frames (4535 rows) ✓ 1m30s
ocr_text (1623 rows) ✓ 0m32s
ui_events (8621 rows) ✓ 0m01s
elements (407532 rows) ✓ 1m02s
meetings (3 rows) ✓ 0m00s
[+03m19s] ▶ Updating FTS indexes
elements_fts ✓ 1m36s
frames_fts ✓ 2m28s
ui_events_fts ✓ 0m04s
[+07m27s] ▶ Verifying DB
frames: 4535 / 4535 ✓
elements: 407532 / 407532 ✓
ui_events: 8621 / 8621 ✓
ocr_text: 1623 / 1623 ✓
meetings: 3 / 3 ✓
[+08m59s] ▶ Copying data folder for 2026-04-28
rsync 2026-04-28/ → NAS ✓ 0m20s (223 files, 159M)
[2026-05-06 19:54:08] Archive DB size: 10G
[2026-05-06 19:54:08] Total time: 9m19s
[2026-05-06 19:54:08] Sync complete for 2026-04-28
[2026-05-06 19:54:08] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cat screenpipe_sync.sh
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ pkill -f screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm -rf ~/.screenpipe/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 0
drwxr-xr-x 2 lukas staff 64 6 May 20:22 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd .npm
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ ll
total 24
drwx------ 9 lukas staff 288 28 Apr 09:18 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
drwx------ 5 lukas staff 160 1 Nov 2021 _cacache
drwx------@ 2 lukas staff 64 28 Apr 09:18 _locks
drwx------ 15 lukas staff 480 27 Apr 19:54 _logs
drwxr-xr-x 67 lukas staff 2144 28 Apr 09:17 _npx
-rw-r--r--@ 1 lukas staff 0 26 Apr 19:10 _update-notifier-last-checked
-rw-r--r-- 1 lukas staff 173 28 Apr 09:18 anonymous-cli-metrics.json
-rw-r--r-- 1 lukas staff 4764 31 Jan 2024 eresolve-report.txt
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ rm -rf ~/.npm/_npx
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 52920
drwx------+ 92 lukas staff 2944 6 May 20:22 .
drwxr-xr-x 5 root admin 160 23 Aug 2024 ..
-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding
-rw-r--r--@ 1 lukas staff 28676 27 Apr 09:11 .DS_Store
drwx------+ 10 lukas staff 320 28 Apr 17:07 .Trash
drwx------ 5 lukas staff 160 1 Nov 2021 .aws
-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json
-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history
-rw-r--r--@ 1 lukas staff 115 18 Apr 13:19 .bashrc
drwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito
drwx------@ 6 lukas staff 192 9 Apr 19:53 .cache
drwxr-xr-x 20 lukas staff 640 27 Apr 08:58 .claude
-rw------- 1 lukas staff 28647 27 Apr 09:12 .claude.json
drwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium
drwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer
drwx------ 16 lukas staff 512 21 May 2025 .config
drwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue
drwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot
drwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor
drwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor
drwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona
drwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb
drwx------ 24 lukas staff 768 27 Apr 18:14 .docker
drwx------ 15 lukas staff 480 6 Jun 2023 .dropbox
drwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak
-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth
-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig
-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp
drwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon
drwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc
-rw------- 1 lukas staff 20 28 Apr 16:51 .lesshst
drwx------ 5 lukas staff 160 23 Dec 2024 .local
-rw------- 1 lukas staff 204 16 Mar 2024 .netrc
drwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp
-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history
-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer
drwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py
drwx------ 8 lukas staff 256 6 May 20:24 .npm
-rw------- 1 lukas staff 74 20 May 2024 .npmrc
drwx------ 32 lukas staff 1024 25 Jul 2025 .nvm
drwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman
-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile
-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history
drwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode
drwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight
drwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint
drwx------ 15 lukas staff 480 8 Aug 2025 .ssh
drwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit
drwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm
-rw------- 1 lukas staff 12143 27 Apr 14:58 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm
drwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf
drwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn
-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc
-rw-r--r-- 1 lukas staff 49518 21 Apr 09:09 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 2025 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 6116 20 Apr 19:52 .zprofile
-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy
-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave
-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save
-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees
-rw------- 1 lukas staff 50310 28 Apr 11:32 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 400 18 Apr 13:19 .zshrc
drwx------@ 9 lukas staff 288 20 Apr 20:55 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 2025 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 2025 DEV
drwx------@ 10 lukas staff 320 28 Apr 18:52 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 44 lukas staff 1408 24 Apr 16:53 Downloads
drwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen
drwx------@ 112 lukas staff 3584 2 Dec 09:19 Library
drwx------ 7 lukas staff 224 12 Feb 2024 Movies
drwx------+ 5 lukas staff 160 25 Sep 2023 Music
drwx------+ 9 lukas staff 288 25 Sep 2023 Pictures
drwx------ 3 lukas staff 96 8 Nov 2021 Postman
drwx------+ 4 lukas staff 128 28 Oct 2021 Public
-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf
drwx------ 4 lukas staff 128 2 Jul 2023 Users
-rw-r--r-- 1 lukas staff 17050804 27 Apr 19:18 cleanshot-live.log
-rw-r--r-- 1 lukas staff 9363061 27 Apr 19:24 cleanshot-screenpipe.log
-rw-r--r-- 1 lukas staff 0 12 Apr 12:50 clip.mp4
-rw-r--r-- 1 lukas staff 0 12 Apr 12:51 frame.jpg
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 2025 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 2025 raycast
-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin
-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh
-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd ~/.screenpipe
cd: no such file or directory: /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ npx screenpipe@latest record --ignored-windows "Boosteroid" --retention-days 7
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-06T20:27:32.721416Z INFO screenpipe_engine::auth_key: api auth: key resolved via auto-generated
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-05-06T20:27:32.831033Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-06T20:27:34.088403Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-06T20:27:34.089942Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CF...
|
iTerm2
|
screenpipe"
|
NULL
|
2
|
|
3
|
-rw-r--r-- 1 lukas staff 397068 28 Apr 17:01 -rw-r--r-- 1 lukas staff 397068 28 Apr 17:01 compact_monitor_1_1777384874970.mp4
-rw-r--r-- 1 lukas staff 1592462 28 Apr 17:06 compact_monitor_1_1777385198571.mp4
-rw-r--r-- 1 lukas staff 1327809 28 Apr 17:12 compact_monitor_1_1777385523980.mp4
-rw-r--r-- 1 lukas staff 2262498 28 Apr 17:17 compact_monitor_1_1777385864559.mp4
-rw-r--r-- 1 lukas staff 1702453 28 Apr 17:23 compact_monitor_1_1777386198870.mp4
-rw-r--r-- 1 lukas staff 2034287 28 Apr 17:29 compact_monitor_1_1777386532344.mp4
-rw-r--r-- 1 lukas staff 1352893 28 Apr 17:34 compact_monitor_1_1777386875277.mp4
-rw-r--r-- 1 lukas staff 1873946 28 Apr 17:40 compact_monitor_1_1777387208685.mp4
-rw-r--r-- 1 lukas staff 1155463 28 Apr 17:45 compact_monitor_1_1777387548798.mp4
-rw-r--r-- 1 lukas staff 1428159 28 Apr 17:51 compact_monitor_1_1777387882691.mp4
-rw-r--r-- 1 lukas staff 1398484 28 Apr 17:56 compact_monitor_1_1777388213861.mp4
-rw-r--r-- 1 lukas staff 1688438 28 Apr 18:02 compact_monitor_1_1777388542869.mp4
-rw-r--r-- 1 lukas staff 2401161 28 Apr 18:07 compact_monitor_1_1777388869470.mp4
-rw-r--r-- 1 lukas staff 1283247 28 Apr 18:13 compact_monitor_1_1777389192202.mp4
-rw-r--r-- 1 lukas staff 1398160 28 Apr 18:18 compact_monitor_1_1777389525394.mp4
-rw-r--r-- 1 lukas staff 452906 28 Apr 18:24 compact_monitor_1_1777389856559.mp4
-rw-r--r-- 1 lukas staff 566518 28 Apr 18:29 compact_monitor_1_1777390191054.mp4
-rw-r--r-- 1 lukas staff 445894 28 Apr 18:35 compact_monitor_1_1777390513567.mp4
-rw-r--r-- 1 lukas staff 444044 28 Apr 18:40 compact_monitor_1_1777390841877.mp4
-rw-r--r-- 1 lukas staff 437853 28 Apr 18:46 compact_monitor_1_1777391162552.mp4
-rw-r--r-- 1 lukas staff 441008 28 Apr 18:51 compact_monitor_1_1777391489107.mp4
-rw-r--r-- 1 lukas staff 443934 28 Apr 18:57 compact_monitor_1_1777391823165.mp4
-rw-r--r-- 1 lukas staff 443624 28 Apr 19:02 compact_monitor_1_1777392146221.mp4
-rw-r--r-- 1 lukas staff 447164 28 Apr 19:07 compact_monitor_1_1777392469679.mp4
-rw-r--r-- 1 lukas staff 442431 28 Apr 19:13 compact_monitor_1_1777392792794.mp4
-rw-r--r-- 1 lukas staff 436805 28 Apr 19:18 compact_monitor_1_1777393109301.mp4
-rw-r--r-- 1 lukas staff 435633 28 Apr 19:23 compact_monitor_1_1777393423192.mp4
-rw-r--r-- 1 lukas staff 1162510 28 Apr 09:30 compact_monitor_2_1777357806702.mp4
-rw-r--r-- 1 lukas staff 3394878 28 Apr 09:35 compact_monitor_2_1777358126186.mp4
-rw-r--r-- 1 lukas staff 268044 28 Apr 09:40 compact_monitor_2_1777358443280.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 09:46 compact_monitor_2_1777358769231.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 09:51 compact_monitor_2_1777359084493.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 09:56 compact_monitor_2_1777359399758.mp4
-rw-r--r-- 1 lukas staff 266694 28 Apr 10:01 compact_monitor_2_1777359707884.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 10:06 compact_monitor_2_1777360016892.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 10:12 compact_monitor_2_1777360329199.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 10:17 compact_monitor_2_1777360641498.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 10:22 compact_monitor_2_1777360953971.mp4
-rw-r--r-- 1 lukas staff 267099 28 Apr 10:27 compact_monitor_2_1777361264266.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 10:33 compact_monitor_2_1777361583211.mp4
-rw-r--r-- 1 lukas staff 266829 28 Apr 10:38 compact_monitor_2_1777361903545.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 10:43 compact_monitor_2_1777362219032.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 10:48 compact_monitor_2_1777362532674.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 10:54 compact_monitor_2_1777362845950.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 10:59 compact_monitor_2_1777363157577.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 11:04 compact_monitor_2_1777363473776.mp4
-rw-r--r-- 1 lukas staff 267099 28 Apr 11:09 compact_monitor_2_1777363782342.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 11:14 compact_monitor_2_1777364092822.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 11:20 compact_monitor_2_1777364400840.mp4
-rw-r--r-- 1 lukas staff 266694 28 Apr 11:25 compact_monitor_2_1777364709144.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 11:30 compact_monitor_2_1777365022090.mp4
-rw-r--r-- 1 lukas staff 264669 28 Apr 11:35 compact_monitor_2_1777365335928.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 11:40 compact_monitor_2_1777365649137.mp4
-rw-r--r-- 1 lukas staff 266964 28 Apr 11:46 compact_monitor_2_1777365962619.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 11:51 compact_monitor_2_1777366273740.mp4
-rw-r--r-- 1 lukas staff 265209 28 Apr 11:56 compact_monitor_2_1777366582034.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 12:01 compact_monitor_2_1777366886631.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 12:06 compact_monitor_2_1777367202805.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 12:11 compact_monitor_2_1777367518861.mp4
-rw-r--r-- 1 lukas staff 269261 28 Apr 12:17 compact_monitor_2_1777367837441.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 12:22 compact_monitor_2_1777368160952.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 12:28 compact_monitor_2_1777368477571.mp4
-rw-r--r-- 1 lukas staff 267234 28 Apr 12:33 compact_monitor_2_1777368792600.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 12:38 compact_monitor_2_1777369107069.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 12:43 compact_monitor_2_1777369421530.mp4
-rw-r--r-- 1 lukas staff 266829 28 Apr 12:48 compact_monitor_2_1777369731189.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 12:54 compact_monitor_2_1777370048214.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 12:59 compact_monitor_2_1777370363567.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 13:04 compact_monitor_2_1777370679314.mp4
-rw-r--r-- 1 lukas staff 268855 28 Apr 13:09 compact_monitor_2_1777370994284.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 13:15 compact_monitor_2_1777371309064.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 13:20 compact_monitor_2_1777371623643.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 13:25 compact_monitor_2_1777371938006.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 13:30 compact_monitor_2_1777372252120.mp4
-rw-r--r-- 1 lukas staff 266964 28 Apr 13:36 compact_monitor_2_1777372566394.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 13:41 compact_monitor_2_1777372880197.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 13:46 compact_monitor_2_1777373193667.mp4
-rw-r--r-- 1 lukas staff 265209 28 Apr 13:51 compact_monitor_2_1777373506832.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 13:56 compact_monitor_2_1777373816197.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 14:02 compact_monitor_2_1777374130774.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 14:07 compact_monitor_2_1777374443527.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 14:12 compact_monitor_2_1777374756405.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 14:17 compact_monitor_2_1777375070551.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 14:23 compact_monitor_2_1777375397987.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 14:28 compact_monitor_2_1777375715930.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 14:33 compact_monitor_2_1777376034152.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 14:39 compact_monitor_2_1777376348246.mp4
-rw-r--r-- 1 lukas staff 266019 28 Apr 14:44 compact_monitor_2_1777376657026.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 14:49 compact_monitor_2_1777376966683.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 14:54 compact_monitor_2_1777377280571.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:00 compact_monitor_2_1777377602616.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:05 compact_monitor_2_1777377915467.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 15:10 compact_monitor_2_1777378232424.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 15:15 compact_monitor_2_1777378547117.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:21 compact_monitor_2_1777378865359.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 15:26 compact_monitor_2_1777379183376.mp4
-rw-r--r-- 1 lukas staff 267774 28 Apr 15:31 compact_monitor_2_1777379502714.mp4
-rw-r--r-- 1 lukas staff 268046 28 Apr 15:37 compact_monitor_2_1777379819259.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 15:42 compact_monitor_2_1777380134674.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 15:47 compact_monitor_2_1777380454708.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 15:52 compact_monitor_2_1777380771150.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 15:58 compact_monitor_2_1777381086934.mp4
-rw-r--r-- 1 lukas staff 268044 28 Apr 16:03 compact_monitor_2_1777381401816.mp4
-rw-r--r-- 1 lukas staff 269530 28 Apr 16:08 compact_monitor_2_1777381720100.mp4
-rw-r--r-- 1 lukas staff 268721 28 Apr 16:13 compact_monitor_2_1777382037168.mp4
-rw-r--r-- 1 lukas staff 268583 28 Apr 16:19 compact_monitor_2_1777382355014.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 16:24 compact_monitor_2_1777382670965.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 16:29 compact_monitor_2_1777382984987.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 16:34 compact_monitor_2_1777383298084.mp4
-rw-r--r-- 1 lukas staff 236209 28 Apr 16:40 compact_monitor_2_1777383610070.mp4
-rw-r--r-- 1 lukas staff 1191690 28 Apr 17:01 compact_monitor_2_1777384877981.mp4
-rw-r--r-- 1 lukas staff 2975861 28 Apr 17:06 compact_monitor_2_1777385201736.mp4
-rw-r--r-- 1 lukas staff 5319560 28 Apr 17:12 compact_monitor_2_1777385529432.mp4
-rw-r--r-- 1 lukas staff 3006284 28 Apr 17:18 compact_monitor_2_1777385870812.mp4
-rw-r--r-- 1 lukas staff 2726877 28 Apr 17:23 compact_monitor_2_1777386204715.mp4
-rw-r--r-- 1 lukas staff 3315722 28 Apr 17:29 compact_monitor_2_1777386541280.mp4
-rw-r--r-- 1 lukas staff 1577465 28 Apr 17:34 compact_monitor_2_1777386883461.mp4
-rw-r--r-- 1 lukas staff 1745214 28 Apr 17:40 compact_monitor_2_1777387214543.mp4
-rw-r--r-- 1 lukas staff 950993 28 Apr 17:45 compact_monitor_2_1777387552842.mp4
-rw-r--r-- 1 lukas staff 429007 28 Apr 17:51 compact_monitor_2_1777387889075.mp4
-rw-r--r-- 1 lukas staff 884099 28 Apr 17:57 compact_monitor_2_1777388218623.mp4
-rw-r--r-- 1 lukas staff 2352504 28 Apr 18:02 compact_monitor_2_1777388548021.mp4
-rw-r--r-- 1 lukas staff 3298542 28 Apr 18:07 compact_monitor_2_1777388874095.mp4
-rw-r--r-- 1 lukas staff 2143027 28 Apr 18:13 compact_monitor_2_1777389196097.mp4
-rw-r--r-- 1 lukas staff 2448311 28 Apr 18:18 compact_monitor_2_1777389532297.mp4
-rw-r--r-- 1 lukas staff 2780051 28 Apr 18:24 compact_monitor_2_1777389861076.mp4
-rw-r--r-- 1 lukas staff 2715534 28 Apr 18:29 compact_monitor_2_1777390193677.mp4
-rw-r--r-- 1 lukas staff 2102173 28 Apr 18:35 compact_monitor_2_1777390515997.mp4
-rw-r--r-- 1 lukas staff 2324557 28 Apr 18:40 compact_monitor_2_1777390843577.mp4
-rw-r--r-- 1 lukas staff 1525510 28 Apr 18:46 compact_monitor_2_1777391163945.mp4
-rw-r--r-- 1 lukas staff 2776584 28 Apr 18:51 compact_monitor_2_1777391495138.mp4
-rw-r--r-- 1 lukas staff 1168205 28 Apr 18:57 compact_monitor_2_1777391825305.mp4
-rw-r--r-- 1 lukas staff 1736686 28 Apr 19:02 compact_monitor_2_1777392149583.mp4
-rw-r--r-- 1 lukas staff 2133415 28 Apr 19:07 compact_monitor_2_1777392471754.mp4
-rw-r--r-- 1 lukas staff 1289951 28 Apr 19:13 compact_monitor_2_1777392794343.mp4
-rw-r--r-- 1 lukas staff 223494 28 Apr 19:18 compact_monitor_2_1777393110228.mp4
-rw-r--r-- 1 lukas staff 222168 28 Apr 19:23 compact_monitor_2_1777393424109.mp4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-28 $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 22523176
drwxr-xr-x 30 lukas staff 960 28 Apr 09:18 .
drwx------+ 93 lukas staff 2976 28 Apr 16:51 ..
-rw-r--r--@ 1 lukas staff 8196 26 Apr 17:14 .DS_Store
drwxr-xr-x 3 lukas staff 96 26 Apr 19:23 .claude
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 167 lukas staff 5344 18 Apr 14:45 data
-rw-r--r--@ 1 lukas staff 11525263360 28 Apr 19:33 db.sqlite
-rw-r--r-- 1 lukas staff 65536 28 Apr 15:26 db.sqlite-shm
-rw-r--r-- 1 lukas staff 2323712 28 Apr 22:23 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 208424 17 Apr 21:06 screenpipe.2026-04-17.0.log
-rw-r--r-- 1 lukas staff 61983 18 Apr 14:45 screenpipe.2026-04-18.0.log
-rw-r--r-- 1 lukas staff 359800 20 Apr 18:52 screenpipe.2026-04-20.0.log
-rw-r--r-- 1 lukas staff 683671 21 Apr 20:18 screenpipe.2026-04-21.0.log
-rw-r--r-- 1 lukas staff 284763 22 Apr 19:10 screenpipe.2026-04-22.0.log
-rw-r--r-- 1 lukas staff 176386 23 Apr 14:01 screenpipe.2026-04-23.0.log
-rw-r--r-- 1 lukas staff 276189 24 Apr 22:35 screenpipe.2026-04-24.0.log
-rw-r--r-- 1 lukas staff 68794 25 Apr 19:40 screenpipe.2026-04-25.0.log
-rw-r--r-- 1 lukas staff 75543 26 Apr 22:56 screenpipe.2026-04-26.0.log
-rw-r--r-- 1 lukas staff 607811 27 Apr 20:42 screenpipe.2026-04-27.0.log
-rw-r--r-- 1 lukas staff 396094 28 Apr 22:23 screenpipe.2026-04-28.0.log
-rwxr-xr-x@ 1 lukas staff 14994 25 Apr 18:50 screenpipe_sync.sh
-rw-r--r--@ 1 lukas staff 34227 26 Apr 17:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-27
[2026-05-06 18:58:18] ========================================
[2026-05-06 18:58:18] Screenpipe sync starting for: 2026-04-27
[2026-05-06 18:58:18] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (7.7G)
Data dir: OK (242 files, 325M)
[+00m04s] ▶ Counting source rows for 2026-04-27
frames: 7543
elements: 470235
ui_events: 9909
ocr_text: 2193
meetings: 3
[+00m06s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m07s] ▶ Syncing data for 2026-04-27
video_chunks ✓ 0m11s
frames (7543 rows) ⠧ Runtime error near line 3: disk I/O error (10)
frames (7543 rows) ⠴ %
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-27
[2026-05-06 19:22:16] ========================================
[2026-05-06 19:22:16] Screenpipe sync starting for: 2026-04-27
[2026-05-06 19:22:16] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (7.7G)
Data dir: OK (242 files, 325M)
[+00m01s] ▶ Counting source rows for 2026-04-27
frames: 7543
elements: 470235
ui_events: 9909
ocr_text: 2193
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m03s] ▶ Syncing data for 2026-04-27
video_chunks ✓ 0m11s
frames (7543 rows) ✓ 4m40s
ocr_text (2193 rows) ✓ 0m25s
ui_events (9909 rows) ✓ 0m02s
elements (470235 rows) ✓ 2m46s
meetings (3 rows) ✓ 0m00s
[+08m07s] ▶ Updating FTS indexes
elements_fts ✓ 2m59s
frames_fts ✓ 6m07s
ui_events_fts ✓ 0m03s
[+17m16s] ▶ Verifying DB
frames: 7543 / 7543 ✓
elements: 470235 / 470235 ✓
ui_events: 9909 / 9909 ✓
ocr_text: 2193 / 2193 ✓
meetings: 3 / 3 ✓
[+18m46s] ▶ Copying data folder for 2026-04-27
rsync 2026-04-27/ → NAS ✓ 0m26s (242 files, 325M)
[2026-05-06 19:41:28] Archive DB size: 9.7G
[2026-05-06 19:41:28] Total time: 19m12s
[2026-05-06 19:41:28] Sync complete for 2026-04-27
[2026-05-06 19:41:28] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-28
[2026-05-06 19:44:49] ========================================
[2026-05-06 19:44:49] Screenpipe sync starting for: 2026-04-28
[2026-05-06 19:44:49] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (9.7G)
Data dir: OK (223 files, 159M)
[+00m00s] ▶ Counting source rows for 2026-04-28
frames: 4535
elements: 407532
ui_events: 8621
ocr_text: 1623
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m00s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-04-28
video_chunks ✓ 0m12s
frames (4535 rows) ✓ 1m30s
ocr_text (1623 rows) ✓ 0m32s
ui_events (8621 rows) ✓ 0m01s
elements (407532 rows) ✓ 1m02s
meetings (3 rows) ✓ 0m00s
[+03m19s] ▶ Updating FTS indexes
elements_fts ✓ 1m36s
frames_fts ✓ 2m28s
ui_events_fts ✓ 0m04s
[+07m27s] ▶ Verifying DB
frames: 4535 / 4535 ✓
elements: 407532 / 407532 ✓
ui_events: 8621 / 8621 ✓
ocr_text: 1623 / 1623 ✓
meetings: 3 / 3 ✓
[+08m59s] ▶ Copying data folder for 2026-04-28
rsync 2026-04-28/ → NAS ✓ 0m20s (223 files, 159M)
[2026-05-06 19:54:08] Archive DB size: 10G
[2026-05-06 19:54:08] Total time: 9m19s
[2026-05-06 19:54:08] Sync complete for 2026-04-28
[2026-05-06 19:54:08] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cat screenpipe_sync.sh
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ pkill -f screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm -rf ~/.screenpipe/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 0
drwxr-xr-x 2 lukas staff 64 6 May 20:22 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd .npm
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ ll
total 24
drwx------ 9 lukas staff 288 28 Apr 09:18 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
drwx------ 5 lukas staff 160 1 Nov 2021 _cacache
drwx------@ 2 lukas staff 64 28 Apr 09:18 _locks
drwx------ 15 lukas staff 480 27 Apr 19:54 _logs
drwxr-xr-x 67 lukas staff 2144 28 Apr 09:17 _npx
-rw-r--r--@ 1 lukas staff 0 26 Apr 19:10 _update-notifier-last-checked
-rw-r--r-- 1 lukas staff 173 28 Apr 09:18 anonymous-cli-metrics.json
-rw-r--r-- 1 lukas staff 4764 31 Jan 2024 eresolve-report.txt
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ rm -rf ~/.npm/_npx
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 52920
drwx------+ 92 lukas staff 2944 6 May 20:22 .
drwxr-xr-x 5 root admin 160 23 Aug 2024 ..
-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding
-rw-r--r--@ 1 lukas staff 28676 27 Apr 09:11 .DS_Store
drwx------+ 10 lukas staff 320 28 Apr 17:07 .Trash
drwx------ 5 lukas staff 160 1 Nov 2021 .aws
-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json
-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history
-rw-r--r--@ 1 lukas staff 115 18 Apr 13:19 .bashrc
drwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito
drwx------@ 6 lukas staff 192 9 Apr 19:53 .cache
drwxr-xr-x 20 lukas staff 640 27 Apr 08:58 .claude
-rw------- 1 lukas staff 28647 27 Apr 09:12 .claude.json
drwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium
drwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer
drwx------ 16 lukas staff 512 21 May 2025 .config
drwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue
drwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot
drwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor
drwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor
drwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona
drwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb
drwx------ 24 lukas staff 768 27 Apr 18:14 .docker
drwx------ 15 lukas staff 480 6 Jun 2023 .dropbox
drwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak
-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth
-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig
-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp
drwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon
drwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc
-rw------- 1 lukas staff 20 28 Apr 16:51 .lesshst
drwx------ 5 lukas staff 160 23 Dec 2024 .local
-rw------- 1 lukas staff 204 16 Mar 2024 .netrc
drwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp
-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history
-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer
drwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py
drwx------ 8 lukas staff 256 6 May 20:24 .npm
-rw------- 1 lukas staff 74 20 May 2024 .npmrc
drwx------ 32 lukas staff 1024 25 Jul 2025 .nvm
drwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman
-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile
-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history
drwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode
drwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight
drwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint
drwx------ 15 lukas staff 480 8 Aug 2025 .ssh
drwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit
drwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm
-rw------- 1 lukas staff 12143 27 Apr 14:58 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm
drwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf
drwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn
-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc
-rw-r--r-- 1 lukas staff 49518 21 Apr 09:09 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 2025 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 6116 20 Apr 19:52 .zprofile
-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy
-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave
-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save
-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees
-rw------- 1 lukas staff 50310 28 Apr 11:32 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 400 18 Apr 13:19 .zshrc
drwx------@ 9 lukas staff 288 20 Apr 20:55 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 2025 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 2025 DEV
drwx------@ 10 lukas staff 320 28 Apr 18:52 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 44 lukas staff 1408 24 Apr 16:53 Downloads
drwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen
drwx------@ 112 lukas staff 3584 2 Dec 09:19 Library
drwx------ 7 lukas staff 224 12 Feb 2024 Movies
drwx------+ 5 lukas staff 160 25 Sep 2023 Music
drwx------+ 9 lukas staff 288 25 Sep 2023 Pictures
drwx------ 3 lukas staff 96 8 Nov 2021 Postman
drwx------+ 4 lukas staff 128 28 Oct 2021 Public
-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf
drwx------ 4 lukas staff 128 2 Jul 2023 Users
-rw-r--r-- 1 lukas staff 17050804 27 Apr 19:18 cleanshot-live.log
-rw-r--r-- 1 lukas staff 9363061 27 Apr 19:24 cleanshot-screenpipe.log
-rw-r--r-- 1 lukas staff 0 12 Apr 12:50 clip.mp4
-rw-r--r-- 1 lukas staff 0 12 Apr 12:51 frame.jpg
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 2025 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 2025 raycast
-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin
-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh
-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd ~/.screenpipe
cd: no such file or directory: /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ npx screenpipe@latest record --ignored-windows "Boosteroid" --retention-days 7
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-06T20:27:32.721416Z INFO screenpipe_engine::auth_key: api auth: key resolved via auto-generated
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-05-06T20:27:32.831033Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-06T20:27:34.088403Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-06T20:27:34.089942Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-06T20:27:34.090417Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-06T20:27:34.112650Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-06T20:27:34.112711Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-06T20:27:34.619906Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-06T20:27:34.619937Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-06T20:27:34.619857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-06T20:27:34.619847Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-06T20:27:34.620018Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-06T20:27:34.624746Z INFO screenpipe_core::pipes: installed built-in pipe: day-recap
2026-05-06T20:27:34.626304Z INFO screenpipe_core::pipes: installed built-in pipe: standup-update
2026-05-06T20:27:34.628597Z INFO screenpipe_core::pipes: installed built-in pipe: ai-habits
2026-05-06T20:27:34.629463Z INFO screenpipe_core::pipes: installed built-in pipe: time-breakdown
2026-05-06T20:27:34.630081Z INFO screenpipe_core::pipes: installed built-in pipe: video-export
2026-05-06T20:27:34.630972Z INFO screenpipe_core::pipes: installed built-in pipe: meeting-summary
2026-05-06T20:27:34.631427Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-06T20:27:34.631521Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-06T20:27:34.631587Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-06T20:27:34.631640Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-06T20:27:34.631690Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-06T20:27:34.631738Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-06T20:27:34.631752Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ false │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 7 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ MacBook Pro Microphone (input) │
│ │ System Audio (output) │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your d...
|
iTerm2
|
screenpipe"
|
NULL
|
3
|
|
4
|
-rw-r--r-- 1 lukas staff 1702453 28 Apr 17:23 -rw-r--r-- 1 lukas staff 1702453 28 Apr 17:23 compact_monitor_1_1777386198870.mp4
-rw-r--r-- 1 lukas staff 2034287 28 Apr 17:29 compact_monitor_1_1777386532344.mp4
-rw-r--r-- 1 lukas staff 1352893 28 Apr 17:34 compact_monitor_1_1777386875277.mp4
-rw-r--r-- 1 lukas staff 1873946 28 Apr 17:40 compact_monitor_1_1777387208685.mp4
-rw-r--r-- 1 lukas staff 1155463 28 Apr 17:45 compact_monitor_1_1777387548798.mp4
-rw-r--r-- 1 lukas staff 1428159 28 Apr 17:51 compact_monitor_1_1777387882691.mp4
-rw-r--r-- 1 lukas staff 1398484 28 Apr 17:56 compact_monitor_1_1777388213861.mp4
-rw-r--r-- 1 lukas staff 1688438 28 Apr 18:02 compact_monitor_1_1777388542869.mp4
-rw-r--r-- 1 lukas staff 2401161 28 Apr 18:07 compact_monitor_1_1777388869470.mp4
-rw-r--r-- 1 lukas staff 1283247 28 Apr 18:13 compact_monitor_1_1777389192202.mp4
-rw-r--r-- 1 lukas staff 1398160 28 Apr 18:18 compact_monitor_1_1777389525394.mp4
-rw-r--r-- 1 lukas staff 452906 28 Apr 18:24 compact_monitor_1_1777389856559.mp4
-rw-r--r-- 1 lukas staff 566518 28 Apr 18:29 compact_monitor_1_1777390191054.mp4
-rw-r--r-- 1 lukas staff 445894 28 Apr 18:35 compact_monitor_1_1777390513567.mp4
-rw-r--r-- 1 lukas staff 444044 28 Apr 18:40 compact_monitor_1_1777390841877.mp4
-rw-r--r-- 1 lukas staff 437853 28 Apr 18:46 compact_monitor_1_1777391162552.mp4
-rw-r--r-- 1 lukas staff 441008 28 Apr 18:51 compact_monitor_1_1777391489107.mp4
-rw-r--r-- 1 lukas staff 443934 28 Apr 18:57 compact_monitor_1_1777391823165.mp4
-rw-r--r-- 1 lukas staff 443624 28 Apr 19:02 compact_monitor_1_1777392146221.mp4
-rw-r--r-- 1 lukas staff 447164 28 Apr 19:07 compact_monitor_1_1777392469679.mp4
-rw-r--r-- 1 lukas staff 442431 28 Apr 19:13 compact_monitor_1_1777392792794.mp4
-rw-r--r-- 1 lukas staff 436805 28 Apr 19:18 compact_monitor_1_1777393109301.mp4
-rw-r--r-- 1 lukas staff 435633 28 Apr 19:23 compact_monitor_1_1777393423192.mp4
-rw-r--r-- 1 lukas staff 1162510 28 Apr 09:30 compact_monitor_2_1777357806702.mp4
-rw-r--r-- 1 lukas staff 3394878 28 Apr 09:35 compact_monitor_2_1777358126186.mp4
-rw-r--r-- 1 lukas staff 268044 28 Apr 09:40 compact_monitor_2_1777358443280.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 09:46 compact_monitor_2_1777358769231.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 09:51 compact_monitor_2_1777359084493.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 09:56 compact_monitor_2_1777359399758.mp4
-rw-r--r-- 1 lukas staff 266694 28 Apr 10:01 compact_monitor_2_1777359707884.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 10:06 compact_monitor_2_1777360016892.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 10:12 compact_monitor_2_1777360329199.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 10:17 compact_monitor_2_1777360641498.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 10:22 compact_monitor_2_1777360953971.mp4
-rw-r--r-- 1 lukas staff 267099 28 Apr 10:27 compact_monitor_2_1777361264266.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 10:33 compact_monitor_2_1777361583211.mp4
-rw-r--r-- 1 lukas staff 266829 28 Apr 10:38 compact_monitor_2_1777361903545.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 10:43 compact_monitor_2_1777362219032.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 10:48 compact_monitor_2_1777362532674.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 10:54 compact_monitor_2_1777362845950.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 10:59 compact_monitor_2_1777363157577.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 11:04 compact_monitor_2_1777363473776.mp4
-rw-r--r-- 1 lukas staff 267099 28 Apr 11:09 compact_monitor_2_1777363782342.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 11:14 compact_monitor_2_1777364092822.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 11:20 compact_monitor_2_1777364400840.mp4
-rw-r--r-- 1 lukas staff 266694 28 Apr 11:25 compact_monitor_2_1777364709144.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 11:30 compact_monitor_2_1777365022090.mp4
-rw-r--r-- 1 lukas staff 264669 28 Apr 11:35 compact_monitor_2_1777365335928.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 11:40 compact_monitor_2_1777365649137.mp4
-rw-r--r-- 1 lukas staff 266964 28 Apr 11:46 compact_monitor_2_1777365962619.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 11:51 compact_monitor_2_1777366273740.mp4
-rw-r--r-- 1 lukas staff 265209 28 Apr 11:56 compact_monitor_2_1777366582034.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 12:01 compact_monitor_2_1777366886631.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 12:06 compact_monitor_2_1777367202805.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 12:11 compact_monitor_2_1777367518861.mp4
-rw-r--r-- 1 lukas staff 269261 28 Apr 12:17 compact_monitor_2_1777367837441.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 12:22 compact_monitor_2_1777368160952.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 12:28 compact_monitor_2_1777368477571.mp4
-rw-r--r-- 1 lukas staff 267234 28 Apr 12:33 compact_monitor_2_1777368792600.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 12:38 compact_monitor_2_1777369107069.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 12:43 compact_monitor_2_1777369421530.mp4
-rw-r--r-- 1 lukas staff 266829 28 Apr 12:48 compact_monitor_2_1777369731189.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 12:54 compact_monitor_2_1777370048214.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 12:59 compact_monitor_2_1777370363567.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 13:04 compact_monitor_2_1777370679314.mp4
-rw-r--r-- 1 lukas staff 268855 28 Apr 13:09 compact_monitor_2_1777370994284.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 13:15 compact_monitor_2_1777371309064.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 13:20 compact_monitor_2_1777371623643.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 13:25 compact_monitor_2_1777371938006.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 13:30 compact_monitor_2_1777372252120.mp4
-rw-r--r-- 1 lukas staff 266964 28 Apr 13:36 compact_monitor_2_1777372566394.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 13:41 compact_monitor_2_1777372880197.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 13:46 compact_monitor_2_1777373193667.mp4
-rw-r--r-- 1 lukas staff 265209 28 Apr 13:51 compact_monitor_2_1777373506832.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 13:56 compact_monitor_2_1777373816197.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 14:02 compact_monitor_2_1777374130774.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 14:07 compact_monitor_2_1777374443527.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 14:12 compact_monitor_2_1777374756405.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 14:17 compact_monitor_2_1777375070551.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 14:23 compact_monitor_2_1777375397987.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 14:28 compact_monitor_2_1777375715930.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 14:33 compact_monitor_2_1777376034152.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 14:39 compact_monitor_2_1777376348246.mp4
-rw-r--r-- 1 lukas staff 266019 28 Apr 14:44 compact_monitor_2_1777376657026.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 14:49 compact_monitor_2_1777376966683.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 14:54 compact_monitor_2_1777377280571.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:00 compact_monitor_2_1777377602616.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:05 compact_monitor_2_1777377915467.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 15:10 compact_monitor_2_1777378232424.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 15:15 compact_monitor_2_1777378547117.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:21 compact_monitor_2_1777378865359.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 15:26 compact_monitor_2_1777379183376.mp4
-rw-r--r-- 1 lukas staff 267774 28 Apr 15:31 compact_monitor_2_1777379502714.mp4
-rw-r--r-- 1 lukas staff 268046 28 Apr 15:37 compact_monitor_2_1777379819259.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 15:42 compact_monitor_2_1777380134674.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 15:47 compact_monitor_2_1777380454708.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 15:52 compact_monitor_2_1777380771150.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 15:58 compact_monitor_2_1777381086934.mp4
-rw-r--r-- 1 lukas staff 268044 28 Apr 16:03 compact_monitor_2_1777381401816.mp4
-rw-r--r-- 1 lukas staff 269530 28 Apr 16:08 compact_monitor_2_1777381720100.mp4
-rw-r--r-- 1 lukas staff 268721 28 Apr 16:13 compact_monitor_2_1777382037168.mp4
-rw-r--r-- 1 lukas staff 268583 28 Apr 16:19 compact_monitor_2_1777382355014.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 16:24 compact_monitor_2_1777382670965.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 16:29 compact_monitor_2_1777382984987.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 16:34 compact_monitor_2_1777383298084.mp4
-rw-r--r-- 1 lukas staff 236209 28 Apr 16:40 compact_monitor_2_1777383610070.mp4
-rw-r--r-- 1 lukas staff 1191690 28 Apr 17:01 compact_monitor_2_1777384877981.mp4
-rw-r--r-- 1 lukas staff 2975861 28 Apr 17:06 compact_monitor_2_1777385201736.mp4
-rw-r--r-- 1 lukas staff 5319560 28 Apr 17:12 compact_monitor_2_1777385529432.mp4
-rw-r--r-- 1 lukas staff 3006284 28 Apr 17:18 compact_monitor_2_1777385870812.mp4
-rw-r--r-- 1 lukas staff 2726877 28 Apr 17:23 compact_monitor_2_1777386204715.mp4
-rw-r--r-- 1 lukas staff 3315722 28 Apr 17:29 compact_monitor_2_1777386541280.mp4
-rw-r--r-- 1 lukas staff 1577465 28 Apr 17:34 compact_monitor_2_1777386883461.mp4
-rw-r--r-- 1 lukas staff 1745214 28 Apr 17:40 compact_monitor_2_1777387214543.mp4
-rw-r--r-- 1 lukas staff 950993 28 Apr 17:45 compact_monitor_2_1777387552842.mp4
-rw-r--r-- 1 lukas staff 429007 28 Apr 17:51 compact_monitor_2_1777387889075.mp4
-rw-r--r-- 1 lukas staff 884099 28 Apr 17:57 compact_monitor_2_1777388218623.mp4
-rw-r--r-- 1 lukas staff 2352504 28 Apr 18:02 compact_monitor_2_1777388548021.mp4
-rw-r--r-- 1 lukas staff 3298542 28 Apr 18:07 compact_monitor_2_1777388874095.mp4
-rw-r--r-- 1 lukas staff 2143027 28 Apr 18:13 compact_monitor_2_1777389196097.mp4
-rw-r--r-- 1 lukas staff 2448311 28 Apr 18:18 compact_monitor_2_1777389532297.mp4
-rw-r--r-- 1 lukas staff 2780051 28 Apr 18:24 compact_monitor_2_1777389861076.mp4
-rw-r--r-- 1 lukas staff 2715534 28 Apr 18:29 compact_monitor_2_1777390193677.mp4
-rw-r--r-- 1 lukas staff 2102173 28 Apr 18:35 compact_monitor_2_1777390515997.mp4
-rw-r--r-- 1 lukas staff 2324557 28 Apr 18:40 compact_monitor_2_1777390843577.mp4
-rw-r--r-- 1 lukas staff 1525510 28 Apr 18:46 compact_monitor_2_1777391163945.mp4
-rw-r--r-- 1 lukas staff 2776584 28 Apr 18:51 compact_monitor_2_1777391495138.mp4
-rw-r--r-- 1 lukas staff 1168205 28 Apr 18:57 compact_monitor_2_1777391825305.mp4
-rw-r--r-- 1 lukas staff 1736686 28 Apr 19:02 compact_monitor_2_1777392149583.mp4
-rw-r--r-- 1 lukas staff 2133415 28 Apr 19:07 compact_monitor_2_1777392471754.mp4
-rw-r--r-- 1 lukas staff 1289951 28 Apr 19:13 compact_monitor_2_1777392794343.mp4
-rw-r--r-- 1 lukas staff 223494 28 Apr 19:18 compact_monitor_2_1777393110228.mp4
-rw-r--r-- 1 lukas staff 222168 28 Apr 19:23 compact_monitor_2_1777393424109.mp4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-28 $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 22523176
drwxr-xr-x 30 lukas staff 960 28 Apr 09:18 .
drwx------+ 93 lukas staff 2976 28 Apr 16:51 ..
-rw-r--r--@ 1 lukas staff 8196 26 Apr 17:14 .DS_Store
drwxr-xr-x 3 lukas staff 96 26 Apr 19:23 .claude
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 167 lukas staff 5344 18 Apr 14:45 data
-rw-r--r--@ 1 lukas staff 11525263360 28 Apr 19:33 db.sqlite
-rw-r--r-- 1 lukas staff 65536 28 Apr 15:26 db.sqlite-shm
-rw-r--r-- 1 lukas staff 2323712 28 Apr 22:23 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 208424 17 Apr 21:06 screenpipe.2026-04-17.0.log
-rw-r--r-- 1 lukas staff 61983 18 Apr 14:45 screenpipe.2026-04-18.0.log
-rw-r--r-- 1 lukas staff 359800 20 Apr 18:52 screenpipe.2026-04-20.0.log
-rw-r--r-- 1 lukas staff 683671 21 Apr 20:18 screenpipe.2026-04-21.0.log
-rw-r--r-- 1 lukas staff 284763 22 Apr 19:10 screenpipe.2026-04-22.0.log
-rw-r--r-- 1 lukas staff 176386 23 Apr 14:01 screenpipe.2026-04-23.0.log
-rw-r--r-- 1 lukas staff 276189 24 Apr 22:35 screenpipe.2026-04-24.0.log
-rw-r--r-- 1 lukas staff 68794 25 Apr 19:40 screenpipe.2026-04-25.0.log
-rw-r--r-- 1 lukas staff 75543 26 Apr 22:56 screenpipe.2026-04-26.0.log
-rw-r--r-- 1 lukas staff 607811 27 Apr 20:42 screenpipe.2026-04-27.0.log
-rw-r--r-- 1 lukas staff 396094 28 Apr 22:23 screenpipe.2026-04-28.0.log
-rwxr-xr-x@ 1 lukas staff 14994 25 Apr 18:50 screenpipe_sync.sh
-rw-r--r--@ 1 lukas staff 34227 26 Apr 17:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-27
[2026-05-06 18:58:18] ========================================
[2026-05-06 18:58:18] Screenpipe sync starting for: 2026-04-27
[2026-05-06 18:58:18] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (7.7G)
Data dir: OK (242 files, 325M)
[+00m04s] ▶ Counting source rows for 2026-04-27
frames: 7543
elements: 470235
ui_events: 9909
ocr_text: 2193
meetings: 3
[+00m06s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m07s] ▶ Syncing data for 2026-04-27
video_chunks ✓ 0m11s
frames (7543 rows) ⠧ Runtime error near line 3: disk I/O error (10)
frames (7543 rows) ⠴ %
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-27
[2026-05-06 19:22:16] ========================================
[2026-05-06 19:22:16] Screenpipe sync starting for: 2026-04-27
[2026-05-06 19:22:16] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (7.7G)
Data dir: OK (242 files, 325M)
[+00m01s] ▶ Counting source rows for 2026-04-27
frames: 7543
elements: 470235
ui_events: 9909
ocr_text: 2193
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m03s] ▶ Syncing data for 2026-04-27
video_chunks ✓ 0m11s
frames (7543 rows) ✓ 4m40s
ocr_text (2193 rows) ✓ 0m25s
ui_events (9909 rows) ✓ 0m02s
elements (470235 rows) ✓ 2m46s
meetings (3 rows) ✓ 0m00s
[+08m07s] ▶ Updating FTS indexes
elements_fts ✓ 2m59s
frames_fts ✓ 6m07s
ui_events_fts ✓ 0m03s
[+17m16s] ▶ Verifying DB
frames: 7543 / 7543 ✓
elements: 470235 / 470235 ✓
ui_events: 9909 / 9909 ✓
ocr_text: 2193 / 2193 ✓
meetings: 3 / 3 ✓
[+18m46s] ▶ Copying data folder for 2026-04-27
rsync 2026-04-27/ → NAS ✓ 0m26s (242 files, 325M)
[2026-05-06 19:41:28] Archive DB size: 9.7G
[2026-05-06 19:41:28] Total time: 19m12s
[2026-05-06 19:41:28] Sync complete for 2026-04-27
[2026-05-06 19:41:28] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-28
[2026-05-06 19:44:49] ========================================
[2026-05-06 19:44:49] Screenpipe sync starting for: 2026-04-28
[2026-05-06 19:44:49] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (9.7G)
Data dir: OK (223 files, 159M)
[+00m00s] ▶ Counting source rows for 2026-04-28
frames: 4535
elements: 407532
ui_events: 8621
ocr_text: 1623
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m00s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-04-28
video_chunks ✓ 0m12s
frames (4535 rows) ✓ 1m30s
ocr_text (1623 rows) ✓ 0m32s
ui_events (8621 rows) ✓ 0m01s
elements (407532 rows) ✓ 1m02s
meetings (3 rows) ✓ 0m00s
[+03m19s] ▶ Updating FTS indexes
elements_fts ✓ 1m36s
frames_fts ✓ 2m28s
ui_events_fts ✓ 0m04s
[+07m27s] ▶ Verifying DB
frames: 4535 / 4535 ✓
elements: 407532 / 407532 ✓
ui_events: 8621 / 8621 ✓
ocr_text: 1623 / 1623 ✓
meetings: 3 / 3 ✓
[+08m59s] ▶ Copying data folder for 2026-04-28
rsync 2026-04-28/ → NAS ✓ 0m20s (223 files, 159M)
[2026-05-06 19:54:08] Archive DB size: 10G
[2026-05-06 19:54:08] Total time: 9m19s
[2026-05-06 19:54:08] Sync complete for 2026-04-28
[2026-05-06 19:54:08] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cat screenpipe_sync.sh
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ pkill -f screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm -rf ~/.screenpipe/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 0
drwxr-xr-x 2 lukas staff 64 6 May 20:22 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd .npm
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ ll
total 24
drwx------ 9 lukas staff 288 28 Apr 09:18 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
drwx------ 5 lukas staff 160 1 Nov 2021 _cacache
drwx------@ 2 lukas staff 64 28 Apr 09:18 _locks
drwx------ 15 lukas staff 480 27 Apr 19:54 _logs
drwxr-xr-x 67 lukas staff 2144 28 Apr 09:17 _npx
-rw-r--r--@ 1 lukas staff 0 26 Apr 19:10 _update-notifier-last-checked
-rw-r--r-- 1 lukas staff 173 28 Apr 09:18 anonymous-cli-metrics.json
-rw-r--r-- 1 lukas staff 4764 31 Jan 2024 eresolve-report.txt
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ rm -rf ~/.npm/_npx
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 52920
drwx------+ 92 lukas staff 2944 6 May 20:22 .
drwxr-xr-x 5 root admin 160 23 Aug 2024 ..
-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding
-rw-r--r--@ 1 lukas staff 28676 27 Apr 09:11 .DS_Store
drwx------+ 10 lukas staff 320 28 Apr 17:07 .Trash
drwx------ 5 lukas staff 160 1 Nov 2021 .aws
-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json
-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history
-rw-r--r--@ 1 lukas staff 115 18 Apr 13:19 .bashrc
drwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito
drwx------@ 6 lukas staff 192 9 Apr 19:53 .cache
drwxr-xr-x 20 lukas staff 640 27 Apr 08:58 .claude
-rw------- 1 lukas staff 28647 27 Apr 09:12 .claude.json
drwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium
drwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer
drwx------ 16 lukas staff 512 21 May 2025 .config
drwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue
drwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot
drwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor
drwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor
drwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona
drwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb
drwx------ 24 lukas staff 768 27 Apr 18:14 .docker
drwx------ 15 lukas staff 480 6 Jun 2023 .dropbox
drwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak
-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth
-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig
-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp
drwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon
drwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc
-rw------- 1 lukas staff 20 28 Apr 16:51 .lesshst
drwx------ 5 lukas staff 160 23 Dec 2024 .local
-rw------- 1 lukas staff 204 16 Mar 2024 .netrc
drwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp
-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history
-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer
drwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py
drwx------ 8 lukas staff 256 6 May 20:24 .npm
-rw------- 1 lukas staff 74 20 May 2024 .npmrc
drwx------ 32 lukas staff 1024 25 Jul 2025 .nvm
drwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman
-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile
-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history
drwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode
drwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight
drwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint
drwx------ 15 lukas staff 480 8 Aug 2025 .ssh
drwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit
drwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm
-rw------- 1 lukas staff 12143 27 Apr 14:58 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm
drwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf
drwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn
-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc
-rw-r--r-- 1 lukas staff 49518 21 Apr 09:09 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 2025 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 6116 20 Apr 19:52 .zprofile
-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy
-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave
-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save
-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees
-rw------- 1 lukas staff 50310 28 Apr 11:32 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 400 18 Apr 13:19 .zshrc
drwx------@ 9 lukas staff 288 20 Apr 20:55 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 2025 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 2025 DEV
drwx------@ 10 lukas staff 320 28 Apr 18:52 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 44 lukas staff 1408 24 Apr 16:53 Downloads
drwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen
drwx------@ 112 lukas staff 3584 2 Dec 09:19 Library
drwx------ 7 lukas staff 224 12 Feb 2024 Movies
drwx------+ 5 lukas staff 160 25 Sep 2023 Music
drwx------+ 9 lukas staff 288 25 Sep 2023 Pictures
drwx------ 3 lukas staff 96 8 Nov 2021 Postman
drwx------+ 4 lukas staff 128 28 Oct 2021 Public
-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf
drwx------ 4 lukas staff 128 2 Jul 2023 Users
-rw-r--r-- 1 lukas staff 17050804 27 Apr 19:18 cleanshot-live.log
-rw-r--r-- 1 lukas staff 9363061 27 Apr 19:24 cleanshot-screenpipe.log
-rw-r--r-- 1 lukas staff 0 12 Apr 12:50 clip.mp4
-rw-r--r-- 1 lukas staff 0 12 Apr 12:51 frame.jpg
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 2025 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 2025 raycast
-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin
-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh
-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd ~/.screenpipe
cd: no such file or directory: /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ npx screenpipe@latest record --ignored-windows "Boosteroid" --retention-days 7
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-06T20:27:32.721416Z INFO screenpipe_engine::auth_key: api auth: key resolved via auto-generated
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-05-06T20:27:32.831033Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-06T20:27:34.088403Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-06T20:27:34.089942Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-06T20:27:34.090417Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-06T20:27:34.112650Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-06T20:27:34.112711Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-06T20:27:34.619906Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-06T20:27:34.619937Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-06T20:27:34.619857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-06T20:27:34.619847Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-06T20:27:34.620018Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-06T20:27:34.624746Z INFO screenpipe_core::pipes: installed built-in pipe: day-recap
2026-05-06T20:27:34.626304Z INFO screenpipe_core::pipes: installed built-in pipe: standup-update
2026-05-06T20:27:34.628597Z INFO screenpipe_core::pipes: installed built-in pipe: ai-habits
2026-05-06T20:27:34.629463Z INFO screenpipe_core::pipes: installed built-in pipe: time-breakdown
2026-05-06T20:27:34.630081Z INFO screenpipe_core::pipes: installed built-in pipe: video-export
2026-05-06T20:27:34.630972Z INFO screenpipe_core::pipes: installed built-in pipe: meeting-summary
2026-05-06T20:27:34.631427Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-06T20:27:34.631521Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-06T20:27:34.631587Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-06T20:27:34.631640Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-06T20:27:34.631690Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-06T20:27:34.631738Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-06T20:27:34.631752Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ false │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 7 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ MacBook Pro Microphone (input) │
│ │ System Audio (output) │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-06T20:27:34.638384Z INFO screenpipe: starting UI event capture
2026-05-06T20:27:34.637679Z INFO screenpipe_core::pipes...
|
iTerm2
|
screenpipe"
|
NULL
|
4
|
|
5
|
-rw-r--r-- 1 lukas staff 1702453 28 Apr 17:23 -rw-r--r-- 1 lukas staff 1702453 28 Apr 17:23 compact_monitor_1_1777386198870.mp4
-rw-r--r-- 1 lukas staff 2034287 28 Apr 17:29 compact_monitor_1_1777386532344.mp4
-rw-r--r-- 1 lukas staff 1352893 28 Apr 17:34 compact_monitor_1_1777386875277.mp4
-rw-r--r-- 1 lukas staff 1873946 28 Apr 17:40 compact_monitor_1_1777387208685.mp4
-rw-r--r-- 1 lukas staff 1155463 28 Apr 17:45 compact_monitor_1_1777387548798.mp4
-rw-r--r-- 1 lukas staff 1428159 28 Apr 17:51 compact_monitor_1_1777387882691.mp4
-rw-r--r-- 1 lukas staff 1398484 28 Apr 17:56 compact_monitor_1_1777388213861.mp4
-rw-r--r-- 1 lukas staff 1688438 28 Apr 18:02 compact_monitor_1_1777388542869.mp4
-rw-r--r-- 1 lukas staff 2401161 28 Apr 18:07 compact_monitor_1_1777388869470.mp4
-rw-r--r-- 1 lukas staff 1283247 28 Apr 18:13 compact_monitor_1_1777389192202.mp4
-rw-r--r-- 1 lukas staff 1398160 28 Apr 18:18 compact_monitor_1_1777389525394.mp4
-rw-r--r-- 1 lukas staff 452906 28 Apr 18:24 compact_monitor_1_1777389856559.mp4
-rw-r--r-- 1 lukas staff 566518 28 Apr 18:29 compact_monitor_1_1777390191054.mp4
-rw-r--r-- 1 lukas staff 445894 28 Apr 18:35 compact_monitor_1_1777390513567.mp4
-rw-r--r-- 1 lukas staff 444044 28 Apr 18:40 compact_monitor_1_1777390841877.mp4
-rw-r--r-- 1 lukas staff 437853 28 Apr 18:46 compact_monitor_1_1777391162552.mp4
-rw-r--r-- 1 lukas staff 441008 28 Apr 18:51 compact_monitor_1_1777391489107.mp4
-rw-r--r-- 1 lukas staff 443934 28 Apr 18:57 compact_monitor_1_1777391823165.mp4
-rw-r--r-- 1 lukas staff 443624 28 Apr 19:02 compact_monitor_1_1777392146221.mp4
-rw-r--r-- 1 lukas staff 447164 28 Apr 19:07 compact_monitor_1_1777392469679.mp4
-rw-r--r-- 1 lukas staff 442431 28 Apr 19:13 compact_monitor_1_1777392792794.mp4
-rw-r--r-- 1 lukas staff 436805 28 Apr 19:18 compact_monitor_1_1777393109301.mp4
-rw-r--r-- 1 lukas staff 435633 28 Apr 19:23 compact_monitor_1_1777393423192.mp4
-rw-r--r-- 1 lukas staff 1162510 28 Apr 09:30 compact_monitor_2_1777357806702.mp4
-rw-r--r-- 1 lukas staff 3394878 28 Apr 09:35 compact_monitor_2_1777358126186.mp4
-rw-r--r-- 1 lukas staff 268044 28 Apr 09:40 compact_monitor_2_1777358443280.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 09:46 compact_monitor_2_1777358769231.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 09:51 compact_monitor_2_1777359084493.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 09:56 compact_monitor_2_1777359399758.mp4
-rw-r--r-- 1 lukas staff 266694 28 Apr 10:01 compact_monitor_2_1777359707884.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 10:06 compact_monitor_2_1777360016892.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 10:12 compact_monitor_2_1777360329199.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 10:17 compact_monitor_2_1777360641498.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 10:22 compact_monitor_2_1777360953971.mp4
-rw-r--r-- 1 lukas staff 267099 28 Apr 10:27 compact_monitor_2_1777361264266.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 10:33 compact_monitor_2_1777361583211.mp4
-rw-r--r-- 1 lukas staff 266829 28 Apr 10:38 compact_monitor_2_1777361903545.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 10:43 compact_monitor_2_1777362219032.mp4
-rw-r--r-- 1 lukas staff 265614 28 Apr 10:48 compact_monitor_2_1777362532674.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 10:54 compact_monitor_2_1777362845950.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 10:59 compact_monitor_2_1777363157577.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 11:04 compact_monitor_2_1777363473776.mp4
-rw-r--r-- 1 lukas staff 267099 28 Apr 11:09 compact_monitor_2_1777363782342.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 11:14 compact_monitor_2_1777364092822.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 11:20 compact_monitor_2_1777364400840.mp4
-rw-r--r-- 1 lukas staff 266694 28 Apr 11:25 compact_monitor_2_1777364709144.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 11:30 compact_monitor_2_1777365022090.mp4
-rw-r--r-- 1 lukas staff 264669 28 Apr 11:35 compact_monitor_2_1777365335928.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 11:40 compact_monitor_2_1777365649137.mp4
-rw-r--r-- 1 lukas staff 266964 28 Apr 11:46 compact_monitor_2_1777365962619.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 11:51 compact_monitor_2_1777366273740.mp4
-rw-r--r-- 1 lukas staff 265209 28 Apr 11:56 compact_monitor_2_1777366582034.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 12:01 compact_monitor_2_1777366886631.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 12:06 compact_monitor_2_1777367202805.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 12:11 compact_monitor_2_1777367518861.mp4
-rw-r--r-- 1 lukas staff 269261 28 Apr 12:17 compact_monitor_2_1777367837441.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 12:22 compact_monitor_2_1777368160952.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 12:28 compact_monitor_2_1777368477571.mp4
-rw-r--r-- 1 lukas staff 267234 28 Apr 12:33 compact_monitor_2_1777368792600.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 12:38 compact_monitor_2_1777369107069.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 12:43 compact_monitor_2_1777369421530.mp4
-rw-r--r-- 1 lukas staff 266829 28 Apr 12:48 compact_monitor_2_1777369731189.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 12:54 compact_monitor_2_1777370048214.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 12:59 compact_monitor_2_1777370363567.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 13:04 compact_monitor_2_1777370679314.mp4
-rw-r--r-- 1 lukas staff 268855 28 Apr 13:09 compact_monitor_2_1777370994284.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 13:15 compact_monitor_2_1777371309064.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 13:20 compact_monitor_2_1777371623643.mp4
-rw-r--r-- 1 lukas staff 266559 28 Apr 13:25 compact_monitor_2_1777371938006.mp4
-rw-r--r-- 1 lukas staff 265479 28 Apr 13:30 compact_monitor_2_1777372252120.mp4
-rw-r--r-- 1 lukas staff 266964 28 Apr 13:36 compact_monitor_2_1777372566394.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 13:41 compact_monitor_2_1777372880197.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 13:46 compact_monitor_2_1777373193667.mp4
-rw-r--r-- 1 lukas staff 265209 28 Apr 13:51 compact_monitor_2_1777373506832.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 13:56 compact_monitor_2_1777373816197.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 14:02 compact_monitor_2_1777374130774.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 14:07 compact_monitor_2_1777374443527.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 14:12 compact_monitor_2_1777374756405.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 14:17 compact_monitor_2_1777375070551.mp4
-rw-r--r-- 1 lukas staff 264939 28 Apr 14:23 compact_monitor_2_1777375397987.mp4
-rw-r--r-- 1 lukas staff 267504 28 Apr 14:28 compact_monitor_2_1777375715930.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 14:33 compact_monitor_2_1777376034152.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 14:39 compact_monitor_2_1777376348246.mp4
-rw-r--r-- 1 lukas staff 266019 28 Apr 14:44 compact_monitor_2_1777376657026.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 14:49 compact_monitor_2_1777376966683.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 14:54 compact_monitor_2_1777377280571.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:00 compact_monitor_2_1777377602616.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:05 compact_monitor_2_1777377915467.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 15:10 compact_monitor_2_1777378232424.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 15:15 compact_monitor_2_1777378547117.mp4
-rw-r--r-- 1 lukas staff 266154 28 Apr 15:21 compact_monitor_2_1777378865359.mp4
-rw-r--r-- 1 lukas staff 264804 28 Apr 15:26 compact_monitor_2_1777379183376.mp4
-rw-r--r-- 1 lukas staff 267774 28 Apr 15:31 compact_monitor_2_1777379502714.mp4
-rw-r--r-- 1 lukas staff 268046 28 Apr 15:37 compact_monitor_2_1777379819259.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 15:42 compact_monitor_2_1777380134674.mp4
-rw-r--r-- 1 lukas staff 265749 28 Apr 15:47 compact_monitor_2_1777380454708.mp4
-rw-r--r-- 1 lukas staff 265344 28 Apr 15:52 compact_monitor_2_1777380771150.mp4
-rw-r--r-- 1 lukas staff 265884 28 Apr 15:58 compact_monitor_2_1777381086934.mp4
-rw-r--r-- 1 lukas staff 268044 28 Apr 16:03 compact_monitor_2_1777381401816.mp4
-rw-r--r-- 1 lukas staff 269530 28 Apr 16:08 compact_monitor_2_1777381720100.mp4
-rw-r--r-- 1 lukas staff 268721 28 Apr 16:13 compact_monitor_2_1777382037168.mp4
-rw-r--r-- 1 lukas staff 268583 28 Apr 16:19 compact_monitor_2_1777382355014.mp4
-rw-r--r-- 1 lukas staff 266424 28 Apr 16:24 compact_monitor_2_1777382670965.mp4
-rw-r--r-- 1 lukas staff 266289 28 Apr 16:29 compact_monitor_2_1777382984987.mp4
-rw-r--r-- 1 lukas staff 265074 28 Apr 16:34 compact_monitor_2_1777383298084.mp4
-rw-r--r-- 1 lukas staff 236209 28 Apr 16:40 compact_monitor_2_1777383610070.mp4
-rw-r--r-- 1 lukas staff 1191690 28 Apr 17:01 compact_monitor_2_1777384877981.mp4
-rw-r--r-- 1 lukas staff 2975861 28 Apr 17:06 compact_monitor_2_1777385201736.mp4
-rw-r--r-- 1 lukas staff 5319560 28 Apr 17:12 compact_monitor_2_1777385529432.mp4
-rw-r--r-- 1 lukas staff 3006284 28 Apr 17:18 compact_monitor_2_1777385870812.mp4
-rw-r--r-- 1 lukas staff 2726877 28 Apr 17:23 compact_monitor_2_1777386204715.mp4
-rw-r--r-- 1 lukas staff 3315722 28 Apr 17:29 compact_monitor_2_1777386541280.mp4
-rw-r--r-- 1 lukas staff 1577465 28 Apr 17:34 compact_monitor_2_1777386883461.mp4
-rw-r--r-- 1 lukas staff 1745214 28 Apr 17:40 compact_monitor_2_1777387214543.mp4
-rw-r--r-- 1 lukas staff 950993 28 Apr 17:45 compact_monitor_2_1777387552842.mp4
-rw-r--r-- 1 lukas staff 429007 28 Apr 17:51 compact_monitor_2_1777387889075.mp4
-rw-r--r-- 1 lukas staff 884099 28 Apr 17:57 compact_monitor_2_1777388218623.mp4
-rw-r--r-- 1 lukas staff 2352504 28 Apr 18:02 compact_monitor_2_1777388548021.mp4
-rw-r--r-- 1 lukas staff 3298542 28 Apr 18:07 compact_monitor_2_1777388874095.mp4
-rw-r--r-- 1 lukas staff 2143027 28 Apr 18:13 compact_monitor_2_1777389196097.mp4
-rw-r--r-- 1 lukas staff 2448311 28 Apr 18:18 compact_monitor_2_1777389532297.mp4
-rw-r--r-- 1 lukas staff 2780051 28 Apr 18:24 compact_monitor_2_1777389861076.mp4
-rw-r--r-- 1 lukas staff 2715534 28 Apr 18:29 compact_monitor_2_1777390193677.mp4
-rw-r--r-- 1 lukas staff 2102173 28 Apr 18:35 compact_monitor_2_1777390515997.mp4
-rw-r--r-- 1 lukas staff 2324557 28 Apr 18:40 compact_monitor_2_1777390843577.mp4
-rw-r--r-- 1 lukas staff 1525510 28 Apr 18:46 compact_monitor_2_1777391163945.mp4
-rw-r--r-- 1 lukas staff 2776584 28 Apr 18:51 compact_monitor_2_1777391495138.mp4
-rw-r--r-- 1 lukas staff 1168205 28 Apr 18:57 compact_monitor_2_1777391825305.mp4
-rw-r--r-- 1 lukas staff 1736686 28 Apr 19:02 compact_monitor_2_1777392149583.mp4
-rw-r--r-- 1 lukas staff 2133415 28 Apr 19:07 compact_monitor_2_1777392471754.mp4
-rw-r--r-- 1 lukas staff 1289951 28 Apr 19:13 compact_monitor_2_1777392794343.mp4
-rw-r--r-- 1 lukas staff 223494 28 Apr 19:18 compact_monitor_2_1777393110228.mp4
-rw-r--r-- 1 lukas staff 222168 28 Apr 19:23 compact_monitor_2_1777393424109.mp4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-28 $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 22523176
drwxr-xr-x 30 lukas staff 960 28 Apr 09:18 .
drwx------+ 93 lukas staff 2976 28 Apr 16:51 ..
-rw-r--r--@ 1 lukas staff 8196 26 Apr 17:14 .DS_Store
drwxr-xr-x 3 lukas staff 96 26 Apr 19:23 .claude
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 167 lukas staff 5344 18 Apr 14:45 data
-rw-r--r--@ 1 lukas staff 11525263360 28 Apr 19:33 db.sqlite
-rw-r--r-- 1 lukas staff 65536 28 Apr 15:26 db.sqlite-shm
-rw-r--r-- 1 lukas staff 2323712 28 Apr 22:23 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 208424 17 Apr 21:06 screenpipe.2026-04-17.0.log
-rw-r--r-- 1 lukas staff 61983 18 Apr 14:45 screenpipe.2026-04-18.0.log
-rw-r--r-- 1 lukas staff 359800 20 Apr 18:52 screenpipe.2026-04-20.0.log
-rw-r--r-- 1 lukas staff 683671 21 Apr 20:18 screenpipe.2026-04-21.0.log
-rw-r--r-- 1 lukas staff 284763 22 Apr 19:10 screenpipe.2026-04-22.0.log
-rw-r--r-- 1 lukas staff 176386 23 Apr 14:01 screenpipe.2026-04-23.0.log
-rw-r--r-- 1 lukas staff 276189 24 Apr 22:35 screenpipe.2026-04-24.0.log
-rw-r--r-- 1 lukas staff 68794 25 Apr 19:40 screenpipe.2026-04-25.0.log
-rw-r--r-- 1 lukas staff 75543 26 Apr 22:56 screenpipe.2026-04-26.0.log
-rw-r--r-- 1 lukas staff 607811 27 Apr 20:42 screenpipe.2026-04-27.0.log
-rw-r--r-- 1 lukas staff 396094 28 Apr 22:23 screenpipe.2026-04-28.0.log
-rwxr-xr-x@ 1 lukas staff 14994 25 Apr 18:50 screenpipe_sync.sh
-rw-r--r--@ 1 lukas staff 34227 26 Apr 17:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-27
[2026-05-06 18:58:18] ========================================
[2026-05-06 18:58:18] Screenpipe sync starting for: 2026-04-27
[2026-05-06 18:58:18] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (7.7G)
Data dir: OK (242 files, 325M)
[+00m04s] ▶ Counting source rows for 2026-04-27
frames: 7543
elements: 470235
ui_events: 9909
ocr_text: 2193
meetings: 3
[+00m06s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m07s] ▶ Syncing data for 2026-04-27
video_chunks ✓ 0m11s
frames (7543 rows) ⠧ Runtime error near line 3: disk I/O error (10)
frames (7543 rows) ⠴ %
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-27
[2026-05-06 19:22:16] ========================================
[2026-05-06 19:22:16] Screenpipe sync starting for: 2026-04-27
[2026-05-06 19:22:16] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (7.7G)
Data dir: OK (242 files, 325M)
[+00m01s] ▶ Counting source rows for 2026-04-27
frames: 7543
elements: 470235
ui_events: 9909
ocr_text: 2193
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m03s] ▶ Syncing data for 2026-04-27
video_chunks ✓ 0m11s
frames (7543 rows) ✓ 4m40s
ocr_text (2193 rows) ✓ 0m25s
ui_events (9909 rows) ✓ 0m02s
elements (470235 rows) ✓ 2m46s
meetings (3 rows) ✓ 0m00s
[+08m07s] ▶ Updating FTS indexes
elements_fts ✓ 2m59s
frames_fts ✓ 6m07s
ui_events_fts ✓ 0m03s
[+17m16s] ▶ Verifying DB
frames: 7543 / 7543 ✓
elements: 470235 / 470235 ✓
ui_events: 9909 / 9909 ✓
ocr_text: 2193 / 2193 ✓
meetings: 3 / 3 ✓
[+18m46s] ▶ Copying data folder for 2026-04-27
rsync 2026-04-27/ → NAS ✓ 0m26s (242 files, 325M)
[2026-05-06 19:41:28] Archive DB size: 9.7G
[2026-05-06 19:41:28] Total time: 19m12s
[2026-05-06 19:41:28] Sync complete for 2026-04-27
[2026-05-06 19:41:28] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-28
[2026-05-06 19:44:49] ========================================
[2026-05-06 19:44:49] Screenpipe sync starting for: 2026-04-28
[2026-05-06 19:44:49] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (9.7G)
Data dir: OK (223 files, 159M)
[+00m00s] ▶ Counting source rows for 2026-04-28
frames: 4535
elements: 407532
ui_events: 8621
ocr_text: 1623
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m00s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-04-28
video_chunks ✓ 0m12s
frames (4535 rows) ✓ 1m30s
ocr_text (1623 rows) ✓ 0m32s
ui_events (8621 rows) ✓ 0m01s
elements (407532 rows) ✓ 1m02s
meetings (3 rows) ✓ 0m00s
[+03m19s] ▶ Updating FTS indexes
elements_fts ✓ 1m36s
frames_fts ✓ 2m28s
ui_events_fts ✓ 0m04s
[+07m27s] ▶ Verifying DB
frames: 4535 / 4535 ✓
elements: 407532 / 407532 ✓
ui_events: 8621 / 8621 ✓
ocr_text: 1623 / 1623 ✓
meetings: 3 / 3 ✓
[+08m59s] ▶ Copying data folder for 2026-04-28
rsync 2026-04-28/ → NAS ✓ 0m20s (223 files, 159M)
[2026-05-06 19:54:08] Archive DB size: 10G
[2026-05-06 19:54:08] Total time: 9m19s
[2026-05-06 19:54:08] Sync complete for 2026-04-28
[2026-05-06 19:54:08] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cat screenpipe_sync.sh
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ pkill -f screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm -rf ~/.screenpipe/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 0
drwxr-xr-x 2 lukas staff 64 6 May 20:22 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd .npm
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ ll
total 24
drwx------ 9 lukas staff 288 28 Apr 09:18 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
drwx------ 5 lukas staff 160 1 Nov 2021 _cacache
drwx------@ 2 lukas staff 64 28 Apr 09:18 _locks
drwx------ 15 lukas staff 480 27 Apr 19:54 _logs
drwxr-xr-x 67 lukas staff 2144 28 Apr 09:17 _npx
-rw-r--r--@ 1 lukas staff 0 26 Apr 19:10 _update-notifier-last-checked
-rw-r--r-- 1 lukas staff 173 28 Apr 09:18 anonymous-cli-metrics.json
-rw-r--r-- 1 lukas staff 4764 31 Jan 2024 eresolve-report.txt
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ rm -rf ~/.npm/_npx
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 52920
drwx------+ 92 lukas staff 2944 6 May 20:22 .
drwxr-xr-x 5 root admin 160 23 Aug 2024 ..
-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding
-rw-r--r--@ 1 lukas staff 28676 27 Apr 09:11 .DS_Store
drwx------+ 10 lukas staff 320 28 Apr 17:07 .Trash
drwx------ 5 lukas staff 160 1 Nov 2021 .aws
-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json
-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history
-rw-r--r--@ 1 lukas staff 115 18 Apr 13:19 .bashrc
drwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito
drwx------@ 6 lukas staff 192 9 Apr 19:53 .cache
drwxr-xr-x 20 lukas staff 640 27 Apr 08:58 .claude
-rw------- 1 lukas staff 28647 27 Apr 09:12 .claude.json
drwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium
drwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer
drwx------ 16 lukas staff 512 21 May 2025 .config
drwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue
drwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot
drwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor
drwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor
drwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona
drwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb
drwx------ 24 lukas staff 768 27 Apr 18:14 .docker
drwx------ 15 lukas staff 480 6 Jun 2023 .dropbox
drwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak
-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth
-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig
-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp
drwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon
drwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc
-rw------- 1 lukas staff 20 28 Apr 16:51 .lesshst
drwx------ 5 lukas staff 160 23 Dec 2024 .local
-rw------- 1 lukas staff 204 16 Mar 2024 .netrc
drwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp
-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history
-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer
drwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py
drwx------ 8 lukas staff 256 6 May 20:24 .npm
-rw------- 1 lukas staff 74 20 May 2024 .npmrc
drwx------ 32 lukas staff 1024 25 Jul 2025 .nvm
drwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman
-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile
-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history
drwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode
drwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight
drwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint
drwx------ 15 lukas staff 480 8 Aug 2025 .ssh
drwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit
drwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm
-rw------- 1 lukas staff 12143 27 Apr 14:58 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm
drwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf
drwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn
-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc
-rw-r--r-- 1 lukas staff 49518 21 Apr 09:09 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 2025 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 6116 20 Apr 19:52 .zprofile
-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy
-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave
-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save
-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees
-rw------- 1 lukas staff 50310 28 Apr 11:32 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 400 18 Apr 13:19 .zshrc
drwx------@ 9 lukas staff 288 20 Apr 20:55 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 2025 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 2025 DEV
drwx------@ 10 lukas staff 320 28 Apr 18:52 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 44 lukas staff 1408 24 Apr 16:53 Downloads
drwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen
drwx------@ 112 lukas staff 3584 2 Dec 09:19 Library
drwx------ 7 lukas staff 224 12 Feb 2024 Movies
drwx------+ 5 lukas staff 160 25 Sep 2023 Music
drwx------+ 9 lukas staff 288 25 Sep 2023 Pictures
drwx------ 3 lukas staff 96 8 Nov 2021 Postman
drwx------+ 4 lukas staff 128 28 Oct 2021 Public
-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf
drwx------ 4 lukas staff 128 2 Jul 2023 Users
-rw-r--r-- 1 lukas staff 17050804 27 Apr 19:18 cleanshot-live.log
-rw-r--r-- 1 lukas staff 9363061 27 Apr 19:24 cleanshot-screenpipe.log
-rw-r--r-- 1 lukas staff 0 12 Apr 12:50 clip.mp4
-rw-r--r-- 1 lukas staff 0 12 Apr 12:51 frame.jpg
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 2025 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 2025 raycast
-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin
-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh
-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd ~/.screenpipe
cd: no such file or directory: /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ npx screenpipe@latest record --ignored-windows "Boosteroid" --retention-days 7
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-06T20:27:32.721416Z INFO screenpipe_engine::auth_key: api auth: key resolved via auto-generated
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-05-06T20:27:32.831033Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-06T20:27:34.088403Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-06T20:27:34.089942Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-06T20:27:34.090417Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-06T20:27:34.112650Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-06T20:27:34.112711Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-06T20:27:34.619906Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-06T20:27:34.619937Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-06T20:27:34.619857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-06T20:27:34.619847Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-06T20:27:34.620018Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-06T20:27:34.624746Z INFO screenpipe_core::pipes: installed built-in pipe: day-recap
2026-05-06T20:27:34.626304Z INFO screenpipe_core::pipes: installed built-in pipe: standup-update
2026-05-06T20:27:34.628597Z INFO screenpipe_core::pipes: installed built-in pipe: ai-habits
2026-05-06T20:27:34.629463Z INFO screenpipe_core::pipes: installed built-in pipe: time-breakdown
2026-05-06T20:27:34.630081Z INFO screenpipe_core::pipes: installed built-in pipe: video-export
2026-05-06T20:27:34.630972Z INFO screenpipe_core::pipes: installed built-in pipe: meeting-summary
2026-05-06T20:27:34.631427Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-06T20:27:34.631521Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-06T20:27:34.631587Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-06T20:27:34.631640Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-06T20:27:34.631690Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-06T20:27:34.631738Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-06T20:27:34.631752Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ false │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 7 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ MacBook Pro Microphone (input) │
│ │ System Audio (output) │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-06T20:27:34.638384Z INFO screenpipe: starting UI event capture
2026-05-06T20:27:34.637679Z INFO screenpipe_core::pipes...
|
iTerm2
|
screenpipe"
|
NULL
|
5
|
|
51
|
-rw-r--r-- 1 lukas staff 950993 28 Apr 17:45 -rw-r--r-- 1 lukas staff 950993 28 Apr 17:45 compact_monitor_2_1777387552842.mp4
-rw-r--r-- 1 lukas staff 429007 28 Apr 17:51 compact_monitor_2_1777387889075.mp4
-rw-r--r-- 1 lukas staff 884099 28 Apr 17:57 compact_monitor_2_1777388218623.mp4
-rw-r--r-- 1 lukas staff 2352504 28 Apr 18:02 compact_monitor_2_1777388548021.mp4
-rw-r--r-- 1 lukas staff 3298542 28 Apr 18:07 compact_monitor_2_1777388874095.mp4
-rw-r--r-- 1 lukas staff 2143027 28 Apr 18:13 compact_monitor_2_1777389196097.mp4
-rw-r--r-- 1 lukas staff 2448311 28 Apr 18:18 compact_monitor_2_1777389532297.mp4
-rw-r--r-- 1 lukas staff 2780051 28 Apr 18:24 compact_monitor_2_1777389861076.mp4
-rw-r--r-- 1 lukas staff 2715534 28 Apr 18:29 compact_monitor_2_1777390193677.mp4
-rw-r--r-- 1 lukas staff 2102173 28 Apr 18:35 compact_monitor_2_1777390515997.mp4
-rw-r--r-- 1 lukas staff 2324557 28 Apr 18:40 compact_monitor_2_1777390843577.mp4
-rw-r--r-- 1 lukas staff 1525510 28 Apr 18:46 compact_monitor_2_1777391163945.mp4
-rw-r--r-- 1 lukas staff 2776584 28 Apr 18:51 compact_monitor_2_1777391495138.mp4
-rw-r--r-- 1 lukas staff 1168205 28 Apr 18:57 compact_monitor_2_1777391825305.mp4
-rw-r--r-- 1 lukas staff 1736686 28 Apr 19:02 compact_monitor_2_1777392149583.mp4
-rw-r--r-- 1 lukas staff 2133415 28 Apr 19:07 compact_monitor_2_1777392471754.mp4
-rw-r--r-- 1 lukas staff 1289951 28 Apr 19:13 compact_monitor_2_1777392794343.mp4
-rw-r--r-- 1 lukas staff 223494 28 Apr 19:18 compact_monitor_2_1777393110228.mp4
-rw-r--r-- 1 lukas staff 222168 28 Apr 19:23 compact_monitor_2_1777393424109.mp4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-28 $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 22523176
drwxr-xr-x 30 lukas staff 960 28 Apr 09:18 .
drwx------+ 93 lukas staff 2976 28 Apr 16:51 ..
-rw-r--r--@ 1 lukas staff 8196 26 Apr 17:14 .DS_Store
drwxr-xr-x 3 lukas staff 96 26 Apr 19:23 .claude
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 167 lukas staff 5344 18 Apr 14:45 data
-rw-r--r--@ 1 lukas staff 11525263360 28 Apr 19:33 db.sqlite
-rw-r--r-- 1 lukas staff 65536 28 Apr 15:26 db.sqlite-shm
-rw-r--r-- 1 lukas staff 2323712 28 Apr 22:23 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 208424 17 Apr 21:06 screenpipe.2026-04-17.0.log
-rw-r--r-- 1 lukas staff 61983 18 Apr 14:45 screenpipe.2026-04-18.0.log
-rw-r--r-- 1 lukas staff 359800 20 Apr 18:52 screenpipe.2026-04-20.0.log
-rw-r--r-- 1 lukas staff 683671 21 Apr 20:18 screenpipe.2026-04-21.0.log
-rw-r--r-- 1 lukas staff 284763 22 Apr 19:10 screenpipe.2026-04-22.0.log
-rw-r--r-- 1 lukas staff 176386 23 Apr 14:01 screenpipe.2026-04-23.0.log
-rw-r--r-- 1 lukas staff 276189 24 Apr 22:35 screenpipe.2026-04-24.0.log
-rw-r--r-- 1 lukas staff 68794 25 Apr 19:40 screenpipe.2026-04-25.0.log
-rw-r--r-- 1 lukas staff 75543 26 Apr 22:56 screenpipe.2026-04-26.0.log
-rw-r--r-- 1 lukas staff 607811 27 Apr 20:42 screenpipe.2026-04-27.0.log
-rw-r--r-- 1 lukas staff 396094 28 Apr 22:23 screenpipe.2026-04-28.0.log
-rwxr-xr-x@ 1 lukas staff 14994 25 Apr 18:50 screenpipe_sync.sh
-rw-r--r--@ 1 lukas staff 34227 26 Apr 17:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-27
[2026-05-06 18:58:18] ========================================
[2026-05-06 18:58:18] Screenpipe sync starting for: 2026-04-27
[2026-05-06 18:58:18] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (7.7G)
Data dir: OK (242 files, 325M)
[+00m04s] ▶ Counting source rows for 2026-04-27
frames: 7543
elements: 470235
ui_events: 9909
ocr_text: 2193
meetings: 3
[+00m06s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m07s] ▶ Syncing data for 2026-04-27
video_chunks ✓ 0m11s
frames (7543 rows) ⠧ Runtime error near line 3: disk I/O error (10)
frames (7543 rows) ⠴ %
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-27
[2026-05-06 19:22:16] ========================================
[2026-05-06 19:22:16] Screenpipe sync starting for: 2026-04-27
[2026-05-06 19:22:16] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (7.7G)
Data dir: OK (242 files, 325M)
[+00m01s] ▶ Counting source rows for 2026-04-27
frames: 7543
elements: 470235
ui_events: 9909
ocr_text: 2193
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m03s] ▶ Syncing data for 2026-04-27
video_chunks ✓ 0m11s
frames (7543 rows) ✓ 4m40s
ocr_text (2193 rows) ✓ 0m25s
ui_events (9909 rows) ✓ 0m02s
elements (470235 rows) ✓ 2m46s
meetings (3 rows) ✓ 0m00s
[+08m07s] ▶ Updating FTS indexes
elements_fts ✓ 2m59s
frames_fts ✓ 6m07s
ui_events_fts ✓ 0m03s
[+17m16s] ▶ Verifying DB
frames: 7543 / 7543 ✓
elements: 470235 / 470235 ✓
ui_events: 9909 / 9909 ✓
ocr_text: 2193 / 2193 ✓
meetings: 3 / 3 ✓
[+18m46s] ▶ Copying data folder for 2026-04-27
rsync 2026-04-27/ → NAS ✓ 0m26s (242 files, 325M)
[2026-05-06 19:41:28] Archive DB size: 9.7G
[2026-05-06 19:41:28] Total time: 19m12s
[2026-05-06 19:41:28] Sync complete for 2026-04-27
[2026-05-06 19:41:28] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-28
[2026-05-06 19:44:49] ========================================
[2026-05-06 19:44:49] Screenpipe sync starting for: 2026-04-28
[2026-05-06 19:44:49] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (9.7G)
Data dir: OK (223 files, 159M)
[+00m00s] ▶ Counting source rows for 2026-04-28
frames: 4535
elements: 407532
ui_events: 8621
ocr_text: 1623
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m00s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-04-28
video_chunks ✓ 0m12s
frames (4535 rows) ✓ 1m30s
ocr_text (1623 rows) ✓ 0m32s
ui_events (8621 rows) ✓ 0m01s
elements (407532 rows) ✓ 1m02s
meetings (3 rows) ✓ 0m00s
[+03m19s] ▶ Updating FTS indexes
elements_fts ✓ 1m36s
frames_fts ✓ 2m28s
ui_events_fts ✓ 0m04s
[+07m27s] ▶ Verifying DB
frames: 4535 / 4535 ✓
elements: 407532 / 407532 ✓
ui_events: 8621 / 8621 ✓
ocr_text: 1623 / 1623 ✓
meetings: 3 / 3 ✓
[+08m59s] ▶ Copying data folder for 2026-04-28
rsync 2026-04-28/ → NAS ✓ 0m20s (223 files, 159M)
[2026-05-06 19:54:08] Archive DB size: 10G
[2026-05-06 19:54:08] Total time: 9m19s
[2026-05-06 19:54:08] Sync complete for 2026-04-28
[2026-05-06 19:54:08] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cat screenpipe_sync.sh
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ pkill -f screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm -rf ~/.screenpipe/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 0
drwxr-xr-x 2 lukas staff 64 6 May 20:22 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd .npm
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ ll
total 24
drwx------ 9 lukas staff 288 28 Apr 09:18 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
drwx------ 5 lukas staff 160 1 Nov 2021 _cacache
drwx------@ 2 lukas staff 64 28 Apr 09:18 _locks
drwx------ 15 lukas staff 480 27 Apr 19:54 _logs
drwxr-xr-x 67 lukas staff 2144 28 Apr 09:17 _npx
-rw-r--r--@ 1 lukas staff 0 26 Apr 19:10 _update-notifier-last-checked
-rw-r--r-- 1 lukas staff 173 28 Apr 09:18 anonymous-cli-metrics.json
-rw-r--r-- 1 lukas staff 4764 31 Jan 2024 eresolve-report.txt
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ rm -rf ~/.npm/_npx
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 52920
drwx------+ 92 lukas staff 2944 6 May 20:22 .
drwxr-xr-x 5 root admin 160 23 Aug 2024 ..
-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding
-rw-r--r--@ 1 lukas staff 28676 27 Apr 09:11 .DS_Store
drwx------+ 10 lukas staff 320 28 Apr 17:07 .Trash
drwx------ 5 lukas staff 160 1 Nov 2021 .aws
-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json
-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history
-rw-r--r--@ 1 lukas staff 115 18 Apr 13:19 .bashrc
drwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito
drwx------@ 6 lukas staff 192 9 Apr 19:53 .cache
drwxr-xr-x 20 lukas staff 640 27 Apr 08:58 .claude
-rw------- 1 lukas staff 28647 27 Apr 09:12 .claude.json
drwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium
drwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer
drwx------ 16 lukas staff 512 21 May 2025 .config
drwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue
drwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot
drwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor
drwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor
drwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona
drwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb
drwx------ 24 lukas staff 768 27 Apr 18:14 .docker
drwx------ 15 lukas staff 480 6 Jun 2023 .dropbox
drwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak
-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth
-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig
-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp
drwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon
drwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc
-rw------- 1 lukas staff 20 28 Apr 16:51 .lesshst
drwx------ 5 lukas staff 160 23 Dec 2024 .local
-rw------- 1 lukas staff 204 16 Mar 2024 .netrc
drwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp
-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history
-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer
drwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py
drwx------ 8 lukas staff 256 6 May 20:24 .npm
-rw------- 1 lukas staff 74 20 May 2024 .npmrc
drwx------ 32 lukas staff 1024 25 Jul 2025 .nvm
drwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman
-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile
-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history
drwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode
drwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight
drwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint
drwx------ 15 lukas staff 480 8 Aug 2025 .ssh
drwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit
drwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm
-rw------- 1 lukas staff 12143 27 Apr 14:58 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm
drwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf
drwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn
-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc
-rw-r--r-- 1 lukas staff 49518 21 Apr 09:09 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 2025 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 6116 20 Apr 19:52 .zprofile
-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy
-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave
-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save
-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees
-rw------- 1 lukas staff 50310 28 Apr 11:32 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 400 18 Apr 13:19 .zshrc
drwx------@ 9 lukas staff 288 20 Apr 20:55 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 2025 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 2025 DEV
drwx------@ 10 lukas staff 320 28 Apr 18:52 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 44 lukas staff 1408 24 Apr 16:53 Downloads
drwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen
drwx------@ 112 lukas staff 3584 2 Dec 09:19 Library
drwx------ 7 lukas staff 224 12 Feb 2024 Movies
drwx------+ 5 lukas staff 160 25 Sep 2023 Music
drwx------+ 9 lukas staff 288 25 Sep 2023 Pictures
drwx------ 3 lukas staff 96 8 Nov 2021 Postman
drwx------+ 4 lukas staff 128 28 Oct 2021 Public
-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf
drwx------ 4 lukas staff 128 2 Jul 2023 Users
-rw-r--r-- 1 lukas staff 17050804 27 Apr 19:18 cleanshot-live.log
-rw-r--r-- 1 lukas staff 9363061 27 Apr 19:24 cleanshot-screenpipe.log
-rw-r--r-- 1 lukas staff 0 12 Apr 12:50 clip.mp4
-rw-r--r-- 1 lukas staff 0 12 Apr 12:51 frame.jpg
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 2025 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 2025 raycast
-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin
-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh
-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd ~/.screenpipe
cd: no such file or directory: /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ npx screenpipe@latest record --ignored-windows "Boosteroid" --retention-days 7
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-06T20:27:32.721416Z INFO screenpipe_engine::auth_key: api auth: key resolved via auto-generated
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-05-06T20:27:32.831033Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-06T20:27:34.088403Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-06T20:27:34.089942Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-06T20:27:34.090417Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-06T20:27:34.112650Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-06T20:27:34.112711Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-06T20:27:34.619906Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-06T20:27:34.619937Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-06T20:27:34.619857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-06T20:27:34.619847Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-06T20:27:34.620018Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-06T20:27:34.624746Z INFO screenpipe_core::pipes: installed built-in pipe: day-recap
2026-05-06T20:27:34.626304Z INFO screenpipe_core::pipes: installed built-in pipe: standup-update
2026-05-06T20:27:34.628597Z INFO screenpipe_core::pipes: installed built-in pipe: ai-habits
2026-05-06T20:27:34.629463Z INFO screenpipe_core::pipes: installed built-in pipe: time-breakdown
2026-05-06T20:27:34.630081Z INFO screenpipe_core::pipes: installed built-in pipe: video-export
2026-05-06T20:27:34.630972Z INFO screenpipe_core::pipes: installed built-in pipe: meeting-summary
2026-05-06T20:27:34.631427Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-06T20:27:34.631521Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-06T20:27:34.631587Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-06T20:27:34.631640Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-06T20:27:34.631690Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-06T20:27:34.631738Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-06T20:27:34.631752Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ false │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 7 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ MacBook Pro Microphone (input) │
│ │ System Audio (output) │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-06T20:27:34.638384Z INFO screenpipe: starting UI event capture
2026-05-06T20:27:34.637679Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-05-06T20:27:34.649154Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(94))
2026-05-06T20:27:34.652794Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-06T20:27:34.655839Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-06T20:27:34.673877Z INFO screenpipe_engine::ui_recorder: UI recording session started: 54869993-7b4b-491f-b717-2a583517f9c5
2026-05-06T20:27:34.673910Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-06T20:27:34.674057Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-05 17:27:34.674056 UTC to 2026-05-06 17:27:34.674056 UTC)
2026-05-06T20:27:34.674892Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-06T20:27:34.675788Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 0 frame entries, coverage from 2026-05-05 17:27:34.674056 UTC
2026-05-06T20:27:34.686546Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-06T20:27:34.691371Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-06T20:27:36.270608Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-06T20:27:36.270669Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-06T20:27:36.270714Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-06T20:27:36.932583Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-06T20:27:36.932852Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-06T20:27:36.932882Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-06T20:27:36.932899Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-06T20:27:36.932901Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-06T20:27:39.158281Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-05-06T20:27:39.593177Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=1, dur=101ms
2026-05-06T20:27:40.672366Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-05-06T20:27:41.257664Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=2, dur=140ms
2026-05-06T20:27:44.641022Z INFO screenpipe_audio::transcription::engine: whisper model available: "/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin"
2026-05-06T20:27:44.641079Z INFO screenpipe_audio::transcription::whisper::model: whisper context: gpu acceleration enabled (Metal on macOS, Vulkan on Windows)
2026-05-06T20:27:44.641086Z INFO screenpipe_audio::transcription::engine: loading whisper model with GPU acceleration...
whisper_init_from_file_with_params_no_state: loading model from '/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin'
whisper_init_with_params_no_state: use gpu = 1
whisper_init_with_params_no_state: flash attn = 0
whisper_init_with_params_no_state: gpu_device = 0
whisper_init_with_params_no_state: dtw = 0
ggml_metal_device_init: tensor API disabled for pre-M5 and pre-A19 devices
ggml_metal_library_init: using embedded metal library
ggml_metal_library_init: loaded in 0.041 sec
ggml_metal_rsets_init: creating a residency set collection (keep_alive = 180 s)
ggml_metal_device_init: GPU name: Apple M1
ggml_metal_device_init: GPU family: MTLGPUFamilyApple7 (1007)
ggml_metal_device_init: GPU family: MTLGPUFamilyCommon3 (3003)
ggml_metal_device_init: GPU family: MTLGPUFamilyMetal3 (5001)
ggml_metal_device_init: simdgroup reduction = true
ggml_metal_device_init: simdgroup matrix mul. = true
ggml_metal_device_init: has unified memory = true
ggml_metal_device_init: has bfloat = true
ggml_metal_device_init: has tensor = false
ggml_metal_device_init: use residency sets = true
ggml_metal_device_init: use shared buffers = true
ggml_metal_device_init: recommendedMaxWorkingSetSize = 11453.25 MB
whisper_init_with_params_no_state: devices = 3
whisper_init_with_params_no_state: backends = 3
whisper_model_load: loading model
whisper_model_load: n_vocab = 51865
whisper_model_load: n_audio_ctx = 1500
whisper_model_load: n_audio_state = 384
whisper_model_load: n_audio_head = 6
whisper_model_load: n_audio_layer = 4
whisper_model_load: n_text_ctx = 448
whisper_model_load: n_text_state = 384
whisper_model_load: n_text_head = 6
whisper_model_load: n_text_layer = 4
whisper_model_load: n_mels = 80
whisper_model_load: ftype = 1
whisper_model_load: qntvr = 0
whisper_model_load: type = 1 (tiny)
whisper_model_load: adding 1608 extra tokens
whisper_model_load: n_langs = 99
whisper_model_load: Metal total size = 77.11 MB
whisper_model_load: model size = 77.11 MB
2026-05-06T20:27:44.857210Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
2026-05-06T20:27:44.861912Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)
2026-05-06T20:27:44.862480Z INFO screenpipe_audio::audio_manager::manager: audio manager started
2026-05-06T20:27:44.862525Z INFO screenpipe_audio::audio_manager::manager: calendar-assisted speaker diarization: listening for meeting events
2026-05-06T20:27:47.831980Z INFO screenpipe_audio::device::device_manager: starting recording for device: System Audio (output)
2026-05-06T20:27:47.832191Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for System Audio (output) (unknown / 30s segments)
2026-05-06T20:27:47.906029Z INFO screenpipe_audio::device::device_manager: starting recording for device: MacBook Pro Microphone (input)
2026-05-06T20:27:47.906090Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for MacBook Pro Microphone (input) (wired / 30s segments)
2026-05-06T20:28:15.251258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8608554010568040663, trigger=visual_change)
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state...
|
iTerm2
|
screenpipe"
|
NULL
|
51
|
|
52
|
-rw-r--r-- 1 lukas staff 3298542 28 Apr 18:07 -rw-r--r-- 1 lukas staff 3298542 28 Apr 18:07 compact_monitor_2_1777388874095.mp4
-rw-r--r-- 1 lukas staff 2143027 28 Apr 18:13 compact_monitor_2_1777389196097.mp4
-rw-r--r-- 1 lukas staff 2448311 28 Apr 18:18 compact_monitor_2_1777389532297.mp4
-rw-r--r-- 1 lukas staff 2780051 28 Apr 18:24 compact_monitor_2_1777389861076.mp4
-rw-r--r-- 1 lukas staff 2715534 28 Apr 18:29 compact_monitor_2_1777390193677.mp4
-rw-r--r-- 1 lukas staff 2102173 28 Apr 18:35 compact_monitor_2_1777390515997.mp4
-rw-r--r-- 1 lukas staff 2324557 28 Apr 18:40 compact_monitor_2_1777390843577.mp4
-rw-r--r-- 1 lukas staff 1525510 28 Apr 18:46 compact_monitor_2_1777391163945.mp4
-rw-r--r-- 1 lukas staff 2776584 28 Apr 18:51 compact_monitor_2_1777391495138.mp4
-rw-r--r-- 1 lukas staff 1168205 28 Apr 18:57 compact_monitor_2_1777391825305.mp4
-rw-r--r-- 1 lukas staff 1736686 28 Apr 19:02 compact_monitor_2_1777392149583.mp4
-rw-r--r-- 1 lukas staff 2133415 28 Apr 19:07 compact_monitor_2_1777392471754.mp4
-rw-r--r-- 1 lukas staff 1289951 28 Apr 19:13 compact_monitor_2_1777392794343.mp4
-rw-r--r-- 1 lukas staff 223494 28 Apr 19:18 compact_monitor_2_1777393110228.mp4
-rw-r--r-- 1 lukas staff 222168 28 Apr 19:23 compact_monitor_2_1777393424109.mp4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data/2026-04-28 $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 22523176
drwxr-xr-x 30 lukas staff 960 28 Apr 09:18 .
drwx------+ 93 lukas staff 2976 28 Apr 16:51 ..
-rw-r--r--@ 1 lukas staff 8196 26 Apr 17:14 .DS_Store
drwxr-xr-x 3 lukas staff 96 26 Apr 19:23 .claude
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 167 lukas staff 5344 18 Apr 14:45 data
-rw-r--r--@ 1 lukas staff 11525263360 28 Apr 19:33 db.sqlite
-rw-r--r-- 1 lukas staff 65536 28 Apr 15:26 db.sqlite-shm
-rw-r--r-- 1 lukas staff 2323712 28 Apr 22:23 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 196994 16 Apr 20:33 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 208424 17 Apr 21:06 screenpipe.2026-04-17.0.log
-rw-r--r-- 1 lukas staff 61983 18 Apr 14:45 screenpipe.2026-04-18.0.log
-rw-r--r-- 1 lukas staff 359800 20 Apr 18:52 screenpipe.2026-04-20.0.log
-rw-r--r-- 1 lukas staff 683671 21 Apr 20:18 screenpipe.2026-04-21.0.log
-rw-r--r-- 1 lukas staff 284763 22 Apr 19:10 screenpipe.2026-04-22.0.log
-rw-r--r-- 1 lukas staff 176386 23 Apr 14:01 screenpipe.2026-04-23.0.log
-rw-r--r-- 1 lukas staff 276189 24 Apr 22:35 screenpipe.2026-04-24.0.log
-rw-r--r-- 1 lukas staff 68794 25 Apr 19:40 screenpipe.2026-04-25.0.log
-rw-r--r-- 1 lukas staff 75543 26 Apr 22:56 screenpipe.2026-04-26.0.log
-rw-r--r-- 1 lukas staff 607811 27 Apr 20:42 screenpipe.2026-04-27.0.log
-rw-r--r-- 1 lukas staff 396094 28 Apr 22:23 screenpipe.2026-04-28.0.log
-rwxr-xr-x@ 1 lukas staff 14994 25 Apr 18:50 screenpipe_sync.sh
-rw-r--r--@ 1 lukas staff 34227 26 Apr 17:01 sync.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-27
[2026-05-06 18:58:18] ========================================
[2026-05-06 18:58:18] Screenpipe sync starting for: 2026-04-27
[2026-05-06 18:58:18] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (7.7G)
Data dir: OK (242 files, 325M)
[+00m04s] ▶ Counting source rows for 2026-04-27
frames: 7543
elements: 470235
ui_events: 9909
ocr_text: 2193
meetings: 3
[+00m06s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m07s] ▶ Syncing data for 2026-04-27
video_chunks ✓ 0m11s
frames (7543 rows) ⠧ Runtime error near line 3: disk I/O error (10)
frames (7543 rows) ⠴ %
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-27
[2026-05-06 19:22:16] ========================================
[2026-05-06 19:22:16] Screenpipe sync starting for: 2026-04-27
[2026-05-06 19:22:16] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (7.7G)
Data dir: OK (242 files, 325M)
[+00m01s] ▶ Counting source rows for 2026-04-27
frames: 7543
elements: 470235
ui_events: 9909
ocr_text: 2193
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m01s
creating FTS tables ✓ 0m00s
[+00m03s] ▶ Syncing data for 2026-04-27
video_chunks ✓ 0m11s
frames (7543 rows) ✓ 4m40s
ocr_text (2193 rows) ✓ 0m25s
ui_events (9909 rows) ✓ 0m02s
elements (470235 rows) ✓ 2m46s
meetings (3 rows) ✓ 0m00s
[+08m07s] ▶ Updating FTS indexes
elements_fts ✓ 2m59s
frames_fts ✓ 6m07s
ui_events_fts ✓ 0m03s
[+17m16s] ▶ Verifying DB
frames: 7543 / 7543 ✓
elements: 470235 / 470235 ✓
ui_events: 9909 / 9909 ✓
ocr_text: 2193 / 2193 ✓
meetings: 3 / 3 ✓
[+18m46s] ▶ Copying data folder for 2026-04-27
rsync 2026-04-27/ → NAS ✓ 0m26s (242 files, 325M)
[2026-05-06 19:41:28] Archive DB size: 9.7G
[2026-05-06 19:41:28] Total time: 19m12s
[2026-05-06 19:41:28] Sync complete for 2026-04-27
[2026-05-06 19:41:28] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-28
[2026-05-06 19:44:49] ========================================
[2026-05-06 19:44:49] Screenpipe sync starting for: 2026-04-28
[2026-05-06 19:44:49] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (9.7G)
Data dir: OK (223 files, 159M)
[+00m00s] ▶ Counting source rows for 2026-04-28
frames: 4535
elements: 407532
ui_events: 8621
ocr_text: 1623
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m00s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-04-28
video_chunks ✓ 0m12s
frames (4535 rows) ✓ 1m30s
ocr_text (1623 rows) ✓ 0m32s
ui_events (8621 rows) ✓ 0m01s
elements (407532 rows) ✓ 1m02s
meetings (3 rows) ✓ 0m00s
[+03m19s] ▶ Updating FTS indexes
elements_fts ✓ 1m36s
frames_fts ✓ 2m28s
ui_events_fts ✓ 0m04s
[+07m27s] ▶ Verifying DB
frames: 4535 / 4535 ✓
elements: 407532 / 407532 ✓
ui_events: 8621 / 8621 ✓
ocr_text: 1623 / 1623 ✓
meetings: 3 / 3 ✓
[+08m59s] ▶ Copying data folder for 2026-04-28
rsync 2026-04-28/ → NAS ✓ 0m20s (223 files, 159M)
[2026-05-06 19:54:08] Archive DB size: 10G
[2026-05-06 19:54:08] Total time: 9m19s
[2026-05-06 19:54:08] Sync complete for 2026-04-28
[2026-05-06 19:54:08] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cat screenpipe_sync.sh
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ pkill -f screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm -rf ~/.screenpipe/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 0
drwxr-xr-x 2 lukas staff 64 6 May 20:22 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd .npm
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ ll
total 24
drwx------ 9 lukas staff 288 28 Apr 09:18 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
drwx------ 5 lukas staff 160 1 Nov 2021 _cacache
drwx------@ 2 lukas staff 64 28 Apr 09:18 _locks
drwx------ 15 lukas staff 480 27 Apr 19:54 _logs
drwxr-xr-x 67 lukas staff 2144 28 Apr 09:17 _npx
-rw-r--r--@ 1 lukas staff 0 26 Apr 19:10 _update-notifier-last-checked
-rw-r--r-- 1 lukas staff 173 28 Apr 09:18 anonymous-cli-metrics.json
-rw-r--r-- 1 lukas staff 4764 31 Jan 2024 eresolve-report.txt
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ rm -rf ~/.npm/_npx
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 52920
drwx------+ 92 lukas staff 2944 6 May 20:22 .
drwxr-xr-x 5 root admin 160 23 Aug 2024 ..
-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding
-rw-r--r--@ 1 lukas staff 28676 27 Apr 09:11 .DS_Store
drwx------+ 10 lukas staff 320 28 Apr 17:07 .Trash
drwx------ 5 lukas staff 160 1 Nov 2021 .aws
-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json
-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history
-rw-r--r--@ 1 lukas staff 115 18 Apr 13:19 .bashrc
drwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito
drwx------@ 6 lukas staff 192 9 Apr 19:53 .cache
drwxr-xr-x 20 lukas staff 640 27 Apr 08:58 .claude
-rw------- 1 lukas staff 28647 27 Apr 09:12 .claude.json
drwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium
drwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer
drwx------ 16 lukas staff 512 21 May 2025 .config
drwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue
drwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot
drwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor
drwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor
drwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona
drwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb
drwx------ 24 lukas staff 768 27 Apr 18:14 .docker
drwx------ 15 lukas staff 480 6 Jun 2023 .dropbox
drwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak
-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth
-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig
-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp
drwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon
drwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc
-rw------- 1 lukas staff 20 28 Apr 16:51 .lesshst
drwx------ 5 lukas staff 160 23 Dec 2024 .local
-rw------- 1 lukas staff 204 16 Mar 2024 .netrc
drwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp
-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history
-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer
drwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py
drwx------ 8 lukas staff 256 6 May 20:24 .npm
-rw------- 1 lukas staff 74 20 May 2024 .npmrc
drwx------ 32 lukas staff 1024 25 Jul 2025 .nvm
drwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman
-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile
-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history
drwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode
drwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight
drwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint
drwx------ 15 lukas staff 480 8 Aug 2025 .ssh
drwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit
drwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm
-rw------- 1 lukas staff 12143 27 Apr 14:58 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm
drwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf
drwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn
-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc
-rw-r--r-- 1 lukas staff 49518 21 Apr 09:09 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 2025 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 6116 20 Apr 19:52 .zprofile
-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy
-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave
-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save
-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees
-rw------- 1 lukas staff 50310 28 Apr 11:32 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 400 18 Apr 13:19 .zshrc
drwx------@ 9 lukas staff 288 20 Apr 20:55 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 2025 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 2025 DEV
drwx------@ 10 lukas staff 320 28 Apr 18:52 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 44 lukas staff 1408 24 Apr 16:53 Downloads
drwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen
drwx------@ 112 lukas staff 3584 2 Dec 09:19 Library
drwx------ 7 lukas staff 224 12 Feb 2024 Movies
drwx------+ 5 lukas staff 160 25 Sep 2023 Music
drwx------+ 9 lukas staff 288 25 Sep 2023 Pictures
drwx------ 3 lukas staff 96 8 Nov 2021 Postman
drwx------+ 4 lukas staff 128 28 Oct 2021 Public
-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf
drwx------ 4 lukas staff 128 2 Jul 2023 Users
-rw-r--r-- 1 lukas staff 17050804 27 Apr 19:18 cleanshot-live.log
-rw-r--r-- 1 lukas staff 9363061 27 Apr 19:24 cleanshot-screenpipe.log
-rw-r--r-- 1 lukas staff 0 12 Apr 12:50 clip.mp4
-rw-r--r-- 1 lukas staff 0 12 Apr 12:51 frame.jpg
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 2025 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 2025 raycast
-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin
-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh
-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd ~/.screenpipe
cd: no such file or directory: /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ npx screenpipe@latest record --ignored-windows "Boosteroid" --retention-days 7
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-06T20:27:32.721416Z INFO screenpipe_engine::auth_key: api auth: key resolved via auto-generated
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-05-06T20:27:32.831033Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-06T20:27:34.088403Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-06T20:27:34.089942Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-06T20:27:34.090417Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-06T20:27:34.112650Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-06T20:27:34.112711Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-06T20:27:34.619906Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-06T20:27:34.619937Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-06T20:27:34.619857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-06T20:27:34.619847Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-06T20:27:34.620018Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-06T20:27:34.624746Z INFO screenpipe_core::pipes: installed built-in pipe: day-recap
2026-05-06T20:27:34.626304Z INFO screenpipe_core::pipes: installed built-in pipe: standup-update
2026-05-06T20:27:34.628597Z INFO screenpipe_core::pipes: installed built-in pipe: ai-habits
2026-05-06T20:27:34.629463Z INFO screenpipe_core::pipes: installed built-in pipe: time-breakdown
2026-05-06T20:27:34.630081Z INFO screenpipe_core::pipes: installed built-in pipe: video-export
2026-05-06T20:27:34.630972Z INFO screenpipe_core::pipes: installed built-in pipe: meeting-summary
2026-05-06T20:27:34.631427Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-06T20:27:34.631521Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-06T20:27:34.631587Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-06T20:27:34.631640Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-06T20:27:34.631690Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-06T20:27:34.631738Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-06T20:27:34.631752Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ false │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 7 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ MacBook Pro Microphone (input) │
│ │ System Audio (output) │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-06T20:27:34.638384Z INFO screenpipe: starting UI event capture
2026-05-06T20:27:34.637679Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
2026-05-06T20:27:34.649154Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(94))
2026-05-06T20:27:34.652794Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-06T20:27:34.655839Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-06T20:27:34.673877Z INFO screenpipe_engine::ui_recorder: UI recording session started: 54869993-7b4b-491f-b717-2a583517f9c5
2026-05-06T20:27:34.673910Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-06T20:27:34.674057Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-05 17:27:34.674056 UTC to 2026-05-06 17:27:34.674056 UTC)
2026-05-06T20:27:34.674892Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-06T20:27:34.675788Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 0 frame entries, coverage from 2026-05-05 17:27:34.674056 UTC
2026-05-06T20:27:34.686546Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-06T20:27:34.691371Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-06T20:27:36.270608Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-06T20:27:36.270669Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-06T20:27:36.270714Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-06T20:27:36.932583Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-06T20:27:36.932852Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-06T20:27:36.932882Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-06T20:27:36.932899Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-06T20:27:36.932901Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-06T20:27:39.158281Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 3 excluded)
2026-05-06T20:27:39.593177Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=1, dur=101ms
2026-05-06T20:27:40.672366Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 3 excluded)
2026-05-06T20:27:41.257664Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=2, dur=140ms
2026-05-06T20:27:44.641022Z INFO screenpipe_audio::transcription::engine: whisper model available: "/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin"
2026-05-06T20:27:44.641079Z INFO screenpipe_audio::transcription::whisper::model: whisper context: gpu acceleration enabled (Metal on macOS, Vulkan on Windows)
2026-05-06T20:27:44.641086Z INFO screenpipe_audio::transcription::engine: loading whisper model with GPU acceleration...
whisper_init_from_file_with_params_no_state: loading model from '/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin'
whisper_init_with_params_no_state: use gpu = 1
whisper_init_with_params_no_state: flash attn = 0
whisper_init_with_params_no_state: gpu_device = 0
whisper_init_with_params_no_state: dtw = 0
ggml_metal_device_init: tensor API disabled for pre-M5 and pre-A19 devices
ggml_metal_library_init: using embedded metal library
ggml_metal_library_init: loaded in 0.041 sec
ggml_metal_rsets_init: creating a residency set collection (keep_alive = 180 s)
ggml_metal_device_init: GPU name: Apple M1
ggml_metal_device_init: GPU family: MTLGPUFamilyApple7 (1007)
ggml_metal_device_init: GPU family: MTLGPUFamilyCommon3 (3003)
ggml_metal_device_init: GPU family: MTLGPUFamilyMetal3 (5001)
ggml_metal_device_init: simdgroup reduction = true
ggml_metal_device_init: simdgroup matrix mul. = true
ggml_metal_device_init: has unified memory = true
ggml_metal_device_init: has bfloat = true
ggml_metal_device_init: has tensor = false
ggml_metal_device_init: use residency sets = true
ggml_metal_device_init: use shared buffers = true
ggml_metal_device_init: recommendedMaxWorkingSetSize = 11453.25 MB
whisper_init_with_params_no_state: devices = 3
whisper_init_with_params_no_state: backends = 3
whisper_model_load: loading model
whisper_model_load: n_vocab = 51865
whisper_model_load: n_audio_ctx = 1500
whisper_model_load: n_audio_state = 384
whisper_model_load: n_audio_head = 6
whisper_model_load: n_audio_layer = 4
whisper_model_load: n_text_ctx = 448
whisper_model_load: n_text_state = 384
whisper_model_load: n_text_head = 6
whisper_model_load: n_text_layer = 4
whisper_model_load: n_mels = 80
whisper_model_load: ftype = 1
whisper_model_load: qntvr = 0
whisper_model_load: type = 1 (tiny)
whisper_model_load: adding 1608 extra tokens
whisper_model_load: n_langs = 99
whisper_model_load: Metal total size = 77.11 MB
whisper_model_load: model size = 77.11 MB
2026-05-06T20:27:44.857210Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
2026-05-06T20:27:44.861912Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)
2026-05-06T20:27:44.862480Z INFO screenpipe_audio::audio_manager::manager: audio manager started
2026-05-06T20:27:44.862525Z INFO screenpipe_audio::audio_manager::manager: calendar-assisted speaker diarization: listening for meeting events
2026-05-06T20:27:47.831980Z INFO screenpipe_audio::device::device_manager: starting recording for device: System Audio (output)
2026-05-06T20:27:47.832191Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for System Audio (output) (unknown / 30s segments)
2026-05-06T20:27:47.906029Z INFO screenpipe_audio::device::device_manager: starting recording for device: MacBook Pro Microphone (input)
2026-05-06T20:27:47.906090Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for MacBook Pro Microphone (input) (wired / 30s segments)
2026-05-06T20:28:15.251258Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8608554010568040663, trigger=visual_change)
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 ...
|
iTerm2
|
screenpipe"
|
NULL
|
52
|
|
53
|
rsync 2026-04-27/ → NAS ✓ 0m26s (242 f rsync 2026-04-27/ → NAS ✓ 0m26s (242 files, 325M)
[2026-05-06 19:41:28] Archive DB size: 9.7G
[2026-05-06 19:41:28] Total time: 19m12s
[2026-05-06 19:41:28] Sync complete for 2026-04-27
[2026-05-06 19:41:28] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-28
[2026-05-06 19:44:49] ========================================
[2026-05-06 19:44:49] Screenpipe sync starting for: 2026-04-28
[2026-05-06 19:44:49] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (9.7G)
Data dir: OK (223 files, 159M)
[+00m00s] ▶ Counting source rows for 2026-04-28
frames: 4535
elements: 407532
ui_events: 8621
ocr_text: 1623
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m00s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-04-28
video_chunks ✓ 0m12s
frames (4535 rows) ✓ 1m30s
ocr_text (1623 rows) ✓ 0m32s
ui_events (8621 rows) ✓ 0m01s
elements (407532 rows) ✓ 1m02s
meetings (3 rows) ✓ 0m00s
[+03m19s] ▶ Updating FTS indexes
elements_fts ✓ 1m36s
frames_fts ✓ 2m28s
ui_events_fts ✓ 0m04s
[+07m27s] ▶ Verifying DB
frames: 4535 / 4535 ✓
elements: 407532 / 407532 ✓
ui_events: 8621 / 8621 ✓
ocr_text: 1623 / 1623 ✓
meetings: 3 / 3 ✓
[+08m59s] ▶ Copying data folder for 2026-04-28
rsync 2026-04-28/ → NAS ✓ 0m20s (223 files, 159M)
[2026-05-06 19:54:08] Archive DB size: 10G
[2026-05-06 19:54:08] Total time: 9m19s
[2026-05-06 19:54:08] Sync complete for 2026-04-28
[2026-05-06 19:54:08] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cat screenpipe_sync.sh
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ pkill -f screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm -rf ~/.screenpipe/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 0
drwxr-xr-x 2 lukas staff 64 6 May 20:22 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd .npm
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ ll
total 24
drwx------ 9 lukas staff 288 28 Apr 09:18 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
drwx------ 5 lukas staff 160 1 Nov 2021 _cacache
drwx------@ 2 lukas staff 64 28 Apr 09:18 _locks
drwx------ 15 lukas staff 480 27 Apr 19:54 _logs
drwxr-xr-x 67 lukas staff 2144 28 Apr 09:17 _npx
-rw-r--r--@ 1 lukas staff 0 26 Apr 19:10 _update-notifier-last-checked
-rw-r--r-- 1 lukas staff 173 28 Apr 09:18 anonymous-cli-metrics.json
-rw-r--r-- 1 lukas staff 4764 31 Jan 2024 eresolve-report.txt
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ rm -rf ~/.npm/_npx
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 52920
drwx------+ 92 lukas staff 2944 6 May 20:22 .
drwxr-xr-x 5 root admin 160 23 Aug 2024 ..
-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding
-rw-r--r--@ 1 lukas staff 28676 27 Apr 09:11 .DS_Store
drwx------+ 10 lukas staff 320 28 Apr 17:07 .Trash
drwx------ 5 lukas staff 160 1 Nov 2021 .aws
-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json
-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history
-rw-r--r--@ 1 lukas staff 115 18 Apr 13:19 .bashrc
drwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito
drwx------@ 6 lukas staff 192 9 Apr 19:53 .cache
drwxr-xr-x 20 lukas staff 640 27 Apr 08:58 .claude
-rw------- 1 lukas staff 28647 27 Apr 09:12 .claude.json
drwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium
drwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer
drwx------ 16 lukas staff 512 21 May 2025 .config
drwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue
drwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot
drwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor
drwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor
drwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona
drwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb
drwx------ 24 lukas staff 768 27 Apr 18:14 .docker
drwx------ 15 lukas staff 480 6 Jun 2023 .dropbox
drwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak
-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth
-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig
-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp
drwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon
drwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc
-rw------- 1 lukas staff 20 28 Apr 16:51 .lesshst
drwx------ 5 lukas staff 160 23 Dec 2024 .local
-rw------- 1 lukas staff 204 16 Mar 2024 .netrc
drwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp
-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history
-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer
drwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py
drwx------ 8 lukas staff 256 6 May 20:24 .npm
-rw------- 1 lukas staff 74 20 May 2024 .npmrc
drwx------ 32 lukas staff 1024 25 Jul 2025 .nvm
drwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman
-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile
-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history
drwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode
drwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight
drwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint
drwx------ 15 lukas staff 480 8 Aug 2025 .ssh
drwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit
drwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm
-rw------- 1 lukas staff 12143 27 Apr 14:58 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm
drwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf
drwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn
-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc
-rw-r--r-- 1 lukas staff 49518 21 Apr 09:09 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 2025 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 6116 20 Apr 19:52 .zprofile
-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy
-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave
-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save
-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees
-rw------- 1 lukas staff 50310 28 Apr 11:32 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 400 18 Apr 13:19 .zshrc
drwx------@ 9 lukas staff 288 20 Apr 20:55 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 2025 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 2025 DEV
drwx------@ 10 lukas staff 320 28 Apr 18:52 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 44 lukas staff 1408 24 Apr 16:53 Downloads
drwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen
drwx------@ 112 lukas staff 3584 2 Dec 09:19 Library
drwx------ 7 lukas staff 224 12 Feb 2024 Movies
drwx------+ 5 lukas staff 160 25 Sep 2023 Music
drwx------+ 9 lukas staff 288 25 Sep 2023 Pictures
drwx------ 3 lukas staff 96 8 Nov 2021 Postman
drwx------+ 4 lukas staff 128 28 Oct 2021 Public
-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf
drwx------ 4 lukas staff 128 2 Jul 2023 Users
-rw-r--r-- 1 lukas staff 17050804 27 Apr 19:18 cleanshot-live.log
-rw-r--r-- 1 lukas staff 9363061 27 Apr 19:24 cleanshot-screenpipe.log
-rw-r--r-- 1 lukas staff 0 12 Apr 12:50 clip.mp4
-rw-r--r-- 1 lukas staff 0 12 Apr 12:51 frame.jpg
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 2025 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 2025 raycast
-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin
-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh
-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd ~/.screenpipe
cd: no such file or directory: /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ npx screenpipe@latest record --ignored-windows "Boosteroid" --retention-days 7
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-06T20:27:32.721416Z INFO screenpipe_engine::auth_key: api auth: key resolved via auto-generated
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-05-06T20:27:32.831033Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-06T20:27:34.088403Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-06T20:27:34.089942Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-06T20:27:34.090417Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-06T20:27:34.112650Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-06T20:27:34.112711Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-06T20:27:34.619906Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-06T20:27:34.619937Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-06T20:27:34.619857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-06T20:27:34.619847Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-06T20:27:34.620018Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-06T20:27:34.624746Z INFO screenpipe_core::pipes: installed built-in pipe: day-recap
2026-05-06T20:27:34.626304Z INFO screenpipe_core::pipes: installed built-in pipe: standup-update
2026-05-06T20:27:34.628597Z INFO screenpipe_core::pipes: installed built-in pipe: ai-habits
2026-05-06T20:27:34.629463Z INFO screenpipe_core::pipes: installed built-in pipe: time-breakdown
2026-05-06T20:27:34.630081Z INFO screenpipe_core::pipes: installed built-in pipe: video-export
2026-05-06T20:27:34.630972Z INFO screenpipe_core::pipes: installed built-in pipe: meeting-summary
2026-05-06T20:27:34.631427Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-06T20:27:34.631521Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-06T20:27:34.631587Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-06T20:27:34.631640Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-06T20:27:34.631690Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-06T20:27:34.631738Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-06T20:27:34.631752Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ false │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 7 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ MacBook Pro Microphone (input) │
│ │ System Audio (output) │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: [URL_WITH_CREDENTIALS] ~ $ 2026-05-06T20:31:45.865813Z INFO screenpipe_audio::device::device_manager: Stopping device: MacBook Pro Microphone (input)
2026-05-06T20:31:45.865820Z INFO screenpipe_audio::device::device_manager: Stopping device: MacBook Pro Microphone (input)
2026-05-06T20:31:45.892593Z INFO screenpipe_audio::audio_manager::manager: audio manager stopped
2026-05-06T20:31:45.892684Z INFO screenpipe: stopping UI event capture
2026-05-06T20:31:45.893002Z INFO screenpipe_engine::meeting_detector: meeting v2: shutdown received, exiting detection loop
2026-05-06T20:31:45.893977Z INFO screenpipe: received shutdown signal for VisionManager
2026-05-06T20:31:45.894556Z INFO screenpipe_engine::vision_manager::manager: Shutting down VisionManager
2026-05-06T20:31:45.894516Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker shutting down
2026-05-06T20:31:45.894602Z INFO screenpipe_engine::vision_manager::manager: Stopping VisionManager
2026-05-06T20:31:45.895419Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-05-06T20:31:45.895898Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 1
2026-05-06T20:31:45.980559Z INFO screenpipe_engine::ui_recorder: UI recording session ended: 54869993-7b4b-491f-b717-2a583517f9c5
2026-05-06T20:31:45.980777Z INFO screenpipe: shutdown complete
ggml_metal_free: deallocating
2026-05-06T20:31:46.374234Z ERROR screenpipe_engine::event_driven_capture: event capture failed (trigger=click, monitor=1): monitor capture failed: capture task panicked: task 770 was cancelled
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ;3B
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-06T20:32:21.850318Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-06T20:32:21.937393Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-06T20:32:23.002257Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-06T20:32:23.006683Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-06T20:32:23.008348Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-06T20:32:23.030912Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-06T20:32:23.030979Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-06T20:32:23.031261Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-06T20:32:23.031328Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-06T20:32:23.031199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-06T20:32:23.031387Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-06T20:32:23.031253Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-06T20:32:23.034682Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-06T20:32:23.035042Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-06T20:32:23.035480Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-06T20:32:23.035607Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-06T20:32:23.035705Z INFO screenpipe_core::pipes: load...
|
iTerm2
|
screenpipe"
|
NULL
|
53
|
|
54
|
[2026-05-06 19:41:28] Archive DB size: 9.7G
[2026 [2026-05-06 19:41:28] Archive DB size: 9.7G
[2026-05-06 19:41:28] Total time: 19m12s
[2026-05-06 19:41:28] Sync complete for 2026-04-27
[2026-05-06 19:41:28] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh 2026-04-28
[2026-05-06 19:44:49] ========================================
[2026-05-06 19:44:49] Screenpipe sync starting for: 2026-04-28
[2026-05-06 19:44:49] ========================================
[+00m00s] ▶ Preflight checks
Source DB: OK ( 11G)
NAS mount: OK /Volumes/screenpipe
Archive DB: exists (9.7G)
Data dir: OK (223 files, 159M)
[+00m00s] ▶ Counting source rows for 2026-04-28
frames: 4535
elements: 407532
ui_events: 8621
ocr_text: 1623
meetings: 3
[+00m02s] ▶ Initialising tables, indexes, FTS
creating tables ✓ 0m00s
creating indexes ✓ 0m00s
creating FTS tables ✓ 0m00s
[+00m02s] ▶ Syncing data for 2026-04-28
video_chunks ✓ 0m12s
frames (4535 rows) ✓ 1m30s
ocr_text (1623 rows) ✓ 0m32s
ui_events (8621 rows) ✓ 0m01s
elements (407532 rows) ✓ 1m02s
meetings (3 rows) ✓ 0m00s
[+03m19s] ▶ Updating FTS indexes
elements_fts ✓ 1m36s
frames_fts ✓ 2m28s
ui_events_fts ✓ 0m04s
[+07m27s] ▶ Verifying DB
frames: 4535 / 4535 ✓
elements: 407532 / 407532 ✓
ui_events: 8621 / 8621 ✓
ocr_text: 1623 / 1623 ✓
meetings: 3 / 3 ✓
[+08m59s] ▶ Copying data folder for 2026-04-28
rsync 2026-04-28/ → NAS ✓ 0m20s (223 files, 159M)
[2026-05-06 19:54:08] Archive DB size: 10G
[2026-05-06 19:54:08] Total time: 9m19s
[2026-05-06 19:54:08] Sync complete for 2026-04-28
[2026-05-06 19:54:08] ========================================
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cat screenpipe_sync.sh
#!/bin/bash
# screenpipe_sync.sh
# Syncs Screenpipe SQLite data to a NAS archive database (append-only, no deletions).
# Also copies the day's video/frame data folder to the NAS.
#
# Usage:
# ./screenpipe_sync.sh # syncs yesterday (default)
# ./screenpipe_sync.sh 2026-04-15 # syncs a specific date
# ./screenpipe_sync.sh today # syncs today so far
#
# Cron example (runs at 3am daily):
# 0 3 * * * /Users/lukas/.screenpipe/screenpipe_sync.sh >> /Users/lukas/.screenpipe/sync.log 2>&1
set -euo pipefail
# ─── CONFIG ───────────────────────────────────────────────────────────────────
DB_SRC="${SCREENPIPE_DB:-$HOME/.screenpipe/db.sqlite}"
NAS_MOUNT="${NAS_MOUNT:-/Volumes/screenpipe}"
NAS_DB="$NAS_MOUNT/archive.db"
NAS_DATA="$NAS_MOUNT/data"
LOG_FILE="$HOME/.screenpipe/sync.log"
# ──────────────────────────────────────────────────────────────────────────────
# ─── HELPERS ──────────────────────────────────────────────────────────────────
SCRIPT_START=$(date +%s)
log() {
local msg="[$(date '+%Y-%m-%d %H:%M:%S')] $*"
echo "$msg" | tee -a "$LOG_FILE"
}
step() {
local now=$(date +%s)
local elapsed=$(( now - SCRIPT_START ))
local min=$(( elapsed / 60 ))
local sec=$(( elapsed % 60 ))
printf "\n[+%02dm%02ds] ▶ %s\n" "$min" "$sec" "$*" | tee -a "$LOG_FILE"
}
run_sqlite_heredoc() {
local label="$1"
local sql="$2"
local start=$(date +%s)
printf " %-36s " "$label"
sqlite3 "$DB_SRC" <<< "$sql" &
local pid=$!
local spin=[PASSWORD] '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local i=0
while kill -0 "$pid" 2>/dev/null; do
printf "\r %-36s %s " "$label" "${spin[$i]}"
i=$(( (i + 1) % 10 ))
sleep 0.2
done
wait "$pid"
local rc=$?
if [ $rc -ne 0 ]; then
printf "\r %-36s ✗ FAILED\n" "$label" | tee -a "$LOG_FILE"
exit $rc
fi
local dur=$(( $(date +%s) - start ))
printf "\r %-36s ✓ %dm%02ds\n" "$label" "$(( dur / 60 ))" "$(( dur % 60 ))" | tee -a "$LOG_FILE"
}
check() {
local label="$1" got="$2" expected="$3"
if [ "$got" -eq "$expected" ]; then
printf " %-20s %s / %s ✓\n" "$label:" "$got" "$expected"
else
printf " %-20s %s / %s ✗ MISMATCH\n" "$label:" "$got" "$expected"
fi
}
# ──────────────────────────────────────────────────────────────────────────────
# ─── DATE ARGUMENT ────────────────────────────────────────────────────────────
if [ "${1:-}" = "today" ]; then
TARGET_DATE=$(date +%Y-%m-%d)
elif [ -n "${1:-}" ]; then
TARGET_DATE="$1"
if ! [[ "$TARGET_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "ERROR: Invalid date format. Use YYYY-MM-DD, 'today', or no argument for yesterday."
exit 1
fi
else
TARGET_DATE=$(date -v-1d +%Y-%m-%d)
fi
log "========================================"
log "Screenpipe sync starting for: $TARGET_DATE"
log "========================================"
# ─── PREFLIGHT ────────────────────────────────────────────────────────────────
step "Preflight checks"
if [ ! -f "$DB_SRC" ]; then
log "ERROR: Source DB not found at $DB_SRC"; exit 1
fi
printf " %-20s %s (%s)\n" "Source DB:" "OK" "$(du -sh "$DB_SRC" | cut -f1)"
if [ ! -d "$NAS_MOUNT" ]; then
log "ERROR: NAS not mounted at $NAS_MOUNT"; exit 1
fi
printf " %-20s %s\n" "NAS mount:" "OK $NAS_MOUNT"
# Check if DB already synced for this date
DB_ALREADY_SYNCED=false
if [ -f "$NAS_DB" ]; then
EXISTING=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';" 2>/dev/null || echo "0")
if [ "$EXISTING" -gt "0" ]; then
log "Date $TARGET_DATE already has $EXISTING frames in archive — skipping DB sync"
DB_ALREADY_SYNCED=true
else
printf " %-20s %s (%s)\n" "Archive DB:" "exists" "$(du -sh "$NAS_DB" | cut -f1)"
fi
else
printf " %-20s %s\n" "Archive DB:" "will be created"
fi
# Source data dir for this date
DATA_SRC="$HOME/.screenpipe/data/data/$TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
DATA_SIZE=$(du -sh "$DATA_SRC" | cut -f1)
DATA_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
printf " %-20s %s (%s files, %s)\n" "Data dir:" "OK" "$DATA_FILES" "$DATA_SIZE"
else
printf " %-20s %s\n" "Data dir:" "not found — skipping file copy"
fi
# ─── DB SYNC ──────────────────────────────────────────────────────────────────
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── COUNT SOURCE ROWS ────────────────────────────────────────────────────
step "Counting source rows for $TARGET_DATE"
SRC_FRAMES=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
SRC_ELEMENTS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_UI=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
SRC_OCR=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
SRC_MEETINGS=$(sqlite3 "$DB_SRC" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start) = '$TARGET_DATE';")
printf " %-20s %s\n" "frames:" "$SRC_FRAMES"
printf " %-20s %s\n" "elements:" "$SRC_ELEMENTS"
printf " %-20s %s\n" "ui_events:" "$SRC_UI"
printf " %-20s %s\n" "ocr_text:" "$SRC_OCR"
printf " %-20s %s\n" "meetings:" "$SRC_MEETINGS"
if [ "$SRC_FRAMES" -eq "0" ]; then
log "No frames found for $TARGET_DATE — skipping DB sync"
DB_ALREADY_SYNCED=true
fi
fi
if [ "$DB_ALREADY_SYNCED" = false ]; then
# ─── INIT TABLES ──────────────────────────────────────────────────────────
step "Initialising tables, indexes, FTS"
run_sqlite_heredoc "creating tables" "
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
DETACH nas;
"
run_sqlite_heredoc "creating indexes" "
ATTACH '$NAS_DB' AS nas;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_id ON elements(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_elements_frame_src_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX IF NOT EXISTS nas.idx_meetings_start ON meetings(meeting_start);
CREATE INDEX IF NOT EXISTS nas.idx_video_chunks_device ON video_chunks(device_name);
DETACH nas;
"
run_sqlite_heredoc "creating FTS tables" "
ATTACH '$NAS_DB' AS nas;
CREATE VIRTUAL TABLE IF NOT EXISTS nas.elements_fts USING fts5(
text, role, frame_id UNINDEXED,
content='elements', content_rowid='id', tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.frames_fts USING fts5(
full_text, app_name, window_name, browser_url, id UNINDEXED,
tokenize='unicode61'
);
CREATE VIRTUAL TABLE IF NOT EXISTS nas.ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
);
DETACH nas;
"
# ─── SYNC DATA ────────────────────────────────────────────────────────────
step "Syncing data for $TARGET_DATE"
run_sqlite_heredoc "video_chunks" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.video_chunks
SELECT * FROM main.video_chunks
WHERE id IN (
SELECT DISTINCT video_chunk_id FROM main.frames
WHERE date(timestamp) = '$TARGET_DATE' AND video_chunk_id IS NOT NULL
);
DETACH nas;
"
run_sqlite_heredoc "frames ($SRC_FRAMES rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ocr_text ($SRC_OCR rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ocr_text
SELECT o.* FROM main.ocr_text o
JOIN main.frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "ui_events ($SRC_UI rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.ui_events
SELECT * FROM main.ui_events WHERE date(timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "elements ($SRC_ELEMENTS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE';
DETACH nas;
"
run_sqlite_heredoc "meetings ($SRC_MEETINGS rows)" "
ATTACH '$NAS_DB' AS nas;
INSERT OR IGNORE INTO nas.meetings
SELECT * FROM main.meetings WHERE date(meeting_start) = '$TARGET_DATE';
DETACH nas;
"
# ─── FTS UPDATE ───────────────────────────────────────────────────────────
step "Updating FTS indexes"
run_sqlite_heredoc "elements_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.elements_fts(rowid, text, role)
SELECT e.id, e.text, e.role
FROM nas.elements e
JOIN nas.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$TARGET_DATE'
AND e.text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "frames_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.frames_fts(rowid, full_text, app_name, window_name, browser_url, id)
SELECT id, full_text, app_name, window_name, browser_url, id
FROM nas.frames
WHERE date(timestamp) = '$TARGET_DATE'
AND full_text IS NOT NULL;
DETACH nas;
"
run_sqlite_heredoc "ui_events_fts" "
ATTACH '$NAS_DB' AS nas;
INSERT INTO nas.ui_events_fts(rowid, text_content, app_name, window_title, element_name)
SELECT id, text_content, app_name, window_title, element_name
FROM nas.ui_events
WHERE date(timestamp) = '$TARGET_DATE'
AND text_content IS NOT NULL;
DETACH nas;
"
# ─── VERIFY DB ────────────────────────────────────────────────────────────
step "Verifying DB"
V_FRAMES=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM frames WHERE date(timestamp) = '$TARGET_DATE';")
V_ELEMENTS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_UI=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '$TARGET_DATE';")
V_OCR=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM ocr_text WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$TARGET_DATE');")
V_MEETINGS=$(sqlite3 "$NAS_DB" "SELECT COUNT(*) FROM meetings WHERE date(meeting_start)= '$TARGET_DATE';")
check "frames" "$V_FRAMES" "$SRC_FRAMES"
check "elements" "$V_ELEMENTS" "$SRC_ELEMENTS"
check "ui_events" "$V_UI" "$SRC_UI"
check "ocr_text" "$V_OCR" "$SRC_OCR"
check "meetings" "$V_MEETINGS" "$SRC_MEETINGS"
fi
# ─── COPY DATA FOLDER ─────────────────────────────────────────────────────────
# Always runs regardless of DB sync status
step "Copying data folder for $TARGET_DATE"
if [ -d "$DATA_SRC" ]; then
mkdir -p "$NAS_DATA/$TARGET_DATE"
RSYNC_START=$(date +%s)
printf " %-36s " "rsync $TARGET_DATE/ → NAS"
rsync -a --ignore-existing \
"$DATA_SRC/" \
"$NAS_DATA/$TARGET_DATE/" \
2>>"$LOG_FILE"
RSYNC_DUR=$(( $(date +%s) - RSYNC_START ))
COPIED_FILES=$(ls "$NAS_DATA/$TARGET_DATE" | wc -l | tr -d ' ')
SRC_FILES=$(ls "$DATA_SRC" | wc -l | tr -d ' ')
COPIED_SIZE=$(du -sh "$NAS_DATA/$TARGET_DATE" | cut -f1)
if [ "$COPIED_FILES" -eq "$SRC_FILES" ]; then
printf "\r %-36s ✓ %dm%02ds (%s files, %s)\n" \
"rsync $TARGET_DATE/ → NAS" \
"$(( RSYNC_DUR / 60 ))" "$(( RSYNC_DUR % 60 ))" \
"$COPIED_FILES" "$COPIED_SIZE" | tee -a "$LOG_FILE"
else
printf "\r %-36s ✗ %s / %s files\n" \
"rsync $TARGET_DATE/ → NAS" "$COPIED_FILES" "$SRC_FILES" | tee -a "$LOG_FILE"
fi
else
printf " %-36s %s\n" "rsync $TARGET_DATE/ → NAS" "skipped (no source dir)"
fi
# ─── SUMMARY ──────────────────────────────────────────────────────────────────
TOTAL_ELAPSED=$(( $(date +%s) - SCRIPT_START ))
DB_SIZE=$(du -sh "$NAS_DB" | cut -f1)
echo ""
log "Archive DB size: $DB_SIZE"
log "Total time: $(( TOTAL_ELAPSED / 60 ))m$(( TOTAL_ELAPSED % 60 ))s"
log "Sync complete for $TARGET_DATE"
log "========================================"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ pkill -f screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ rm -rf ~/.screenpipe/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 0
drwxr-xr-x 2 lukas staff 64 6 May 20:22 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd .npm
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ ll
total 24
drwx------ 9 lukas staff 288 28 Apr 09:18 .
drwx------+ 92 lukas staff 2944 6 May 20:22 ..
drwx------ 5 lukas staff 160 1 Nov 2021 _cacache
drwx------@ 2 lukas staff 64 28 Apr 09:18 _locks
drwx------ 15 lukas staff 480 27 Apr 19:54 _logs
drwxr-xr-x 67 lukas staff 2144 28 Apr 09:17 _npx
-rw-r--r--@ 1 lukas staff 0 26 Apr 19:10 _update-notifier-last-checked
-rw-r--r-- 1 lukas staff 173 28 Apr 09:18 anonymous-cli-metrics.json
-rw-r--r-- 1 lukas staff 4764 31 Jan 2024 eresolve-report.txt
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ rm -rf ~/.npm/_npx
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.npm $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 52920
drwx------+ 92 lukas staff 2944 6 May 20:22 .
drwxr-xr-x 5 root admin 160 23 Aug 2024 ..
-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding
-rw-r--r--@ 1 lukas staff 28676 27 Apr 09:11 .DS_Store
drwx------+ 10 lukas staff 320 28 Apr 17:07 .Trash
drwx------ 5 lukas staff 160 1 Nov 2021 .aws
-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json
-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history
-rw-r--r--@ 1 lukas staff 115 18 Apr 13:19 .bashrc
drwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito
drwx------@ 6 lukas staff 192 9 Apr 19:53 .cache
drwxr-xr-x 20 lukas staff 640 27 Apr 08:58 .claude
-rw------- 1 lukas staff 28647 27 Apr 09:12 .claude.json
drwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium
drwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer
drwx------ 16 lukas staff 512 21 May 2025 .config
drwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue
drwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot
drwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor
drwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor
drwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona
drwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb
drwx------ 24 lukas staff 768 27 Apr 18:14 .docker
drwx------ 15 lukas staff 480 6 Jun 2023 .dropbox
drwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak
-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth
-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig
-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp
drwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon
drwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc
-rw------- 1 lukas staff 20 28 Apr 16:51 .lesshst
drwx------ 5 lukas staff 160 23 Dec 2024 .local
-rw------- 1 lukas staff 204 16 Mar 2024 .netrc
drwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp
-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history
-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer
drwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py
drwx------ 8 lukas staff 256 6 May 20:24 .npm
-rw------- 1 lukas staff 74 20 May 2024 .npmrc
drwx------ 32 lukas staff 1024 25 Jul 2025 .nvm
drwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman
-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile
-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history
drwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode
drwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight
drwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint
drwx------ 15 lukas staff 480 8 Aug 2025 .ssh
drwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit
drwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm
-rw------- 1 lukas staff 12143 27 Apr 14:58 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm
drwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf
drwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn
-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc
-rw-r--r-- 1 lukas staff 49518 21 Apr 09:09 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 2025 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 6116 20 Apr 19:52 .zprofile
-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy
-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave
-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save
-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees
-rw------- 1 lukas staff 50310 28 Apr 11:32 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 400 18 Apr 13:19 .zshrc
drwx------@ 9 lukas staff 288 20 Apr 20:55 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 2025 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 2025 DEV
drwx------@ 10 lukas staff 320 28 Apr 18:52 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 44 lukas staff 1408 24 Apr 16:53 Downloads
drwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen
drwx------@ 112 lukas staff 3584 2 Dec 09:19 Library
drwx------ 7 lukas staff 224 12 Feb 2024 Movies
drwx------+ 5 lukas staff 160 25 Sep 2023 Music
drwx------+ 9 lukas staff 288 25 Sep 2023 Pictures
drwx------ 3 lukas staff 96 8 Nov 2021 Postman
drwx------+ 4 lukas staff 128 28 Oct 2021 Public
-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf
drwx------ 4 lukas staff 128 2 Jul 2023 Users
-rw-r--r-- 1 lukas staff 17050804 27 Apr 19:18 cleanshot-live.log
-rw-r--r-- 1 lukas staff 9363061 27 Apr 19:24 cleanshot-screenpipe.log
-rw-r--r-- 1 lukas staff 0 12 Apr 12:50 clip.mp4
-rw-r--r-- 1 lukas staff 0 12 Apr 12:51 frame.jpg
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 2025 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 2025 raycast
-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin
-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh
-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ cd ~/.screenpipe
cd: no such file or directory: /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ npx screenpipe@latest record --ignored-windows "Boosteroid" --retention-days 7
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-06T20:27:32.721416Z INFO screenpipe_engine::auth_key: api auth: key resolved via auto-generated
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-05-06T20:27:32.831033Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-06T20:27:34.088403Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-06T20:27:34.089942Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-06T20:27:34.090417Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-06T20:27:34.112650Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-06T20:27:34.112711Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-06T20:27:34.619906Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-06T20:27:34.619937Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-06T20:27:34.619857Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-06T20:27:34.619847Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-06T20:27:34.620018Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-06T20:27:34.624746Z INFO screenpipe_core::pipes: installed built-in pipe: day-recap
2026-05-06T20:27:34.626304Z INFO screenpipe_core::pipes: installed built-in pipe: standup-update
2026-05-06T20:27:34.628597Z INFO screenpipe_core::pipes: installed built-in pipe: ai-habits
2026-05-06T20:27:34.629463Z INFO screenpipe_core::pipes: installed built-in pipe: time-breakdown
2026-05-06T20:27:34.630081Z INFO screenpipe_core::pipes: installed built-in pipe: video-export
2026-05-06T20:27:34.630972Z INFO screenpipe_core::pipes: installed built-in pipe: meeting-summary
2026-05-06T20:27:34.631427Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-06T20:27:34.631521Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-06T20:27:34.631587Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-06T20:27:34.631640Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-06T20:27:34.631690Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-06T20:27:34.631738Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-06T20:27:34.631752Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ false │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 7 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ MacBook Pro Microphone (input) │
│ │ System Audio (output) │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: [URL_WITH_CREDENTIALS] ~ $ 2026-05-06T20:31:45.865813Z INFO screenpipe_audio::device::device_manager: Stopping device: MacBook Pro Microphone (input)
2026-05-06T20:31:45.865820Z INFO screenpipe_audio::device::device_manager: Stopping device: MacBook Pro Microphone (input)
2026-05-06T20:31:45.892593Z INFO screenpipe_audio::audio_manager::manager: audio manager stopped
2026-05-06T20:31:45.892684Z INFO screenpipe: stopping UI event capture
2026-05-06T20:31:45.893002Z INFO screenpipe_engine::meeting_detector: meeting v2: shutdown received, exiting detection loop
2026-05-06T20:31:45.893977Z INFO screenpipe: received shutdown signal for VisionManager
2026-05-06T20:31:45.894556Z INFO screenpipe_engine::vision_manager::manager: Shutting down VisionManager
2026-05-06T20:31:45.894516Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker shutting down
2026-05-06T20:31:45.894602Z INFO screenpipe_engine::vision_manager::manager: Stopping VisionManager
2026-05-06T20:31:45.895419Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 2
2026-05-06T20:31:45.895898Z INFO screenpipe_engine::vision_manager::manager: Stopping vision recording for monitor 1
2026-05-06T20:31:45.980559Z INFO screenpipe_engine::ui_recorder: UI recording session ended: 54869993-7b4b-491f-b717-2a583517f9c5
2026-05-06T20:31:45.980777Z INFO screenpipe: shutdown complete
ggml_metal_free: deallocating
2026-05-06T20:31:46.374234Z ERROR screenpipe_engine::event_driven_capture: event capture failed (trigger=click, monitor=1): monitor capture failed: capture task panicked: task 770 was cancelled
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ;3B
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-06T20:32:21.850318Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-06T20:32:21.937393Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-06T20:32:23.002257Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-06T20:32:23.006683Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-06T20:32:23.008348Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-06T20:32:23.030912Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-06T20:32:23.030979Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-06T20:32:23.031261Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-06T20:32:23.031328Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-06T20:32:23.031199Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-06T20:32:23.031387Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-06T20:32:23.031253Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-06T20:32:23.034682Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-06T20:32:23.035042Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-06T20:32:23.035480Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-06T20:32:23.035607Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-06T20:32:23.035705Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-06T20:32:23.035815Z INFO screenpipe_...
|
iTerm2
|
screenpipe"
|
NULL
|
54
|
|
155
|
Last login: Thu May 7 09:44:56 on ttys009
Poetry Last login: Thu May 7 09:44:56 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-07T09:45:22.019771Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-07T09:45:22.092624Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-07T09:45:22.622934Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-07T09:45:22.624626Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-07T09:45:22.625092Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-07T09:45:22.646090Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-07T09:45:22.646159Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-07T09:45:22.646404Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-07T09:45:22.646469Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-07T09:45:22.646500Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-07T09:45:22.646361Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-07T09:45:22.646531Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-07T09:45:22.649692Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-07T09:45:22.649928Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-07T09:45:22.650337Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-07T09:45:22.650421Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-07T09:45:22.650497Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-07T09:45:22.650578Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-07T09:45:22.650600Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 14 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
2026-05-07T09:45:22.652623Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-07T09:45:22.653069Z INFO screenpipe: starting UI event capture
2026-05-07T09:45:22.657316Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-07T09:45:22.658196Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-05-07T09:45:22.668066Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-07T09:45:22.684704Z INFO screenpipe_engine::ui_recorder: UI recording session started: fdb3b7a3-88d3-4983-9faf-3a493cf2f0d9
2026-05-07T09:45:22.684797Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-07T09:45:22.684847Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-06 06:45:22.684845 UTC to 2026-05-07 06:45:22.684845 UTC)
2026-05-07T09:45:22.685646Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-07T09:45:22.695659Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-07T09:45:22.708586Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-07T09:45:22.740589Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 154 frame entries, coverage from 2026-05-06 06:45:22.684845 UTC
2026-05-07T09:45:22.770981Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-07T09:45:22.771008Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.771054Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.811296Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-07T09:45:22.811328Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811340Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
iTerm2
|
screenpipe"
|
NULL
|
155
|
|
156
|
Last login: Thu May 7 09:44:56 on ttys009
Poetry Last login: Thu May 7 09:44:56 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-07T09:45:22.019771Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-07T09:45:22.092624Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-07T09:45:22.622934Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-07T09:45:22.624626Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-07T09:45:22.625092Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-07T09:45:22.646090Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-07T09:45:22.646159Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-07T09:45:22.646404Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-07T09:45:22.646469Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-07T09:45:22.646500Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-07T09:45:22.646361Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-07T09:45:22.646531Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-07T09:45:22.649692Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-07T09:45:22.649928Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-07T09:45:22.650337Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-07T09:45:22.650421Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-07T09:45:22.650497Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-07T09:45:22.650578Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-07T09:45:22.650600Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 14 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
2026-05-07T09:45:22.652623Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-07T09:45:22.653069Z INFO screenpipe: starting UI event capture
2026-05-07T09:45:22.657316Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-07T09:45:22.658196Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-05-07T09:45:22.668066Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-07T09:45:22.684704Z INFO screenpipe_engine::ui_recorder: UI recording session started: fdb3b7a3-88d3-4983-9faf-3a493cf2f0d9
2026-05-07T09:45:22.684797Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-07T09:45:22.684847Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-06 06:45:22.684845 UTC to 2026-05-07 06:45:22.684845 UTC)
2026-05-07T09:45:22.685646Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-07T09:45:22.695659Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-07T09:45:22.708586Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-07T09:45:22.740589Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 154 frame entries, coverage from 2026-05-06 06:45:22.684845 UTC
2026-05-07T09:45:22.770981Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-07T09:45:22.771008Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.771054Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.811296Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-07T09:45:22.811328Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811340Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
iTerm2
|
screenpipe"
|
NULL
|
156
|
|
499
|
Last login: Thu May 7 09:44:56 on ttys009
Poetry Last login: Thu May 7 09:44:56 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-07T09:45:22.019771Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-07T09:45:22.092624Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-07T09:45:22.622934Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-07T09:45:22.624626Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-07T09:45:22.625092Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-07T09:45:22.646090Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-07T09:45:22.646159Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-07T09:45:22.646404Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-07T09:45:22.646469Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-07T09:45:22.646500Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-07T09:45:22.646361Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-07T09:45:22.646531Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-07T09:45:22.649692Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-07T09:45:22.649928Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-07T09:45:22.650337Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-07T09:45:22.650421Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-07T09:45:22.650497Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-07T09:45:22.650578Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-07T09:45:22.650600Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 14 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
2026-05-07T09:45:22.652623Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-07T09:45:22.653069Z INFO screenpipe: starting UI event capture
2026-05-07T09:45:22.657316Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-07T09:45:22.658196Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-05-07T09:45:22.668066Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-07T09:45:22.684704Z INFO screenpipe_engine::ui_recorder: UI recording session started: fdb3b7a3-88d3-4983-9faf-3a493cf2f0d9
2026-05-07T09:45:22.684797Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-07T09:45:22.684847Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-06 06:45:22.684845 UTC to 2026-05-07 06:45:22.684845 UTC)
2026-05-07T09:45:22.685646Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-07T09:45:22.695659Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-07T09:45:22.708586Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-07T09:45:22.740589Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 154 frame entries, coverage from 2026-05-06 06:45:22.684845 UTC
2026-05-07T09:45:22.770981Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-07T09:45:22.771008Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.771054Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.811296Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-07T09:45:22.811328Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811340Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
iTerm2
|
screenpipe"
|
NULL
|
499
|
|
500
|
Last login: Thu May 7 09:44:56 on ttys009
Poetry Last login: Thu May 7 09:44:56 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-07T09:45:22.019771Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-07T09:45:22.092624Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-07T09:45:22.622934Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-07T09:45:22.624626Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-07T09:45:22.625092Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-07T09:45:22.646090Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-07T09:45:22.646159Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-07T09:45:22.646404Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-07T09:45:22.646469Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-07T09:45:22.646500Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-07T09:45:22.646361Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-07T09:45:22.646531Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-07T09:45:22.649692Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-07T09:45:22.649928Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-07T09:45:22.650337Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-07T09:45:22.650421Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-07T09:45:22.650497Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-07T09:45:22.650578Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-07T09:45:22.650600Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 14 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
2026-05-07T09:45:22.652623Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-07T09:45:22.653069Z INFO screenpipe: starting UI event capture
2026-05-07T09:45:22.657316Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-07T09:45:22.658196Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-05-07T09:45:22.668066Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-07T09:45:22.684704Z INFO screenpipe_engine::ui_recorder: UI recording session started: fdb3b7a3-88d3-4983-9faf-3a493cf2f0d9
2026-05-07T09:45:22.684797Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-07T09:45:22.684847Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-06 06:45:22.684845 UTC to 2026-05-07 06:45:22.684845 UTC)
2026-05-07T09:45:22.685646Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-07T09:45:22.695659Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-07T09:45:22.708586Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-07T09:45:22.740589Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 154 frame entries, coverage from 2026-05-06 06:45:22.684845 UTC
2026-05-07T09:45:22.770981Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-07T09:45:22.771008Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.771054Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.811296Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-07T09:45:22.811328Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811340Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
2026-05-07T10:13:54.236529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7077166956358270957, trigger=click)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
iTerm2
|
screenpipe"
|
NULL
|
500
|
|
501
|
Last login: Thu May 7 09:44:56 on ttys009
Poetry Last login: Thu May 7 09:44:56 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-07T09:45:22.019771Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-07T09:45:22.092624Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-07T09:45:22.622934Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-07T09:45:22.624626Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-07T09:45:22.625092Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-07T09:45:22.646090Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-07T09:45:22.646159Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-07T09:45:22.646404Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-07T09:45:22.646469Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-07T09:45:22.646500Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-07T09:45:22.646361Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-07T09:45:22.646531Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-07T09:45:22.649692Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-07T09:45:22.649928Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-07T09:45:22.650337Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-07T09:45:22.650421Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-07T09:45:22.650497Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-07T09:45:22.650578Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-07T09:45:22.650600Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 14 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
2026-05-07T09:45:22.652623Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-07T09:45:22.653069Z INFO screenpipe: starting UI event capture
2026-05-07T09:45:22.657316Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-07T09:45:22.658196Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-05-07T09:45:22.668066Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-07T09:45:22.684704Z INFO screenpipe_engine::ui_recorder: UI recording session started: fdb3b7a3-88d3-4983-9faf-3a493cf2f0d9
2026-05-07T09:45:22.684797Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-07T09:45:22.684847Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-06 06:45:22.684845 UTC to 2026-05-07 06:45:22.684845 UTC)
2026-05-07T09:45:22.685646Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-07T09:45:22.695659Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-07T09:45:22.708586Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-07T09:45:22.740589Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 154 frame entries, coverage from 2026-05-06 06:45:22.684845 UTC
2026-05-07T09:45:22.770981Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-07T09:45:22.771008Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.771054Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.811296Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-07T09:45:22.811328Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811340Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
2026-05-07T10:13:54.236529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7077166956358270957, trigger=click)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
iTerm2
|
screenpipe"
|
NULL
|
501
|
|
502
|
Last login: Thu May 7 09:44:56 on ttys009
Poetry Last login: Thu May 7 09:44:56 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-07T09:45:22.019771Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-07T09:45:22.092624Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-07T09:45:22.622934Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-07T09:45:22.624626Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-07T09:45:22.625092Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-07T09:45:22.646090Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-07T09:45:22.646159Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-07T09:45:22.646404Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-07T09:45:22.646469Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-07T09:45:22.646500Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-07T09:45:22.646361Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-07T09:45:22.646531Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-07T09:45:22.649692Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-07T09:45:22.649928Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-07T09:45:22.650337Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-07T09:45:22.650421Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-07T09:45:22.650497Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-07T09:45:22.650578Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-07T09:45:22.650600Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 14 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
2026-05-07T09:45:22.652623Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-07T09:45:22.653069Z INFO screenpipe: starting UI event capture
2026-05-07T09:45:22.657316Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-07T09:45:22.658196Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-05-07T09:45:22.668066Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-07T09:45:22.684704Z INFO screenpipe_engine::ui_recorder: UI recording session started: fdb3b7a3-88d3-4983-9faf-3a493cf2f0d9
2026-05-07T09:45:22.684797Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-07T09:45:22.684847Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-06 06:45:22.684845 UTC to 2026-05-07 06:45:22.684845 UTC)
2026-05-07T09:45:22.685646Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-07T09:45:22.695659Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-07T09:45:22.708586Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-07T09:45:22.740589Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 154 frame entries, coverage from 2026-05-06 06:45:22.684845 UTC
2026-05-07T09:45:22.770981Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-07T09:45:22.771008Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.771054Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.811296Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-07T09:45:22.811328Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811340Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
2026-05-07T10:13:54.236529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7077166956358270957, trigger=click)
2026-05-07T10:13:59.559230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3980541844315414876, trigger=visual_change)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
iTerm2
|
screenpipe"
|
NULL
|
502
|
|
503
|
Last login: Thu May 7 09:44:56 on ttys009
Poetry Last login: Thu May 7 09:44:56 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-07T09:45:22.019771Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-07T09:45:22.092624Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-07T09:45:22.622934Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-07T09:45:22.624626Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-07T09:45:22.625092Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-07T09:45:22.646090Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-07T09:45:22.646159Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-07T09:45:22.646404Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-07T09:45:22.646469Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-07T09:45:22.646500Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-07T09:45:22.646361Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-07T09:45:22.646531Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-07T09:45:22.649692Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-07T09:45:22.649928Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-07T09:45:22.650337Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-07T09:45:22.650421Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-07T09:45:22.650497Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-07T09:45:22.650578Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-07T09:45:22.650600Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 14 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
2026-05-07T09:45:22.652623Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-07T09:45:22.653069Z INFO screenpipe: starting UI event capture
2026-05-07T09:45:22.657316Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-07T09:45:22.658196Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-05-07T09:45:22.668066Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-07T09:45:22.684704Z INFO screenpipe_engine::ui_recorder: UI recording session started: fdb3b7a3-88d3-4983-9faf-3a493cf2f0d9
2026-05-07T09:45:22.684797Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-07T09:45:22.684847Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-06 06:45:22.684845 UTC to 2026-05-07 06:45:22.684845 UTC)
2026-05-07T09:45:22.685646Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-07T09:45:22.695659Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-07T09:45:22.708586Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-07T09:45:22.740589Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 154 frame entries, coverage from 2026-05-06 06:45:22.684845 UTC
2026-05-07T09:45:22.770981Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-07T09:45:22.771008Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.771054Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.811296Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-07T09:45:22.811328Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811340Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
2026-05-07T10:13:54.236529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7077166956358270957, trigger=click)
2026-05-07T10:13:59.559230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3980541844315414876, trigger=visual_change)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
iTerm2
|
screenpipe"
|
NULL
|
503
|
|
504
|
Last login: Thu May 7 09:44:56 on ttys009
Poetry Last login: Thu May 7 09:44:56 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-07T09:45:22.019771Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-07T09:45:22.092624Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-07T09:45:22.622934Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-07T09:45:22.624626Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-07T09:45:22.625092Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-07T09:45:22.646090Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-07T09:45:22.646159Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-07T09:45:22.646404Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-07T09:45:22.646469Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-07T09:45:22.646500Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-07T09:45:22.646361Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-07T09:45:22.646531Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-07T09:45:22.649692Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-07T09:45:22.649928Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-07T09:45:22.650337Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-07T09:45:22.650421Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-07T09:45:22.650497Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-07T09:45:22.650578Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-07T09:45:22.650600Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 14 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
2026-05-07T09:45:22.652623Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-07T09:45:22.653069Z INFO screenpipe: starting UI event capture
2026-05-07T09:45:22.657316Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-07T09:45:22.658196Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-05-07T09:45:22.668066Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-07T09:45:22.684704Z INFO screenpipe_engine::ui_recorder: UI recording session started: fdb3b7a3-88d3-4983-9faf-3a493cf2f0d9
2026-05-07T09:45:22.684797Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-07T09:45:22.684847Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-06 06:45:22.684845 UTC to 2026-05-07 06:45:22.684845 UTC)
2026-05-07T09:45:22.685646Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-07T09:45:22.695659Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-07T09:45:22.708586Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-07T09:45:22.740589Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 154 frame entries, coverage from 2026-05-06 06:45:22.684845 UTC
2026-05-07T09:45:22.770981Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-07T09:45:22.771008Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.771054Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.811296Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-07T09:45:22.811328Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811340Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
2026-05-07T10:13:54.236529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7077166956358270957, trigger=click)
2026-05-07T10:13:59.559230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3980541844315414876, trigger=visual_change)
2026-05-07T10:14:11.809168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6523625761174407917, trigger=click)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
iTerm2
|
screenpipe"
|
NULL
|
504
|
|
505
|
Last login: Thu May 7 09:44:56 on ttys009
Poetry Last login: Thu May 7 09:44:56 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-07T09:45:22.019771Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-07T09:45:22.092624Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-07T09:45:22.622934Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-07T09:45:22.624626Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-07T09:45:22.625092Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-07T09:45:22.646090Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-07T09:45:22.646159Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-07T09:45:22.646404Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-07T09:45:22.646469Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-07T09:45:22.646500Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-07T09:45:22.646361Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-07T09:45:22.646531Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-07T09:45:22.649692Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-07T09:45:22.649928Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-07T09:45:22.650337Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-07T09:45:22.650421Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-07T09:45:22.650497Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-07T09:45:22.650578Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-07T09:45:22.650600Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 14 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
2026-05-07T09:45:22.652623Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-07T09:45:22.653069Z INFO screenpipe: starting UI event capture
2026-05-07T09:45:22.657316Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-07T09:45:22.658196Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-05-07T09:45:22.668066Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-07T09:45:22.684704Z INFO screenpipe_engine::ui_recorder: UI recording session started: fdb3b7a3-88d3-4983-9faf-3a493cf2f0d9
2026-05-07T09:45:22.684797Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-07T09:45:22.684847Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-06 06:45:22.684845 UTC to 2026-05-07 06:45:22.684845 UTC)
2026-05-07T09:45:22.685646Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-07T09:45:22.695659Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-07T09:45:22.708586Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-07T09:45:22.740589Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 154 frame entries, coverage from 2026-05-06 06:45:22.684845 UTC
2026-05-07T09:45:22.770981Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-07T09:45:22.771008Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.771054Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.811296Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-07T09:45:22.811328Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811340Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
2026-05-07T10:13:54.236529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7077166956358270957, trigger=click)
2026-05-07T10:13:59.559230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3980541844315414876, trigger=visual_change)
2026-05-07T10:14:11.809168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6523625761174407917, trigger=click)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
iTerm2
|
screenpipe"
|
NULL
|
505
|
|
506
|
Last login: Thu May 7 09:44:56 on ttys009
Poetry Last login: Thu May 7 09:44:56 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-07T09:45:22.019771Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-07T09:45:22.092624Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-07T09:45:22.622934Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-07T09:45:22.624626Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-07T09:45:22.625092Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-07T09:45:22.646090Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-07T09:45:22.646159Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-07T09:45:22.646404Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-07T09:45:22.646469Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-07T09:45:22.646500Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-07T09:45:22.646361Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-07T09:45:22.646531Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-07T09:45:22.649692Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-07T09:45:22.649928Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-07T09:45:22.650337Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-07T09:45:22.650421Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-07T09:45:22.650497Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-07T09:45:22.650578Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-07T09:45:22.650600Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 14 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
2026-05-07T09:45:22.652623Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-07T09:45:22.653069Z INFO screenpipe: starting UI event capture
2026-05-07T09:45:22.657316Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-07T09:45:22.658196Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-05-07T09:45:22.668066Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-07T09:45:22.684704Z INFO screenpipe_engine::ui_recorder: UI recording session started: fdb3b7a3-88d3-4983-9faf-3a493cf2f0d9
2026-05-07T09:45:22.684797Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-07T09:45:22.684847Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-06 06:45:22.684845 UTC to 2026-05-07 06:45:22.684845 UTC)
2026-05-07T09:45:22.685646Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-07T09:45:22.695659Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-07T09:45:22.708586Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-07T09:45:22.740589Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 154 frame entries, coverage from 2026-05-06 06:45:22.684845 UTC
2026-05-07T09:45:22.770981Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-07T09:45:22.771008Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.771054Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.811296Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-07T09:45:22.811328Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811340Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
2026-05-07T10:13:54.236529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7077166956358270957, trigger=click)
2026-05-07T10:13:59.559230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3980541844315414876, trigger=visual_change)
2026-05-07T10:14:11.809168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6523625761174407917, trigger=click)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
iTerm2
|
screenpipe"
|
NULL
|
506
|
|
507
|
Last login: Thu May 7 09:44:56 on ttys009
Poetry Last login: Thu May 7 09:44:56 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-07T09:45:22.019771Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-07T09:45:22.092624Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-07T09:45:22.622934Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-07T09:45:22.624626Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-07T09:45:22.625092Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-07T09:45:22.646090Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-07T09:45:22.646159Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-07T09:45:22.646404Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-07T09:45:22.646469Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-07T09:45:22.646500Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-07T09:45:22.646361Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-07T09:45:22.646531Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-07T09:45:22.649692Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-07T09:45:22.649928Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-07T09:45:22.650337Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-07T09:45:22.650421Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-07T09:45:22.650497Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-07T09:45:22.650578Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-07T09:45:22.650600Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 14 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
2026-05-07T09:45:22.652623Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-07T09:45:22.653069Z INFO screenpipe: starting UI event capture
2026-05-07T09:45:22.657316Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-07T09:45:22.658196Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-05-07T09:45:22.668066Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-07T09:45:22.684704Z INFO screenpipe_engine::ui_recorder: UI recording session started: fdb3b7a3-88d3-4983-9faf-3a493cf2f0d9
2026-05-07T09:45:22.684797Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-07T09:45:22.684847Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-06 06:45:22.684845 UTC to 2026-05-07 06:45:22.684845 UTC)
2026-05-07T09:45:22.685646Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-07T09:45:22.695659Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-07T09:45:22.708586Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-07T09:45:22.740589Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 154 frame entries, coverage from 2026-05-06 06:45:22.684845 UTC
2026-05-07T09:45:22.770981Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-07T09:45:22.771008Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.771054Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.811296Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-07T09:45:22.811328Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811340Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
2026-05-07T10:13:54.236529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7077166956358270957, trigger=click)
2026-05-07T10:13:59.559230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3980541844315414876, trigger=visual_change)
2026-05-07T10:14:11.809168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6523625761174407917, trigger=click)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
iTerm2
|
screenpipe"
|
NULL
|
507
|
|
508
|
Last login: Thu May 7 09:44:56 on ttys009
Poetry Last login: Thu May 7 09:44:56 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-07T09:45:22.019771Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-07T09:45:22.092624Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-07T09:45:22.622934Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-07T09:45:22.624626Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-07T09:45:22.625092Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-07T09:45:22.646090Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-07T09:45:22.646159Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-07T09:45:22.646404Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-07T09:45:22.646469Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-07T09:45:22.646500Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-07T09:45:22.646361Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-07T09:45:22.646531Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-07T09:45:22.649692Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-07T09:45:22.649928Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-07T09:45:22.650337Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-07T09:45:22.650421Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-07T09:45:22.650497Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-07T09:45:22.650578Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-07T09:45:22.650600Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 14 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
2026-05-07T09:45:22.652623Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-07T09:45:22.653069Z INFO screenpipe: starting UI event capture
2026-05-07T09:45:22.657316Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-07T09:45:22.658196Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-05-07T09:45:22.668066Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-07T09:45:22.684704Z INFO screenpipe_engine::ui_recorder: UI recording session started: fdb3b7a3-88d3-4983-9faf-3a493cf2f0d9
2026-05-07T09:45:22.684797Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-07T09:45:22.684847Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-06 06:45:22.684845 UTC to 2026-05-07 06:45:22.684845 UTC)
2026-05-07T09:45:22.685646Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-07T09:45:22.695659Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-07T09:45:22.708586Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-07T09:45:22.740589Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 154 frame entries, coverage from 2026-05-06 06:45:22.684845 UTC
2026-05-07T09:45:22.770981Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-07T09:45:22.771008Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.771054Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.811296Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-07T09:45:22.811328Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811340Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
2026-05-07T10:13:54.236529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7077166956358270957, trigger=click)
2026-05-07T10:13:59.559230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3980541844315414876, trigger=visual_change)
2026-05-07T10:14:11.809168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6523625761174407917, trigger=click)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
iTerm2
|
screenpipe"
|
NULL
|
508
|
|
543
|
Last login: Thu May 7 09:44:56 on ttys009
Poetry Last login: Thu May 7 09:44:56 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-07T09:45:22.019771Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
accessibility: ok
2026-05-07T09:45:22.092624Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-07T09:45:22.622934Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-07T09:45:22.624626Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-07T09:45:22.625092Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-07T09:45:22.646090Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-07T09:45:22.646159Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-07T09:45:22.646404Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-07T09:45:22.646469Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-07T09:45:22.646500Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-07T09:45:22.646361Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-07T09:45:22.646531Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-07T09:45:22.649692Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-07T09:45:22.649928Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-07T09:45:22.650337Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-07T09:45:22.650421Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-07T09:45:22.650497Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-07T09:45:22.650578Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-07T09:45:22.650600Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (_____ ___
/ ___/ ___/ ___/ _ \/ _ \/ __ \ / __ \/ / __ \/ _ \
(__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/
/____/\___/_/ \___/\___/_/ /_/ / .___/_/ .___/\___/
/_/ /_/
power AI by everything you've seen, said or heard
open source | runs locally | developer friendly
┌────────────────────────┬────────────────────────────────────┐
│ setting │ value │
├────────────────────────┼────────────────────────────────────┤
│ audio chunk duration │ 30 seconds │
│ port │ 3030 │
│ audio disabled │ true │
│ vision disabled │ false │
│ pause on DRM content │ false │
│ audio engine │ Parakeet │
│ vad engine │ Silero │
│ data directory │ /Users/lukas/.screenpipe │
│ debug mode │ false │
│ telemetry │ true │
│ use pii removal │ true │
│ use all monitors │ true │
│ ignored windows │ ["Boosteroid"] │
│ included windows │ [] │
│ cloud sync │ disabled │
│ auto-destruct pid │ 0 │
│ deepgram key │ not set │
│ api auth │ enabled │
│ encrypt secrets │ disabled │
│ retention days │ 14 │
│ retention mode │ media-only (keep transcripts) │
├────────────────────────┼────────────────────────────────────┤
│ languages │ │
│ │ all languages │
├────────────────────────┼────────────────────────────────────┤
│ monitors │ │
2026-05-07T09:45:22.652623Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)
│ │ id: 1 │
│ │ id: 2 │
├────────────────────────┼────────────────────────────────────┤
│ audio devices │ │
│ │ disabled │
└────────────────────────┴────────────────────────────────────┘
you are using local processing. all your data stays on your computer.
warning: telemetry is enabled. only error-level data will be sent.
to disable, use the --disable-telemetry flag.
check latest changes here: https://github.com/screenpipe/screenpipe/releases
2026-05-07T09:45:22.653069Z INFO screenpipe: starting UI event capture
2026-05-07T09:45:22.657316Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh
2026-05-07T09:45:22.658196Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))
2026-05-07T09:45:22.668066Z INFO screenpipe_engine::ui_recorder: Starting UI event capture
2026-05-07T09:45:22.684704Z INFO screenpipe_engine::ui_recorder: UI recording session started: fdb3b7a3-88d3-4983-9faf-3a493cf2f0d9
2026-05-07T09:45:22.684797Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)
2026-05-07T09:45:22.684847Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-05-06 06:45:22.684845 UTC to 2026-05-07 06:45:22.684845 UTC)
2026-05-07T09:45:22.685646Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)
2026-05-07T09:45:22.695659Z INFO screenpipe_engine::server: Server listening on [IP_ADDRESS]:3030
2026-05-07T09:45:22.708586Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030
2026-05-07T09:45:22.740589Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 154 frame entries, coverage from 2026-05-06 06:45:22.684845 UTC
2026-05-07T09:45:22.770981Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)
2026-05-07T09:45:22.771008Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.771054Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)
2026-05-07T09:45:22.811296Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 2 (3008x1253)
2026-05-07T09:45:22.811328Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811340Z INFO screenpipe_engine::vision_manager::manager: VisionManager started with 2/2 monitor(s)
2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
2026-05-07T10:13:54.236529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7077166956358270957, trigger=click)
2026-05-07T10:13:59.559230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3980541844315414876, trigger=visual_change)
2026-05-07T10:14:11.809168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6523625761174407917, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:15:45.403085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6029182552546457581, trigger=click)
2026-05-07T10:15:45.438150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029182552546457581, trigger=click)
2026-05-07T10:15:58.662028Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=1)
2026-05-07T10:15:58.663307Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=1)
2026-05-07T10:15:58.663499Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=false, manual=false, active_id=None, app=None, source=None
2026-05-07T10:16:05.043304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=312614534752492596, trigger=visual_change)
2026-05-07T10:16:06.212558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=312614534752492596, trigger=click)
2026-05-07T10:16:10.088825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:11.585397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:11.626664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:14.079057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=visual_change)
2026-05-07T10:16:16.219212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:16.238237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:17.211409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:17.247202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:37.973759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.014645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.719453Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.757458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:39.323203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:39.361472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:40.850433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-05-07T10:16:42.489832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.5MB → 1.4MB (3.2x), 25 JPEGs deleted
2026-05-07T10:16:44.044480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.2MB → 1.1MB (3.7x), 23 JPEGs deleted
2026-05-07T10:16:44.383786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=visual_change)
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
screenpipe"...
|
iTerm2
|
screenpipe"
|
NULL
|
543
|
|
544
|
DOCKER2026-05-07110:12:16.55057022026-05-07T10:12: DOCKER2026-05-07110:12:16.55057022026-05-07T10:12:31.745217Z2026-05-07T10:12:34.790862Z2026-05-07110:12:37.78475222026-05-07T10:12:40.806177Z2026-05-07110:12:43.85488122026-05-07T10:12:59.015149Z2026-05-07T10:13:14.166750Z2026-05-07T10:13:17.184510Z2026-05-07T10:13:34.773468Z2026-05-07110:13:44.486450Z2026-05-07T10:13:54.236529Z2026-05-07T10:13:59.559230Z2026-05-07110:14:11.8091682tip: wire screenpipeclaude mcp adrthen askclau2026-05-07T10:15:45.2026-05-07110:15:45.2026-05-07T10:15:58.2026-05-07T10:15:58.2026-05-07T10:15:58.2026-05-07T10:16:052026-05-07T10:16:06.212026-05-07T10:16:10.088825Z2026-05-07T10:16:11.585397Z2026-05-07T10:16:11.626664Z2026-05-07T10:16:14.079057Z2026-05-07110:16:16.219212Z2026-05-07T10:16:16.238237Z2026-05-07T10:16:17.211409Z2026-05-07T10:16:17.247202Z2026-05-07T10:16:37.973759Z2026-05-07T10:16:38.014645Z2026-05-07T10:16:38.719453Z2026-05-07T10:16:38.757458Z2026-05-07T10:16:39.323203Z2026-05-07T10:16:39.361472Z2026-05-07110:16:40.850433Z2026-05-07T10:16:42.489832Z2026-05-07T10:16:44.044480Z2026-05-07T10:16:44.383786ZiTerm2ShellEditViewSessionScriptsProfilesWindowHelpSupport Daily • in 4 h 44 m100% C8Thu 7 May 10:16:46ffmpegO ₴1DEV (-zsh)• ₴2APP (-zsh)-zsh₴4ffmpegINFOscreenpipe_engine::event_driven_capture:contentdedup:skipping capturefor monitor 1 (hash=9173838423795606666,trigger=visual_change)INFOscreenpipe_engine::event_driven_capture:contentdedup:skippingcapturefor monitor 1(hash=1669118135250037105,trigger=visual_change)INFOscreenpipe_engine::event_driven_capture: contentdedup:skippingcapture formonitor 1INFOscreenpipe_engine::event_driven_capture: contentdedup:skipping capturefor monitor 1Chash=1669118135250037105,trigger=visual_change)INFOscreenpipe_engine::event_driven_capture: contentskipping capture(hash=1669118135250037105,dedup:for monitortrigger=visual_change)INFOscreenpipe_engine::event_driven_capture:contentdedup:skippingforChash=1669118135250037105,capturemonitor 1 (hash=1669118135250037105,trigger=visual_change)trigger=visual_change)INFOscreenpipe_engine::event_driven_capture:contentdedup:skippingcapturefor monitor 1 (hash=1669118135250037105,trigger=visual_change)INFOINFOscreenpipe_engine::event_driven_capture:contentdedup:skipping capture for monitor 1 (hash=1669118135250037105,screenpipe_engine::event_driven_capture: content dedup:skipping capture for monitor1 (hash=1669118135250037105,trigger=visual_change)INFOscreenpipe_engine::event_driven_capture: contentdedup:skippingcapture fortrigger=visual_change)monitor 1INFOscreenpipe_engine::event_driven_capture: contentdedup:skipping capturefor monitorChash=-6229566017341650404,trigger=click)1 (hash=-6229566017341650404,trigger=visual_change)INFOscreenpipe_engine::event__driven_capture: content dedup:skippingcapturefor monitor 1 Chash=-7077166956358270957,trigger=click)INFOscreenpipe_engine::event_driven_capture:contentdedup:skippingcapture formonitor 1 (hash=-3980541844315414876,INFOscreenpipe_engine::event_driven_capture:content dedup:trigger=visual_change)skippingcapture for monitor 1 (hash=6523625761174407917, trigger=click)INFOINFOINFOINFOINFOINFOINFOINFOINFOINFOINFOINFOINFOINFOINFOINFOINFOINFOlick)Lick3ne1al_change)Term-ick)engine::event_driven_capture:contentdedup:skippingcaptureformonitor 2 (hash=-6145754442538527174, trigger=click)engine: :event_driven_capture:contentdedup:skippingcapturefor monitor 1 (hash=-6145754442538527174, trigger=click)screenpipe_engine::event_driven_capture:contentdedup:skippingcaptureformonitor 2 (hash=-6145754442538527174, trigger=click)screenpipe_engine::event_driven_capture:contentdedup:skippingcapturefor monitor 2(hash=806643008695069553, trigger=visual_change)screenpipe_engine::event_driven_capture:contentdedup:skippingcapturefor monitor 2 (hash=806643008695069553,trigger=click)screenpipe_engine:: event_driven_capture:contentdedup:skippingcaptureforscreenpipe_engine:: event_driven_capture:contentdedup:skippingcaptureformonitor 1 (hash=806643008695069553,trigger=click)monitor 2 (hash=806643008695069553,trigger=click)screenpipe_engine::event_driven_capture:contentdedup:skippingcapturefor monitor 1 (hash=806643008695069553,trigger=click)screenpipe_engine::event_driven_capture:contentdedup:skippingcapturefor monitor 2 (hash=-8875948178524934281, trigger=click)screenpipe_engine::event_driven_capture: contentdedup:skippingcaptureformonitor 1 (hash=-8875948178524934281,trigger=click)screenpipe_engine::event_driven_capture: contentdedup:skippingcaptureformonitor 1(hash=-8875948178524934281,trigger=click)screenpipe_engine::event_driven_capture:contentdedup:skippingcapturefor monitor2screenpipe_engine:: event.driven_capture: contentdedup:skippingcaptureforChash=-8875948178524934281,trigger=click)monitor 2 (hash=-8875948178524934281,trigger=click)screenpipe_engine::event_driven_capture:contentdedup:skippingcapturefor monitor 1 (hash=-8875948178524934281, trigger=click)screenpipe_engine::snapshot_compaction:snapshotcompaction:found 50eligibleframesscreenpipe_engine::snapshot_compaction:snapshotcompaction:25 frames,4.5MB→ 1.4MB (3.2x),25 JPEGSdeletedscreenpipe_engine::snapshot_compaction:snapshotcompaction:23 frames,4.2MB1.1MB (3.7x),23 JPEGSdeletedscreenpipe_engine::event_driven_capture:contentdedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=visual_change)...
|
iTerm2
|
screenpipe"
|
NULL
|
544
|
|
1908
|
2026-05-07T09:45:22.811350Z INFO screenpipe_engin 2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
2026-05-07T10:13:54.236529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7077166956358270957, trigger=click)
2026-05-07T10:13:59.559230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3980541844315414876, trigger=visual_change)
2026-05-07T10:14:11.809168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6523625761174407917, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:15:45.403085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6029182552546457581, trigger=click)
2026-05-07T10:15:45.438150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029182552546457581, trigger=click)
2026-05-07T10:15:58.662028Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=1)
2026-05-07T10:15:58.663307Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=1)
2026-05-07T10:15:58.663499Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=false, manual=false, active_id=None, app=None, source=None
2026-05-07T10:16:05.043304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=312614534752492596, trigger=visual_change)
2026-05-07T10:16:06.212558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=312614534752492596, trigger=click)
2026-05-07T10:16:10.088825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:11.585397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:11.626664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:14.079057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=visual_change)
2026-05-07T10:16:16.219212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:16.238237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:17.211409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:17.247202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:37.973759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.014645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.719453Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.757458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:39.323203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:39.361472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:40.850433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-05-07T10:16:42.489832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.5MB → 1.4MB (3.2x), 25 JPEGs deleted
2026-05-07T10:16:44.044480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.2MB → 1.1MB (3.7x), 23 JPEGs deleted
2026-05-07T10:16:44.383786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=visual_change)
2026-05-07T10:17:13.547514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=click)
2026-05-07T10:17:23.997418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8224741320031956579, trigger=click)
2026-05-07T10:17:36.067503Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8224741320031956579, trigger=visual_change)
2026-05-07T10:17:48.254094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8224741320031956579, trigger=click)
2026-05-07T10:18:06.328441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:21.374558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:27.400579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:36.379491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7524776963116161484, trigger=visual_change)
2026-05-07T10:18:39.375238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7524776963116161484, trigger=visual_change)
2026-05-07T10:19:43.208935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840747455939898472, trigger=visual_change)
2026-05-07T10:19:49.257421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840747455939898472, trigger=visual_change)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:21:21.848375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=201887528283740068, trigger=click)
2026-05-07T10:21:23.439805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=201887528283740068, trigger=visual_change)
2026-05-07T10:21:38.803777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4689651471004117672, trigger=click)
2026-05-07T10:21:44.054102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames
2026-05-07T10:21:46.307600Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.0MB → 1.3MB (3.8x), 38 JPEGs deleted
2026-05-07T10:21:49.031129Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.2MB → 1.4MB (5.2x), 44 JPEGs deleted
2026-05-07T10:23:02.085605Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2104275679555505311, trigger=visual_change)
2026-05-07T10:23:05.086593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2104275679555505311, trigger=visual_change)
2026-05-07T10:24:05.661776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=visual_change)
2026-05-07T10:24:09.585701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=click)
2026-05-07T10:24:11.714956Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=visual_change)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:25:31.235235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4393937499657261667, trigger=visual_change)
2026-05-07T10:25:38.986311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2365554338448923185, trigger=click)
2026-05-07T10:26:49.039316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames
2026-05-07T10:26:52.006289Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 9.5MB → 4.4MB (2.1x), 42 JPEGs deleted
2026-05-07T10:26:54.644073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.6MB → 1.1MB (7.0x), 44 JPEGs deleted
2026-05-07T10:28:33.499505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:35.956588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:36.666492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:36.789359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:39.100987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:40.047061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:40.064268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:42.052599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:44.774285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:44.791022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:45.378301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:46.470785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:46.575295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:47.652750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:47.668490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:48.439575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:50.165309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:50.177581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:51.452287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:51.994437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:52.053841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:54.432682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:03.124980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:03.868714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:05.079320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:06.543967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:06.576904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:08.792645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:08.865500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:20.773748Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:21.723479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:21.752924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:23.883669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1480943928003130782, trigger=visual_change)
2026-05-07T10:29:35.016352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:36.054767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:36.117899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:38.114508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:38.937597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:38.987983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:31:28.462010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9014748524946296965, trigger=click)
2026-05-07T10:31:28.506716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9014748524946296965, trigger=click)
2026-05-07T10:31:54.652328Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 102 eligible frames
2026-05-07T10:31:57.015395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 13.6MB → 2.6MB (5.3x), 37 JPEGs deleted
2026-05-07T10:32:00.752190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 7.5MB → 3.0MB (2.5x), 63 JPEGs deleted
2026-05-07T10:32:26.599963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:32:27.400474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:34:30.099383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:34:30.729647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:35:03.954351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:35:13.717941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8871609275972961978, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:37:00.792475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 104 eligible frames
2026-05-07T10:37:03.726678Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 15.7MB → 2.8MB (5.7x), 45 JPEGs deleted
2026-05-07T10:37:07.426691Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 8.5MB → 3.4MB (2.5x), 57 JPEGs deleted
2026-05-07T10:37:20.569450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:29.162289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:29.307132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:30.755107Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:37:32.262354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:32.364050Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:45.907491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:37:47.205630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:47.304637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:41:59.417224Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5950044591583842886, trigger=click)
2026-05-07T10:41:59.477946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5950044591583842886, trigger=click)
2026-05-07T10:42:04.742903Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5999585032610140654, trigger=click)
2026-05-07T10:42:04.791839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5999585032610140654, trigger=click)
2026-05-07T10:42:07.459097Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-05-07T10:42:08.925855Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.3MB → 2.0MB (2.1x), 20 JPEGs deleted
2026-05-07T10:42:09.013373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3109201817482414574, trigger=click)
2026-05-07T10:42:09.056483Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3109201817482414574, trigger=click)
2026-05-07T10:42:10.403020Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.2MB (2.2x), 16 JPEGs deleted
2026-05-07T10:42:15.023525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7036607934458099426, trigger=click)
2026-05-07T10:42:15.087803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7036607934458099426, trigger=click)
2026-05-07T10:42:55.509669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2284708141138457574, trigger=visual_change)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:47:10.412520Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 76 eligible frames
2026-05-07T10:47:12.469581Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 8.4MB → 1.8MB (4.7x), 34 JPEGs deleted
2026-05-07T10:47:15.163169Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.2MB → 2.4MB (3.0x), 40 JPEGs deleted
2026-05-07T10:49:59.513306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5898226934247819222, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:52:15.173889Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames
2026-05-07T10:52:17.082276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 8.4MB → 0.7MB (11.6x), 32 JPEGs deleted
2026-05-07T10:52:19.490930Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 5.9MB → 2.2MB (2.7x), 39 JPEGs deleted
2026-05-07T10:54:22.187516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:54:28.229775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:10.540942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:13.602063Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:16.605531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:55:24.247307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:57:19.473518Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:57:20.680885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.9MB → 0.5MB (5.3x), 11 JPEGs deleted
2026-05-07T10:57:21.976198Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.3MB (1.9x), 15 JPEGs deleted
2026-05-07T10:58:11.572541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:11.672796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:12.154759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:13.639499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=visual_change)
2026-05-07T10:58:15.413079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:15.495531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:16.595925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=visual_change)
2026-05-07T10:58:21.437769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.085129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.869865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.981197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:42.120927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1967027037406422417, trigger=click)
2026-05-07T10:58:42.168157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1967027037406422417, trigger=click)
2026-05-07T10:58:59.393221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3964650797953228084, trigger=click)
2026-05-07T10:58:59.482526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=click)
2026-05-07T10:59:49.917826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=visual_change)
2026-05-07T11:00:17.089194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=visual_change)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T11:02:21.972630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-05-07T11:02:22.860530Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.6MB → 0.5MB (4.8x), 10 JPEGs deleted
2026-05-07T11:02:23.655299Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.4MB (4.9x), 10 JPEGs deleted
2026-05-07T11:03:02.204893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:02.270520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:05.248220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:05.306387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:59.105792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T11:05:34.710050Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:07:23.661054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 75 eligible frames
2026-05-07T11:07:25.906642Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 10.0MB → 0.4MB (23.0x), 38 JPEGs deleted
2026-05-07T11:07:28.176089Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.9MB → 2.5MB (2.8x), 35 JPEGs deleted
2026-05-07T11:08:06.864979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:15.119215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:08:29.818126Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:32.981193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:33.042213Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:50.978274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:52.734286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:52.851489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:09:07.119123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:09:37.291815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:09:40.319359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:10:14.288318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:14.424670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:16.847960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:16.940298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T11:10:50.032003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:10:56.222667Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:56.312244Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:20.348299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:11:21.120460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:23.721850Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:23.804892Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:29.056996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:29.140586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:30.305845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:30.383186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:32.114228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:32.191508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:35.851585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:11:45.797893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:11:58.899193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:12:02.054717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.130409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.755693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.846886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:03.619909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=visual_change)
2026-05-07T11:12:10.642255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:10.727852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:11.690324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:11.781304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:21.621763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:25.624917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:28.182732Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames
2026-05-07T11:12:30.153855Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.1MB → 0.9MB (8.3x), 32 JPEGs deleted
2026-05-07T11:12:32.796836Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.6MB → 2.8MB (2.7x), 40 JPEGs deleted
2026-05-07T11:12:40.535068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:40.647364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:41.220156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:41.301848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:43.222251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:43.266764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:13:01.235609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:01.299808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:32.450693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:32.586876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:44.862308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:44.940165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:14:01.162441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:03.453473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:08.993859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:09.054039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:12.312363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:12.354292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:21.396038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:21.489451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:22.083385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=visual_change)
2026-05-07T11:14:36.252205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:43.015757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:43.664591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=visual_change)
2026-05-07T11:14:45.857760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:45.904716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:47.073442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T11:16:05.411899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture fo...
|
iTerm2
|
screenpipe"
|
NULL
|
1908
|
|
1909
|
2026-05-07T09:45:22.811350Z INFO screenpipe_engin 2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
2026-05-07T10:13:54.236529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7077166956358270957, trigger=click)
2026-05-07T10:13:59.559230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3980541844315414876, trigger=visual_change)
2026-05-07T10:14:11.809168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6523625761174407917, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:15:45.403085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6029182552546457581, trigger=click)
2026-05-07T10:15:45.438150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029182552546457581, trigger=click)
2026-05-07T10:15:58.662028Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=1)
2026-05-07T10:15:58.663307Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=1)
2026-05-07T10:15:58.663499Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=false, manual=false, active_id=None, app=None, source=None
2026-05-07T10:16:05.043304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=312614534752492596, trigger=visual_change)
2026-05-07T10:16:06.212558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=312614534752492596, trigger=click)
2026-05-07T10:16:10.088825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:11.585397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:11.626664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:14.079057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=visual_change)
2026-05-07T10:16:16.219212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:16.238237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:17.211409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:17.247202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:37.973759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.014645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.719453Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.757458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:39.323203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:39.361472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:40.850433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-05-07T10:16:42.489832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.5MB → 1.4MB (3.2x), 25 JPEGs deleted
2026-05-07T10:16:44.044480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.2MB → 1.1MB (3.7x), 23 JPEGs deleted
2026-05-07T10:16:44.383786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=visual_change)
2026-05-07T10:17:13.547514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=click)
2026-05-07T10:17:23.997418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8224741320031956579, trigger=click)
2026-05-07T10:17:36.067503Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8224741320031956579, trigger=visual_change)
2026-05-07T10:17:48.254094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8224741320031956579, trigger=click)
2026-05-07T10:18:06.328441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:21.374558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:27.400579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:36.379491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7524776963116161484, trigger=visual_change)
2026-05-07T10:18:39.375238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7524776963116161484, trigger=visual_change)
2026-05-07T10:19:43.208935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840747455939898472, trigger=visual_change)
2026-05-07T10:19:49.257421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840747455939898472, trigger=visual_change)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:21:21.848375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=201887528283740068, trigger=click)
2026-05-07T10:21:23.439805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=201887528283740068, trigger=visual_change)
2026-05-07T10:21:38.803777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4689651471004117672, trigger=click)
2026-05-07T10:21:44.054102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames
2026-05-07T10:21:46.307600Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.0MB → 1.3MB (3.8x), 38 JPEGs deleted
2026-05-07T10:21:49.031129Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.2MB → 1.4MB (5.2x), 44 JPEGs deleted
2026-05-07T10:23:02.085605Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2104275679555505311, trigger=visual_change)
2026-05-07T10:23:05.086593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2104275679555505311, trigger=visual_change)
2026-05-07T10:24:05.661776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=visual_change)
2026-05-07T10:24:09.585701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=click)
2026-05-07T10:24:11.714956Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=visual_change)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:25:31.235235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4393937499657261667, trigger=visual_change)
2026-05-07T10:25:38.986311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2365554338448923185, trigger=click)
2026-05-07T10:26:49.039316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames
2026-05-07T10:26:52.006289Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 9.5MB → 4.4MB (2.1x), 42 JPEGs deleted
2026-05-07T10:26:54.644073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.6MB → 1.1MB (7.0x), 44 JPEGs deleted
2026-05-07T10:28:33.499505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:35.956588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:36.666492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:36.789359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:39.100987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:40.047061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:40.064268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:42.052599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:44.774285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:44.791022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:45.378301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:46.470785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:46.575295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:47.652750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:47.668490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:48.439575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:50.165309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:50.177581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:51.452287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:51.994437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:52.053841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:54.432682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:03.124980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:03.868714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:05.079320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:06.543967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:06.576904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:08.792645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:08.865500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:20.773748Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:21.723479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:21.752924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:23.883669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1480943928003130782, trigger=visual_change)
2026-05-07T10:29:35.016352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:36.054767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:36.117899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:38.114508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:38.937597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:38.987983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:31:28.462010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9014748524946296965, trigger=click)
2026-05-07T10:31:28.506716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9014748524946296965, trigger=click)
2026-05-07T10:31:54.652328Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 102 eligible frames
2026-05-07T10:31:57.015395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 13.6MB → 2.6MB (5.3x), 37 JPEGs deleted
2026-05-07T10:32:00.752190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 7.5MB → 3.0MB (2.5x), 63 JPEGs deleted
2026-05-07T10:32:26.599963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:32:27.400474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:34:30.099383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:34:30.729647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:35:03.954351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:35:13.717941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8871609275972961978, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:37:00.792475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 104 eligible frames
2026-05-07T10:37:03.726678Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 15.7MB → 2.8MB (5.7x), 45 JPEGs deleted
2026-05-07T10:37:07.426691Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 8.5MB → 3.4MB (2.5x), 57 JPEGs deleted
2026-05-07T10:37:20.569450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:29.162289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:29.307132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:30.755107Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:37:32.262354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:32.364050Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:45.907491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:37:47.205630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:47.304637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:41:59.417224Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5950044591583842886, trigger=click)
2026-05-07T10:41:59.477946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5950044591583842886, trigger=click)
2026-05-07T10:42:04.742903Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5999585032610140654, trigger=click)
2026-05-07T10:42:04.791839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5999585032610140654, trigger=click)
2026-05-07T10:42:07.459097Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-05-07T10:42:08.925855Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.3MB → 2.0MB (2.1x), 20 JPEGs deleted
2026-05-07T10:42:09.013373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3109201817482414574, trigger=click)
2026-05-07T10:42:09.056483Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3109201817482414574, trigger=click)
2026-05-07T10:42:10.403020Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.2MB (2.2x), 16 JPEGs deleted
2026-05-07T10:42:15.023525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7036607934458099426, trigger=click)
2026-05-07T10:42:15.087803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7036607934458099426, trigger=click)
2026-05-07T10:42:55.509669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2284708141138457574, trigger=visual_change)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:47:10.412520Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 76 eligible frames
2026-05-07T10:47:12.469581Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 8.4MB → 1.8MB (4.7x), 34 JPEGs deleted
2026-05-07T10:47:15.163169Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.2MB → 2.4MB (3.0x), 40 JPEGs deleted
2026-05-07T10:49:59.513306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5898226934247819222, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:52:15.173889Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames
2026-05-07T10:52:17.082276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 8.4MB → 0.7MB (11.6x), 32 JPEGs deleted
2026-05-07T10:52:19.490930Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 5.9MB → 2.2MB (2.7x), 39 JPEGs deleted
2026-05-07T10:54:22.187516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:54:28.229775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:10.540942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:13.602063Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:16.605531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:55:24.247307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:57:19.473518Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:57:20.680885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.9MB → 0.5MB (5.3x), 11 JPEGs deleted
2026-05-07T10:57:21.976198Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.3MB (1.9x), 15 JPEGs deleted
2026-05-07T10:58:11.572541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:11.672796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:12.154759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:13.639499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=visual_change)
2026-05-07T10:58:15.413079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:15.495531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:16.595925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=visual_change)
2026-05-07T10:58:21.437769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.085129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.869865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.981197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:42.120927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1967027037406422417, trigger=click)
2026-05-07T10:58:42.168157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1967027037406422417, trigger=click)
2026-05-07T10:58:59.393221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3964650797953228084, trigger=click)
2026-05-07T10:58:59.482526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=click)
2026-05-07T10:59:49.917826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=visual_change)
2026-05-07T11:00:17.089194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=visual_change)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T11:02:21.972630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-05-07T11:02:22.860530Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.6MB → 0.5MB (4.8x), 10 JPEGs deleted
2026-05-07T11:02:23.655299Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.4MB (4.9x), 10 JPEGs deleted
2026-05-07T11:03:02.204893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:02.270520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:05.248220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:05.306387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:59.105792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T11:05:34.710050Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:07:23.661054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 75 eligible frames
2026-05-07T11:07:25.906642Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 10.0MB → 0.4MB (23.0x), 38 JPEGs deleted
2026-05-07T11:07:28.176089Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.9MB → 2.5MB (2.8x), 35 JPEGs deleted
2026-05-07T11:08:06.864979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:15.119215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:08:29.818126Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:32.981193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:33.042213Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:50.978274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:52.734286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:52.851489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:09:07.119123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:09:37.291815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:09:40.319359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:10:14.288318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:14.424670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:16.847960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:16.940298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T11:10:50.032003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:10:56.222667Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:56.312244Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:20.348299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:11:21.120460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:23.721850Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:23.804892Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:29.056996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:29.140586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:30.305845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:30.383186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:32.114228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:32.191508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:35.851585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:11:45.797893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:11:58.899193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:12:02.054717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.130409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.755693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.846886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:03.619909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=visual_change)
2026-05-07T11:12:10.642255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:10.727852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:11.690324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:11.781304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:21.621763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:25.624917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:28.182732Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames
2026-05-07T11:12:30.153855Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.1MB → 0.9MB (8.3x), 32 JPEGs deleted
2026-05-07T11:12:32.796836Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.6MB → 2.8MB (2.7x), 40 JPEGs deleted
2026-05-07T11:12:40.535068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:40.647364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:41.220156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:41.301848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:43.222251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:43.266764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:13:01.235609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:01.299808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:32.450693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:32.586876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:44.862308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:44.940165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:14:01.162441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:03.453473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:08.993859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:09.054039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:12.312363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:12.354292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:21.396038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:21.489451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:22.083385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=visual_change)
2026-05-07T11:14:36.252205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:43.015757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:43.664591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=visual_change)
2026-05-07T11:14:45.857760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:45.904716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:47.073442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T11:16:05.411899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture fo...
|
iTerm2
|
screenpipe"
|
NULL
|
1909
|
|
1910
|
2026-05-07T09:45:22.811350Z INFO screenpipe_engin 2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
2026-05-07T10:13:54.236529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7077166956358270957, trigger=click)
2026-05-07T10:13:59.559230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3980541844315414876, trigger=visual_change)
2026-05-07T10:14:11.809168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6523625761174407917, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:15:45.403085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6029182552546457581, trigger=click)
2026-05-07T10:15:45.438150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029182552546457581, trigger=click)
2026-05-07T10:15:58.662028Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=1)
2026-05-07T10:15:58.663307Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=1)
2026-05-07T10:15:58.663499Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=false, manual=false, active_id=None, app=None, source=None
2026-05-07T10:16:05.043304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=312614534752492596, trigger=visual_change)
2026-05-07T10:16:06.212558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=312614534752492596, trigger=click)
2026-05-07T10:16:10.088825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:11.585397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:11.626664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:14.079057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=visual_change)
2026-05-07T10:16:16.219212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:16.238237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:17.211409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:17.247202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:37.973759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.014645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.719453Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.757458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:39.323203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:39.361472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:40.850433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-05-07T10:16:42.489832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.5MB → 1.4MB (3.2x), 25 JPEGs deleted
2026-05-07T10:16:44.044480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.2MB → 1.1MB (3.7x), 23 JPEGs deleted
2026-05-07T10:16:44.383786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=visual_change)
2026-05-07T10:17:13.547514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=click)
2026-05-07T10:17:23.997418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8224741320031956579, trigger=click)
2026-05-07T10:17:36.067503Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8224741320031956579, trigger=visual_change)
2026-05-07T10:17:48.254094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8224741320031956579, trigger=click)
2026-05-07T10:18:06.328441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:21.374558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:27.400579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:36.379491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7524776963116161484, trigger=visual_change)
2026-05-07T10:18:39.375238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7524776963116161484, trigger=visual_change)
2026-05-07T10:19:43.208935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840747455939898472, trigger=visual_change)
2026-05-07T10:19:49.257421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840747455939898472, trigger=visual_change)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:21:21.848375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=201887528283740068, trigger=click)
2026-05-07T10:21:23.439805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=201887528283740068, trigger=visual_change)
2026-05-07T10:21:38.803777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4689651471004117672, trigger=click)
2026-05-07T10:21:44.054102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames
2026-05-07T10:21:46.307600Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.0MB → 1.3MB (3.8x), 38 JPEGs deleted
2026-05-07T10:21:49.031129Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.2MB → 1.4MB (5.2x), 44 JPEGs deleted
2026-05-07T10:23:02.085605Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2104275679555505311, trigger=visual_change)
2026-05-07T10:23:05.086593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2104275679555505311, trigger=visual_change)
2026-05-07T10:24:05.661776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=visual_change)
2026-05-07T10:24:09.585701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=click)
2026-05-07T10:24:11.714956Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=visual_change)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:25:31.235235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4393937499657261667, trigger=visual_change)
2026-05-07T10:25:38.986311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2365554338448923185, trigger=click)
2026-05-07T10:26:49.039316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames
2026-05-07T10:26:52.006289Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 9.5MB → 4.4MB (2.1x), 42 JPEGs deleted
2026-05-07T10:26:54.644073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.6MB → 1.1MB (7.0x), 44 JPEGs deleted
2026-05-07T10:28:33.499505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:35.956588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:36.666492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:36.789359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:39.100987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:40.047061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:40.064268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:42.052599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:44.774285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:44.791022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:45.378301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:46.470785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:46.575295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:47.652750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:47.668490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:48.439575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:50.165309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:50.177581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:51.452287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:51.994437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:52.053841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:54.432682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:03.124980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:03.868714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:05.079320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:06.543967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:06.576904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:08.792645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:08.865500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:20.773748Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:21.723479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:21.752924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:23.883669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1480943928003130782, trigger=visual_change)
2026-05-07T10:29:35.016352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:36.054767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:36.117899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:38.114508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:38.937597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:38.987983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:31:28.462010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9014748524946296965, trigger=click)
2026-05-07T10:31:28.506716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9014748524946296965, trigger=click)
2026-05-07T10:31:54.652328Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 102 eligible frames
2026-05-07T10:31:57.015395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 13.6MB → 2.6MB (5.3x), 37 JPEGs deleted
2026-05-07T10:32:00.752190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 7.5MB → 3.0MB (2.5x), 63 JPEGs deleted
2026-05-07T10:32:26.599963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:32:27.400474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:34:30.099383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:34:30.729647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:35:03.954351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:35:13.717941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8871609275972961978, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:37:00.792475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 104 eligible frames
2026-05-07T10:37:03.726678Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 15.7MB → 2.8MB (5.7x), 45 JPEGs deleted
2026-05-07T10:37:07.426691Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 8.5MB → 3.4MB (2.5x), 57 JPEGs deleted
2026-05-07T10:37:20.569450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:29.162289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:29.307132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:30.755107Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:37:32.262354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:32.364050Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:45.907491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:37:47.205630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:47.304637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:41:59.417224Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5950044591583842886, trigger=click)
2026-05-07T10:41:59.477946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5950044591583842886, trigger=click)
2026-05-07T10:42:04.742903Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5999585032610140654, trigger=click)
2026-05-07T10:42:04.791839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5999585032610140654, trigger=click)
2026-05-07T10:42:07.459097Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-05-07T10:42:08.925855Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.3MB → 2.0MB (2.1x), 20 JPEGs deleted
2026-05-07T10:42:09.013373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3109201817482414574, trigger=click)
2026-05-07T10:42:09.056483Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3109201817482414574, trigger=click)
2026-05-07T10:42:10.403020Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.2MB (2.2x), 16 JPEGs deleted
2026-05-07T10:42:15.023525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7036607934458099426, trigger=click)
2026-05-07T10:42:15.087803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7036607934458099426, trigger=click)
2026-05-07T10:42:55.509669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2284708141138457574, trigger=visual_change)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:47:10.412520Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 76 eligible frames
2026-05-07T10:47:12.469581Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 8.4MB → 1.8MB (4.7x), 34 JPEGs deleted
2026-05-07T10:47:15.163169Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.2MB → 2.4MB (3.0x), 40 JPEGs deleted
2026-05-07T10:49:59.513306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5898226934247819222, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:52:15.173889Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames
2026-05-07T10:52:17.082276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 8.4MB → 0.7MB (11.6x), 32 JPEGs deleted
2026-05-07T10:52:19.490930Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 5.9MB → 2.2MB (2.7x), 39 JPEGs deleted
2026-05-07T10:54:22.187516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:54:28.229775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:10.540942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:13.602063Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:16.605531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:55:24.247307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:57:19.473518Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:57:20.680885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.9MB → 0.5MB (5.3x), 11 JPEGs deleted
2026-05-07T10:57:21.976198Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.3MB (1.9x), 15 JPEGs deleted
2026-05-07T10:58:11.572541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:11.672796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:12.154759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:13.639499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=visual_change)
2026-05-07T10:58:15.413079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:15.495531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:16.595925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=visual_change)
2026-05-07T10:58:21.437769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.085129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.869865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.981197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:42.120927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1967027037406422417, trigger=click)
2026-05-07T10:58:42.168157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1967027037406422417, trigger=click)
2026-05-07T10:58:59.393221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3964650797953228084, trigger=click)
2026-05-07T10:58:59.482526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=click)
2026-05-07T10:59:49.917826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=visual_change)
2026-05-07T11:00:17.089194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=visual_change)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T11:02:21.972630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-05-07T11:02:22.860530Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.6MB → 0.5MB (4.8x), 10 JPEGs deleted
2026-05-07T11:02:23.655299Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.4MB (4.9x), 10 JPEGs deleted
2026-05-07T11:03:02.204893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:02.270520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:05.248220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:05.306387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:59.105792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T11:05:34.710050Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:07:23.661054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 75 eligible frames
2026-05-07T11:07:25.906642Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 10.0MB → 0.4MB (23.0x), 38 JPEGs deleted
2026-05-07T11:07:28.176089Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.9MB → 2.5MB (2.8x), 35 JPEGs deleted
2026-05-07T11:08:06.864979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:15.119215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:08:29.818126Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:32.981193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:33.042213Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:50.978274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:52.734286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:52.851489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:09:07.119123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:09:37.291815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:09:40.319359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:10:14.288318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:14.424670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:16.847960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:16.940298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T11:10:50.032003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:10:56.222667Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:56.312244Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:20.348299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:11:21.120460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:23.721850Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:23.804892Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:29.056996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:29.140586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:30.305845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:30.383186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:32.114228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:32.191508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:35.851585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:11:45.797893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:11:58.899193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:12:02.054717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.130409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.755693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.846886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:03.619909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=visual_change)
2026-05-07T11:12:10.642255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:10.727852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:11.690324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:11.781304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:21.621763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:25.624917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:28.182732Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames
2026-05-07T11:12:30.153855Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.1MB → 0.9MB (8.3x), 32 JPEGs deleted
2026-05-07T11:12:32.796836Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.6MB → 2.8MB (2.7x), 40 JPEGs deleted
2026-05-07T11:12:40.535068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:40.647364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:41.220156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:41.301848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:43.222251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:43.266764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:13:01.235609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:01.299808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:32.450693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:32.586876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:44.862308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:44.940165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:14:01.162441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:03.453473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:08.993859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:09.054039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:12.312363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:12.354292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:21.396038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:21.489451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:22.083385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=visual_change)
2026-05-07T11:14:36.252205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:43.015757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:43.664591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=visual_change)
2026-05-07T11:14:45.857760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:45.904716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:47.073442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T11:16:05.411899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture fo...
|
iTerm2
|
screenpipe"
|
NULL
|
1910
|
|
1911
|
2026-05-07T09:45:22.811350Z INFO screenpipe_engin 2026-05-07T09:45:22.811350Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 2 (device: monitor_2)
2026-05-07T09:45:22.811366Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (event-driven via CGDisplayRegisterReconfigurationCallback, 60s backstop poll)
2026-05-07T09:45:23.497850Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 1 excluded)
2026-05-07T09:45:23.576837Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=155, dur=39ms
2026-05-07T09:45:23.594869Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 1 excluded)
2026-05-07T09:45:23.728324Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 2: frame_id=156, dur=87ms
2026-05-07T09:45:25.114503Z WARN screenpipe_a11y::tree::macos_lines: lines: AXUIElementCopyParameterizedAttributeValue(AXLineForIndex) failed status=os::Status { raw: -25212, fcc: "....", help: "https://www.osstatus.com?search=-25212" } — first failure (further failures suppressed); search highlights will fall back to paragraph bbox on this app
2026-05-07T09:45:29.149038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7681127700032315998, trigger=visual_change)
2026-05-07T09:45:48.802125Z INFO screenpipe_engine::meeting_detector: meeting v2: Idle -> Confirming (app=Firefox, signals=2)
2026-05-07T09:45:53.994026Z INFO screenpipe_engine::meeting_detector: meeting v2: Confirming -> Active (app=Firefox, signals=2, browser=true)
2026-05-07T09:45:53.994983Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting started (id=1, app=Firefox, title=None)
2026-05-07T09:45:53.995269Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=true, manual=false, active_id=Some(1), app=Some("Firefox"), source=Some("ui_scan")
2026-05-07T09:46:22.681313Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 77 eligible frames
2026-05-07T09:46:24.975724Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 7.6MB → 1.8MB (4.2x), 38 JPEGs deleted
2026-05-07T09:46:27.284414Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 5.7MB → 0.4MB (14.3x), 37 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T09:51:27.298006Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T09:56:27.307108Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 45 eligible frames
2026-05-07T09:56:29.766853Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.6MB → 2.5MB (1.8x), 29 JPEGs deleted
2026-05-07T09:56:31.182378Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.5MB → 1.1MB (2.4x), 16 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:00:50.039083Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4913720669938969944, trigger=visual_change)
2026-05-07T10:01:31.184069Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 70 eligible frames
2026-05-07T10:01:33.701926Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 6.4MB → 2.7MB (2.4x), 37 JPEGs deleted
2026-05-07T10:01:35.921087Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 31 frames, 5.6MB → 1.7MB (3.3x), 31 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:06:35.921469Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-07T10:06:37.286011Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.2MB → 1.1MB (3.0x), 18 JPEGs deleted
2026-05-07T10:06:38.611334Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.2MB → 0.7MB (4.3x), 17 JPEGs deleted
2026-05-07T10:07:10.923890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-363038137104660743, trigger=click)
2026-05-07T10:07:54.763156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=click)
2026-05-07T10:07:58.866469Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7750749190140780004, trigger=click)
2026-05-07T10:08:03.510124Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4602046684169633189, trigger=visual_change)
2026-05-07T10:08:39.088273Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3643569030250279342, trigger=visual_change)
2026-05-07T10:09:18.346872Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6569246041316117301, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:10:36.954420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4721988080886038618, trigger=visual_change)
2026-05-07T10:10:54.330626Z INFO screenpipe_engine::meeting_detector: meeting v2: Active -> Ending (no controls, app=Firefox, id=1, grace=300s)
2026-05-07T10:11:12.369084Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8225140425134796296, trigger=visual_change)
2026-05-07T10:11:38.678230Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:11:40.024314Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.8MB → 1.0MB (2.9x), 16 JPEGs deleted
2026-05-07T10:11:40.843106Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.4x), 10 JPEGs deleted
2026-05-07T10:12:12.538283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7652725149678140352, trigger=click)
2026-05-07T10:12:16.550570Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9173838423795606666, trigger=visual_change)
2026-05-07T10:12:31.745217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:34.790862Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:37.784752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:40.806177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:43.854881Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:12:59.015149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:14.166750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:17.184510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1669118135250037105, trigger=visual_change)
2026-05-07T10:13:34.773468Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=click)
2026-05-07T10:13:44.486450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6229566017341650404, trigger=visual_change)
2026-05-07T10:13:54.236529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7077166956358270957, trigger=click)
2026-05-07T10:13:59.559230Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3980541844315414876, trigger=visual_change)
2026-05-07T10:14:11.809168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6523625761174407917, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:15:45.403085Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6029182552546457581, trigger=click)
2026-05-07T10:15:45.438150Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6029182552546457581, trigger=click)
2026-05-07T10:15:58.662028Z INFO screenpipe_engine::meeting_detector: meeting v2: Ending -> Idle (timeout=300s, app=Firefox, id=1)
2026-05-07T10:15:58.663307Z INFO screenpipe_engine::meeting_detector: meeting v2: meeting ended (id=1)
2026-05-07T10:15:58.663499Z INFO screenpipe_engine::routes::meetings: meeting_status_changed: active=false, manual=false, active_id=None, app=None, source=None
2026-05-07T10:16:05.043304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=312614534752492596, trigger=visual_change)
2026-05-07T10:16:06.212558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=312614534752492596, trigger=click)
2026-05-07T10:16:10.088825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:11.585397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:11.626664Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6145754442538527174, trigger=click)
2026-05-07T10:16:14.079057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=visual_change)
2026-05-07T10:16:16.219212Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:16.238237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:17.211409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:17.247202Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=806643008695069553, trigger=click)
2026-05-07T10:16:37.973759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.014645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.719453Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:38.757458Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:39.323203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:39.361472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8875948178524934281, trigger=click)
2026-05-07T10:16:40.850433Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 50 eligible frames
2026-05-07T10:16:42.489832Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.5MB → 1.4MB (3.2x), 25 JPEGs deleted
2026-05-07T10:16:44.044480Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.2MB → 1.1MB (3.7x), 23 JPEGs deleted
2026-05-07T10:16:44.383786Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8875948178524934281, trigger=visual_change)
2026-05-07T10:17:13.547514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=click)
2026-05-07T10:17:23.997418Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8224741320031956579, trigger=click)
2026-05-07T10:17:36.067503Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8224741320031956579, trigger=visual_change)
2026-05-07T10:17:48.254094Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8224741320031956579, trigger=click)
2026-05-07T10:18:06.328441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:21.374558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:27.400579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:36.379491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7524776963116161484, trigger=visual_change)
2026-05-07T10:18:39.375238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7524776963116161484, trigger=visual_change)
2026-05-07T10:19:43.208935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840747455939898472, trigger=visual_change)
2026-05-07T10:19:49.257421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840747455939898472, trigger=visual_change)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:21:21.848375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=201887528283740068, trigger=click)
2026-05-07T10:21:23.439805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=201887528283740068, trigger=visual_change)
2026-05-07T10:21:38.803777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4689651471004117672, trigger=click)
2026-05-07T10:21:44.054102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames
2026-05-07T10:21:46.307600Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.0MB → 1.3MB (3.8x), 38 JPEGs deleted
2026-05-07T10:21:49.031129Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.2MB → 1.4MB (5.2x), 44 JPEGs deleted
2026-05-07T10:23:02.085605Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2104275679555505311, trigger=visual_change)
2026-05-07T10:23:05.086593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2104275679555505311, trigger=visual_change)
2026-05-07T10:24:05.661776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=visual_change)
2026-05-07T10:24:09.585701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=click)
2026-05-07T10:24:11.714956Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=visual_change)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:25:31.235235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4393937499657261667, trigger=visual_change)
2026-05-07T10:25:38.986311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2365554338448923185, trigger=click)
2026-05-07T10:26:49.039316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames
2026-05-07T10:26:52.006289Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 9.5MB → 4.4MB (2.1x), 42 JPEGs deleted
2026-05-07T10:26:54.644073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.6MB → 1.1MB (7.0x), 44 JPEGs deleted
2026-05-07T10:28:33.499505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:35.956588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:36.666492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:36.789359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:39.100987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:40.047061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:40.064268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:42.052599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:44.774285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:44.791022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:45.378301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:46.470785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:46.575295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:47.652750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:47.668490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:48.439575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:50.165309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:50.177581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:51.452287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:51.994437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:52.053841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:54.432682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:03.124980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:03.868714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:05.079320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:06.543967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:06.576904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:08.792645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:08.865500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:20.773748Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:21.723479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:21.752924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:23.883669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1480943928003130782, trigger=visual_change)
2026-05-07T10:29:35.016352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:36.054767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:36.117899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:38.114508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:38.937597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:38.987983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:31:28.462010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9014748524946296965, trigger=click)
2026-05-07T10:31:28.506716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9014748524946296965, trigger=click)
2026-05-07T10:31:54.652328Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 102 eligible frames
2026-05-07T10:31:57.015395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 13.6MB → 2.6MB (5.3x), 37 JPEGs deleted
2026-05-07T10:32:00.752190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 7.5MB → 3.0MB (2.5x), 63 JPEGs deleted
2026-05-07T10:32:26.599963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:32:27.400474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:34:30.099383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:34:30.729647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:35:03.954351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:35:13.717941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8871609275972961978, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:37:00.792475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 104 eligible frames
2026-05-07T10:37:03.726678Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 15.7MB → 2.8MB (5.7x), 45 JPEGs deleted
2026-05-07T10:37:07.426691Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 8.5MB → 3.4MB (2.5x), 57 JPEGs deleted
2026-05-07T10:37:20.569450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:29.162289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:29.307132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:30.755107Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:37:32.262354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:32.364050Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:45.907491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:37:47.205630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:47.304637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:41:59.417224Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5950044591583842886, trigger=click)
2026-05-07T10:41:59.477946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5950044591583842886, trigger=click)
2026-05-07T10:42:04.742903Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5999585032610140654, trigger=click)
2026-05-07T10:42:04.791839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5999585032610140654, trigger=click)
2026-05-07T10:42:07.459097Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-05-07T10:42:08.925855Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.3MB → 2.0MB (2.1x), 20 JPEGs deleted
2026-05-07T10:42:09.013373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3109201817482414574, trigger=click)
2026-05-07T10:42:09.056483Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3109201817482414574, trigger=click)
2026-05-07T10:42:10.403020Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.2MB (2.2x), 16 JPEGs deleted
2026-05-07T10:42:15.023525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7036607934458099426, trigger=click)
2026-05-07T10:42:15.087803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7036607934458099426, trigger=click)
2026-05-07T10:42:55.509669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2284708141138457574, trigger=visual_change)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:47:10.412520Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 76 eligible frames
2026-05-07T10:47:12.469581Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 8.4MB → 1.8MB (4.7x), 34 JPEGs deleted
2026-05-07T10:47:15.163169Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.2MB → 2.4MB (3.0x), 40 JPEGs deleted
2026-05-07T10:49:59.513306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5898226934247819222, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:52:15.173889Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames
2026-05-07T10:52:17.082276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 8.4MB → 0.7MB (11.6x), 32 JPEGs deleted
2026-05-07T10:52:19.490930Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 5.9MB → 2.2MB (2.7x), 39 JPEGs deleted
2026-05-07T10:54:22.187516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:54:28.229775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:10.540942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:13.602063Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:16.605531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:55:24.247307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:57:19.473518Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:57:20.680885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.9MB → 0.5MB (5.3x), 11 JPEGs deleted
2026-05-07T10:57:21.976198Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.3MB (1.9x), 15 JPEGs deleted
2026-05-07T10:58:11.572541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:11.672796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:12.154759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:13.639499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=visual_change)
2026-05-07T10:58:15.413079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:15.495531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:16.595925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=visual_change)
2026-05-07T10:58:21.437769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.085129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.869865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.981197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:42.120927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1967027037406422417, trigger=click)
2026-05-07T10:58:42.168157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1967027037406422417, trigger=click)
2026-05-07T10:58:59.393221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3964650797953228084, trigger=click)
2026-05-07T10:58:59.482526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=click)
2026-05-07T10:59:49.917826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=visual_change)
2026-05-07T11:00:17.089194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=visual_change)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T11:02:21.972630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-05-07T11:02:22.860530Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.6MB → 0.5MB (4.8x), 10 JPEGs deleted
2026-05-07T11:02:23.655299Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.4MB (4.9x), 10 JPEGs deleted
2026-05-07T11:03:02.204893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:02.270520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:05.248220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:05.306387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:59.105792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T11:05:34.710050Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:07:23.661054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 75 eligible frames
2026-05-07T11:07:25.906642Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 10.0MB → 0.4MB (23.0x), 38 JPEGs deleted
2026-05-07T11:07:28.176089Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.9MB → 2.5MB (2.8x), 35 JPEGs deleted
2026-05-07T11:08:06.864979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:15.119215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:08:29.818126Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:32.981193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:33.042213Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:50.978274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:52.734286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:52.851489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:09:07.119123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:09:37.291815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:09:40.319359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:10:14.288318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:14.424670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:16.847960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:16.940298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T11:10:50.032003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:10:56.222667Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:56.312244Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:20.348299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:11:21.120460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:23.721850Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:23.804892Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:29.056996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:29.140586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:30.305845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:30.383186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:32.114228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:32.191508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:35.851585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:11:45.797893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:11:58.899193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:12:02.054717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.130409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.755693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.846886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:03.619909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=visual_change)
2026-05-07T11:12:10.642255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:10.727852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:11.690324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:11.781304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:21.621763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:25.624917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:28.182732Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames
2026-05-07T11:12:30.153855Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.1MB → 0.9MB (8.3x), 32 JPEGs deleted
2026-05-07T11:12:32.796836Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.6MB → 2.8MB (2.7x), 40 JPEGs deleted
2026-05-07T11:12:40.535068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:40.647364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:41.220156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:41.301848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:43.222251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:43.266764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:13:01.235609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:01.299808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:32.450693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:32.586876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:44.862308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:44.940165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:14:01.162441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:03.453473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:08.993859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:09.054039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:12.312363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:12.354292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:21.396038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:21.489451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:22.083385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=visual_change)
2026-05-07T11:14:36.252205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:43.015757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:43.664591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=visual_change)
2026-05-07T11:14:45.857760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:45.904716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:47.073442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T11:16:05.411899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture fo...
|
iTerm2
|
screenpipe"
|
NULL
|
1911
|
|
2140
|
2026-05-07T10:18:21.374558Z INFO screenpipe_engin 2026-05-07T10:18:21.374558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:27.400579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:36.379491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7524776963116161484, trigger=visual_change)
2026-05-07T10:18:39.375238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7524776963116161484, trigger=visual_change)
2026-05-07T10:19:43.208935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840747455939898472, trigger=visual_change)
2026-05-07T10:19:49.257421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840747455939898472, trigger=visual_change)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:21:21.848375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=201887528283740068, trigger=click)
2026-05-07T10:21:23.439805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=201887528283740068, trigger=visual_change)
2026-05-07T10:21:38.803777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4689651471004117672, trigger=click)
2026-05-07T10:21:44.054102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames
2026-05-07T10:21:46.307600Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.0MB → 1.3MB (3.8x), 38 JPEGs deleted
2026-05-07T10:21:49.031129Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.2MB → 1.4MB (5.2x), 44 JPEGs deleted
2026-05-07T10:23:02.085605Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2104275679555505311, trigger=visual_change)
2026-05-07T10:23:05.086593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2104275679555505311, trigger=visual_change)
2026-05-07T10:24:05.661776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=visual_change)
2026-05-07T10:24:09.585701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=click)
2026-05-07T10:24:11.714956Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=visual_change)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:25:31.235235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4393937499657261667, trigger=visual_change)
2026-05-07T10:25:38.986311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2365554338448923185, trigger=click)
2026-05-07T10:26:49.039316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames
2026-05-07T10:26:52.006289Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 9.5MB → 4.4MB (2.1x), 42 JPEGs deleted
2026-05-07T10:26:54.644073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.6MB → 1.1MB (7.0x), 44 JPEGs deleted
2026-05-07T10:28:33.499505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:35.956588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:36.666492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:36.789359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:39.100987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:40.047061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:40.064268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:42.052599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:44.774285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:44.791022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:45.378301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:46.470785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:46.575295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:47.652750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:47.668490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:48.439575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:50.165309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:50.177581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:51.452287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:51.994437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:52.053841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:54.432682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:03.124980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:03.868714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:05.079320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:06.543967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:06.576904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:08.792645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:08.865500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:20.773748Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:21.723479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:21.752924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:23.883669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1480943928003130782, trigger=visual_change)
2026-05-07T10:29:35.016352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:36.054767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:36.117899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:38.114508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:38.937597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:38.987983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:31:28.462010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9014748524946296965, trigger=click)
2026-05-07T10:31:28.506716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9014748524946296965, trigger=click)
2026-05-07T10:31:54.652328Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 102 eligible frames
2026-05-07T10:31:57.015395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 13.6MB → 2.6MB (5.3x), 37 JPEGs deleted
2026-05-07T10:32:00.752190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 7.5MB → 3.0MB (2.5x), 63 JPEGs deleted
2026-05-07T10:32:26.599963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:32:27.400474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:34:30.099383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:34:30.729647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:35:03.954351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:35:13.717941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8871609275972961978, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:37:00.792475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 104 eligible frames
2026-05-07T10:37:03.726678Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 15.7MB → 2.8MB (5.7x), 45 JPEGs deleted
2026-05-07T10:37:07.426691Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 8.5MB → 3.4MB (2.5x), 57 JPEGs deleted
2026-05-07T10:37:20.569450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:29.162289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:29.307132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:30.755107Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:37:32.262354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:32.364050Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:45.907491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:37:47.205630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:47.304637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:41:59.417224Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5950044591583842886, trigger=click)
2026-05-07T10:41:59.477946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5950044591583842886, trigger=click)
2026-05-07T10:42:04.742903Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5999585032610140654, trigger=click)
2026-05-07T10:42:04.791839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5999585032610140654, trigger=click)
2026-05-07T10:42:07.459097Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-05-07T10:42:08.925855Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.3MB → 2.0MB (2.1x), 20 JPEGs deleted
2026-05-07T10:42:09.013373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3109201817482414574, trigger=click)
2026-05-07T10:42:09.056483Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3109201817482414574, trigger=click)
2026-05-07T10:42:10.403020Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.2MB (2.2x), 16 JPEGs deleted
2026-05-07T10:42:15.023525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7036607934458099426, trigger=click)
2026-05-07T10:42:15.087803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7036607934458099426, trigger=click)
2026-05-07T10:42:55.509669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2284708141138457574, trigger=visual_change)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:47:10.412520Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 76 eligible frames
2026-05-07T10:47:12.469581Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 8.4MB → 1.8MB (4.7x), 34 JPEGs deleted
2026-05-07T10:47:15.163169Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.2MB → 2.4MB (3.0x), 40 JPEGs deleted
2026-05-07T10:49:59.513306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5898226934247819222, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:52:15.173889Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames
2026-05-07T10:52:17.082276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 8.4MB → 0.7MB (11.6x), 32 JPEGs deleted
2026-05-07T10:52:19.490930Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 5.9MB → 2.2MB (2.7x), 39 JPEGs deleted
2026-05-07T10:54:22.187516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:54:28.229775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:10.540942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:13.602063Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:16.605531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:55:24.247307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:57:19.473518Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:57:20.680885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.9MB → 0.5MB (5.3x), 11 JPEGs deleted
2026-05-07T10:57:21.976198Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.3MB (1.9x), 15 JPEGs deleted
2026-05-07T10:58:11.572541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:11.672796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:12.154759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:13.639499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=visual_change)
2026-05-07T10:58:15.413079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:15.495531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:16.595925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=visual_change)
2026-05-07T10:58:21.437769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.085129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.869865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.981197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:42.120927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1967027037406422417, trigger=click)
2026-05-07T10:58:42.168157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1967027037406422417, trigger=click)
2026-05-07T10:58:59.393221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3964650797953228084, trigger=click)
2026-05-07T10:58:59.482526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=click)
2026-05-07T10:59:49.917826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=visual_change)
2026-05-07T11:00:17.089194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=visual_change)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T11:02:21.972630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-05-07T11:02:22.860530Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.6MB → 0.5MB (4.8x), 10 JPEGs deleted
2026-05-07T11:02:23.655299Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.4MB (4.9x), 10 JPEGs deleted
2026-05-07T11:03:02.204893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:02.270520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:05.248220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:05.306387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:59.105792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T11:05:34.710050Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:07:23.661054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 75 eligible frames
2026-05-07T11:07:25.906642Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 10.0MB → 0.4MB (23.0x), 38 JPEGs deleted
2026-05-07T11:07:28.176089Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.9MB → 2.5MB (2.8x), 35 JPEGs deleted
2026-05-07T11:08:06.864979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:15.119215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:08:29.818126Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:32.981193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:33.042213Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:50.978274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:52.734286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:52.851489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:09:07.119123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:09:37.291815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:09:40.319359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:10:14.288318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:14.424670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:16.847960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:16.940298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T11:10:50.032003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:10:56.222667Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:56.312244Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:20.348299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:11:21.120460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:23.721850Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:23.804892Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:29.056996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:29.140586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:30.305845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:30.383186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:32.114228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:32.191508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:35.851585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:11:45.797893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:11:58.899193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:12:02.054717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.130409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.755693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.846886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:03.619909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=visual_change)
2026-05-07T11:12:10.642255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:10.727852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:11.690324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:11.781304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:21.621763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:25.624917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:28.182732Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames
2026-05-07T11:12:30.153855Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.1MB → 0.9MB (8.3x), 32 JPEGs deleted
2026-05-07T11:12:32.796836Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.6MB → 2.8MB (2.7x), 40 JPEGs deleted
2026-05-07T11:12:40.535068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:40.647364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:41.220156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:41.301848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:43.222251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:43.266764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:13:01.235609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:01.299808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:32.450693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:32.586876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:44.862308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:44.940165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:14:01.162441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:03.453473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:08.993859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:09.054039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:12.312363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:12.354292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:21.396038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:21.489451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:22.083385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=visual_change)
2026-05-07T11:14:36.252205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:43.015757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:43.664591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=visual_change)
2026-05-07T11:14:45.857760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:45.904716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:47.073442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T11:16:05.411899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=visual_change)
2026-05-07T11:17:32.802525Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames
2026-05-07T11:17:33.719103Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.9MB → 0.2MB (8.1x), 13 JPEGs deleted
2026-05-07T11:17:35.285795Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 1.9MB (1.7x), 15 JPEGs deleted
2026-05-07T11:20:09.287243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1113449299881994885, trigger=visual_change)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T11:21:04.601763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3903176429731934098, trigger=click)
2026-05-07T11:21:05.195829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3903176429731934098, trigger=click)
2026-05-07T11:21:05.286304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3903176429731934098, trigger=click)
2026-05-07T11:21:07.276282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3903176429731934098, trigger=visual_change)
2026-05-07T11:21:07.777421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3903176429731934098, trigger=click)
2026-05-07T11:21:13.629026Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3903176429731934098, trigger=click)
2026-05-07T11:21:13.684368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3903176429731934098, trigger=click)
2026-05-07T11:21:20.314652Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3903176429731934098, trigger=click)
2026-05-07T11:22:35.312878Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-05-07T11:22:36.542655Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 2.8MB → 0.3MB (11.1x), 19 JPEGs deleted
2026-05-07T11:22:37.886380Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.9MB → 1.4MB (2.1x), 14 JPEGs deleted
2026-05-07T11:24:10.600218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:24:16.658727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:24:16.744250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:24:17.259922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:24:19.786638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:24:19.868844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:24:35.113724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T11:25:31.482893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:25:31.571840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:26:14.372219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:14.474811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:16.108321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:16.208931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:19.179453Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:19.261532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:19.866610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:22.898361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=visual_change)
2026-05-07T11:26:24.804817Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:24.843000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:25.614460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:25.699649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:26.157175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:26.240503Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:29.134680Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:29.186484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:29.947299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:30.055213Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:32.884556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:32.980451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:33.854993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:34.813905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:46.232735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:53.813359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:53.904687Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:54.896284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:54.939177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:55.477051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:55.548442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:56.460709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:56.544450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:57.234557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:57.310735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:57.927276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=visual_change)
2026-05-07T11:26:59.853475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:59.951408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:09.984206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:13.639304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=visual_change)
2026-05-07T11:27:16.675677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=visual_change)
2026-05-07T11:27:21.707146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:21.788450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:22.382630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:22.458852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:23.512005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:23.593854Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:37.895015Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 55 eligible frames
2026-05-07T11:27:38.069671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:39.415803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.6MB → 0.3MB (12.6x), 24 JPEGs deleted
2026-05-07T11:27:41.361532Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 6.3MB → 1.7MB (3.7x), 29 JPEGs deleted
2026-05-07T11:27:44.250056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:44.946799Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:45.012823Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:45.951481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:46.036903Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:46.637934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:46.720109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:47.898633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=visual_change)
2026-05-07T11:28:32.963811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-462369777689901873, trigger=click)
2026-05-07T11:28:33.481808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-462369777689901873, trigger=click)
2026-05-07T11:28:35.408327Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-462369777689901873, trigger=click)
2026-05-07T11:28:35.488526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-462369777689901873, trigger=click)
2026-05-07T11:28:35.994222Z INFO screenpipe_engine::event_driven_capture: content ...
|
iTerm2
|
screenpipe"
|
NULL
|
2140
|
|
2141
|
2026-05-07T10:18:21.374558Z INFO screenpipe_engin 2026-05-07T10:18:21.374558Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:27.400579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8392580966194121284, trigger=visual_change)
2026-05-07T10:18:36.379491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7524776963116161484, trigger=visual_change)
2026-05-07T10:18:39.375238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7524776963116161484, trigger=visual_change)
2026-05-07T10:19:43.208935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840747455939898472, trigger=visual_change)
2026-05-07T10:19:49.257421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840747455939898472, trigger=visual_change)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:21:21.848375Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=201887528283740068, trigger=click)
2026-05-07T10:21:23.439805Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=201887528283740068, trigger=visual_change)
2026-05-07T10:21:38.803777Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4689651471004117672, trigger=click)
2026-05-07T10:21:44.054102Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 84 eligible frames
2026-05-07T10:21:46.307600Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 5.0MB → 1.3MB (3.8x), 38 JPEGs deleted
2026-05-07T10:21:49.031129Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.2MB → 1.4MB (5.2x), 44 JPEGs deleted
2026-05-07T10:23:02.085605Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2104275679555505311, trigger=visual_change)
2026-05-07T10:23:05.086593Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2104275679555505311, trigger=visual_change)
2026-05-07T10:24:05.661776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=visual_change)
2026-05-07T10:24:09.585701Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=click)
2026-05-07T10:24:11.714956Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=763931354791105339, trigger=visual_change)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:25:31.235235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4393937499657261667, trigger=visual_change)
2026-05-07T10:25:38.986311Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2365554338448923185, trigger=click)
2026-05-07T10:26:49.039316Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 88 eligible frames
2026-05-07T10:26:52.006289Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 42 frames, 9.5MB → 4.4MB (2.1x), 42 JPEGs deleted
2026-05-07T10:26:54.644073Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 44 frames, 7.6MB → 1.1MB (7.0x), 44 JPEGs deleted
2026-05-07T10:28:33.499505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:35.956588Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:36.666492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:36.789359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:39.100987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:40.047061Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:40.064268Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:42.052599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:44.774285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:44.791022Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:45.378301Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:46.470785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:46.575295Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:47.652750Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:47.668490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:48.439575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:50.165309Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:50.177581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:51.452287Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:28:51.994437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:52.053841Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:28:54.432682Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:03.124980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:03.868714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:05.079320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:06.543967Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:06.576904Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:08.792645Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:08.865500Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:20.773748Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:21.723479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:21.752924Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:23.883669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1480943928003130782, trigger=visual_change)
2026-05-07T10:29:35.016352Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:36.054767Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:36.117899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:38.114508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=visual_change)
2026-05-07T10:29:38.937597Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4111022203962396269, trigger=click)
2026-05-07T10:29:38.987983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4111022203962396269, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:31:28.462010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=9014748524946296965, trigger=click)
2026-05-07T10:31:28.506716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=9014748524946296965, trigger=click)
2026-05-07T10:31:54.652328Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 102 eligible frames
2026-05-07T10:31:57.015395Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 37 frames, 13.6MB → 2.6MB (5.3x), 37 JPEGs deleted
2026-05-07T10:32:00.752190Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 63 frames, 7.5MB → 3.0MB (2.5x), 63 JPEGs deleted
2026-05-07T10:32:26.599963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:32:27.400474Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:34:30.099383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:34:30.729647Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:35:03.954351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:35:13.717941Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8871609275972961978, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:37:00.792475Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 104 eligible frames
2026-05-07T10:37:03.726678Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 45 frames, 15.7MB → 2.8MB (5.7x), 45 JPEGs deleted
2026-05-07T10:37:07.426691Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 57 frames, 8.5MB → 3.4MB (2.5x), 57 JPEGs deleted
2026-05-07T10:37:20.569450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:29.162289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:29.307132Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:30.755107Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:37:32.262354Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:32.364050Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:45.907491Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=visual_change)
2026-05-07T10:37:47.205630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2524758617991974503, trigger=click)
2026-05-07T10:37:47.304637Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T10:41:59.417224Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5950044591583842886, trigger=click)
2026-05-07T10:41:59.477946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5950044591583842886, trigger=click)
2026-05-07T10:42:04.742903Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5999585032610140654, trigger=click)
2026-05-07T10:42:04.791839Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5999585032610140654, trigger=click)
2026-05-07T10:42:07.459097Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-05-07T10:42:08.925855Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.3MB → 2.0MB (2.1x), 20 JPEGs deleted
2026-05-07T10:42:09.013373Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3109201817482414574, trigger=click)
2026-05-07T10:42:09.056483Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3109201817482414574, trigger=click)
2026-05-07T10:42:10.403020Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 1.2MB (2.2x), 16 JPEGs deleted
2026-05-07T10:42:15.023525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7036607934458099426, trigger=click)
2026-05-07T10:42:15.087803Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7036607934458099426, trigger=click)
2026-05-07T10:42:55.509669Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2284708141138457574, trigger=visual_change)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T10:47:10.412520Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 76 eligible frames
2026-05-07T10:47:12.469581Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 8.4MB → 1.8MB (4.7x), 34 JPEGs deleted
2026-05-07T10:47:15.163169Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.2MB → 2.4MB (3.0x), 40 JPEGs deleted
2026-05-07T10:49:59.513306Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5898226934247819222, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T10:52:15.173889Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames
2026-05-07T10:52:17.082276Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 8.4MB → 0.7MB (11.6x), 32 JPEGs deleted
2026-05-07T10:52:19.490930Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 39 frames, 5.9MB → 2.2MB (2.7x), 39 JPEGs deleted
2026-05-07T10:54:22.187516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:54:28.229775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:10.540942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:13.602063Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
2026-05-07T10:55:16.605531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1639151917924912395, trigger=visual_change)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T10:55:24.247307Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2524758617991974503, trigger=click)
2026-05-07T10:57:19.473518Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T10:57:20.680885Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.9MB → 0.5MB (5.3x), 11 JPEGs deleted
2026-05-07T10:57:21.976198Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 1.3MB (1.9x), 15 JPEGs deleted
2026-05-07T10:58:11.572541Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:11.672796Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:12.154759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:13.639499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=visual_change)
2026-05-07T10:58:15.413079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:15.495531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:16.595925Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=visual_change)
2026-05-07T10:58:21.437769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.085129Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.869865Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:32.981197Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2179464293260827512, trigger=click)
2026-05-07T10:58:42.120927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1967027037406422417, trigger=click)
2026-05-07T10:58:42.168157Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1967027037406422417, trigger=click)
2026-05-07T10:58:59.393221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3964650797953228084, trigger=click)
2026-05-07T10:58:59.482526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=click)
2026-05-07T10:59:49.917826Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=visual_change)
2026-05-07T11:00:17.089194Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3964650797953228084, trigger=visual_change)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T11:02:21.972630Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-05-07T11:02:22.860530Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.6MB → 0.5MB (4.8x), 10 JPEGs deleted
2026-05-07T11:02:23.655299Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.4MB (4.9x), 10 JPEGs deleted
2026-05-07T11:03:02.204893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:02.270520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:05.248220Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:05.306387Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
2026-05-07T11:03:59.105792Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7900633084178088567, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T11:05:34.710050Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:07:23.661054Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 75 eligible frames
2026-05-07T11:07:25.906642Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 38 frames, 10.0MB → 0.4MB (23.0x), 38 JPEGs deleted
2026-05-07T11:07:28.176089Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 35 frames, 6.9MB → 2.5MB (2.8x), 35 JPEGs deleted
2026-05-07T11:08:06.864979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:15.119215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:08:29.818126Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:32.981193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:33.042213Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:50.978274Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:52.734286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:08:52.851489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:09:07.119123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:09:37.291815Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:09:40.319359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:10:14.288318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:14.424670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:16.847960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:16.940298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T11:10:50.032003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:10:56.222667Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:10:56.312244Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:20.348299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:11:21.120460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:23.721850Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:23.804892Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:29.056996Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:29.140586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:30.305845Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:30.383186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:32.114228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:32.191508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=click)
2026-05-07T11:11:35.851585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3673172198391692637, trigger=visual_change)
2026-05-07T11:11:45.797893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:11:58.899193Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:12:02.054717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.130409Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.755693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:02.846886Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:03.619909Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=visual_change)
2026-05-07T11:12:10.642255Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:10.727852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:11.690324Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:11.781304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3238466536228167005, trigger=click)
2026-05-07T11:12:21.621763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:25.624917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:28.182732Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 74 eligible frames
2026-05-07T11:12:30.153855Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 7.1MB → 0.9MB (8.3x), 32 JPEGs deleted
2026-05-07T11:12:32.796836Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 40 frames, 7.6MB → 2.8MB (2.7x), 40 JPEGs deleted
2026-05-07T11:12:40.535068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:40.647364Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:41.220156Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:41.301848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:43.222251Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:12:43.266764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:13:01.235609Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:01.299808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:32.450693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:32.586876Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:44.862308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:13:44.940165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4952689273601773303, trigger=click)
2026-05-07T11:14:01.162441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:03.453473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:08.993859Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:09.054039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:12.312363Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:12.354292Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:21.396038Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:21.489451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=click)
2026-05-07T11:14:22.083385Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6840767885990663182, trigger=visual_change)
2026-05-07T11:14:36.252205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:43.015757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:43.664591Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=visual_change)
2026-05-07T11:14:45.857760Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:45.904716Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=click)
2026-05-07T11:14:47.073442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1282942611038083818, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T11:16:05.411899Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1282942611038083818, trigger=visual_change)
2026-05-07T11:17:32.802525Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames
2026-05-07T11:17:33.719103Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 1.9MB → 0.2MB (8.1x), 13 JPEGs deleted
2026-05-07T11:17:35.285795Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 3.2MB → 1.9MB (1.7x), 15 JPEGs deleted
2026-05-07T11:20:09.287243Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-1113449299881994885, trigger=visual_change)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T11:21:04.601763Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3903176429731934098, trigger=click)
2026-05-07T11:21:05.195829Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3903176429731934098, trigger=click)
2026-05-07T11:21:05.286304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3903176429731934098, trigger=click)
2026-05-07T11:21:07.276282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3903176429731934098, trigger=visual_change)
2026-05-07T11:21:07.777421Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3903176429731934098, trigger=click)
2026-05-07T11:21:13.629026Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3903176429731934098, trigger=click)
2026-05-07T11:21:13.684368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=3903176429731934098, trigger=click)
2026-05-07T11:21:20.314652Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=3903176429731934098, trigger=click)
2026-05-07T11:22:35.312878Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 35 eligible frames
2026-05-07T11:22:36.542655Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 2.8MB → 0.3MB (11.1x), 19 JPEGs deleted
2026-05-07T11:22:37.886380Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.9MB → 1.4MB (2.1x), 14 JPEGs deleted
2026-05-07T11:24:10.600218Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:24:16.658727Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:24:16.744250Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:24:17.259922Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:24:19.786638Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:24:19.868844Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:24:35.113724Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T11:25:31.482893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7933120038421061284, trigger=click)
2026-05-07T11:25:31.571840Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7933120038421061284, trigger=click)
2026-05-07T11:26:14.372219Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:14.474811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:16.108321Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:16.208931Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:19.179453Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:19.261532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:19.866610Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:22.898361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=visual_change)
2026-05-07T11:26:24.804817Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:24.843000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:25.614460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:25.699649Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:26.157175Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:26.240503Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:29.134680Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:29.186484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:29.947299Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:30.055213Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:32.884556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:32.980451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:33.854993Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:34.813905Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:46.232735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:53.813359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:53.904687Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:54.896284Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:54.939177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:55.477051Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:55.548442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:56.460709Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:56.544450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:57.234557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:57.310735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:57.927276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=visual_change)
2026-05-07T11:26:59.853475Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:26:59.951408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:09.984206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:13.639304Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=visual_change)
2026-05-07T11:27:16.675677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=visual_change)
2026-05-07T11:27:21.707146Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:21.788450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:22.382630Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:22.458852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:23.512005Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:23.593854Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:37.895015Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 55 eligible frames
2026-05-07T11:27:38.069671Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:39.415803Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 3.6MB → 0.3MB (12.6x), 24 JPEGs deleted
2026-05-07T11:27:41.361532Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 6.3MB → 1.7MB (3.7x), 29 JPEGs deleted
2026-05-07T11:27:44.250056Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:44.946799Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:45.012823Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:45.951481Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:46.036903Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:46.637934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:46.720109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=click)
2026-05-07T11:27:47.898633Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=717162728355553312, trigger=visual_change)
2026-05-07T11:28:32.963811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-462369777689901873, trigger=click)
2026-05-07T11:28:33.481808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-462369777689901873, trigger=click)
2026-05-07T11:28:35.408327Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-462369777689901873, trigger=click)
2026-05-07T11:28:35.488526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-462369777689901873, trigger=click)
2026-05-07T11:28:35.994222Z INFO screenpipe_engine::event_driven_capture: content ...
|
iTerm2
|
screenpipe"
|
NULL
|
2141
|
|
6417
|
2026-05-07T18:54:06.694530Z INFO screenpipe_engin 2026-05-07T18:54:06.694530Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:10.198532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:10.266719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:12.661911Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:12.842182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:19.916432Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:33.125327Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-725354089524067917, trigger=visual_change)
2026-05-07T18:54:36.216703Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-725354089524067917, trigger=visual_change)
2026-05-07T18:54:40.760746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:47.130927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:47.189988Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:54.400631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8698828128144406184, trigger=click)
2026-05-07T18:54:54.554825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8698828128144406184, trigger=click)
2026-05-07T18:54:55.270880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8698828128144406184, trigger=click)
2026-05-07T18:54:55.497046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8698828128144406184, trigger=click)
2026-05-07T18:54:56.231994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8698828128144406184, trigger=click)
2026-05-07T18:54:56.390410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8698828128144406184, trigger=click)
2026-05-07T18:55:06.295831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:07.396377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:55:09.839989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:10.048912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:10.804975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:11.059957Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:13.429679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:13.659109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T18:55:23.935445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:24.058698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:25.178955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:25.277855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:28.129525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:28.220403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:29.968445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:30.091636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:30.772215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:30.971040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:32.549943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:55:32.978942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:35.570244Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:47.355478Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:51.021248Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:51.071082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:51.861594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:55:53.391510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:53.458575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:54.852127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:55:55.741088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:55.784717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:59.855145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:00.061907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:03.871033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:04.045971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:06.982604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:09.887383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:10.072147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:56:12.860759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:13.008559Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:13.689350Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:13.888636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:16.676147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:16.858123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:19.730668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:56:21.116711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:22.863392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:56:25.857382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:25.944869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:27.736339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:27.968277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:34.697492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:35.493000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=visual_change)
2026-05-07T18:56:35.997405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:36.243674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:38.035501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:38.253420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:40.873703Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:45.521180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:48.170505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=visual_change)
2026-05-07T18:56:50.281026Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:50.469078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:51.106211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:51.210447Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:57:22.940226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=visual_change)
2026-05-07T18:57:24.886659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:24.943247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:27.711432Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:27.778020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:29.024539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=visual_change)
2026-05-07T18:57:39.958516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:40.017451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:40.803199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:40.851828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:44.583381Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=visual_change)
2026-05-07T18:57:53.646842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=visual_change)
2026-05-07T18:57:59.683165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=visual_change)
2026-05-07T18:58:01.681512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:01.846528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:05.296271Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:05.439879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:08.063837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:08.294769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:12.234562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=visual_change)
2026-05-07T18:58:15.252484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=visual_change)
2026-05-07T18:58:19.561623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:19.616652Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:23.527237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:23.877910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:27.554625Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:27.753207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:33.910173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:34.138517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:34.809937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:35.056953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:35.346155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:37.352776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:37.504554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:37.976103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:38.680653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:38.763338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:43.792492Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T18:58:44.847366Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.8MB → 0.4MB (7.1x), 13 JPEGs deleted
2026-05-07T18:58:46.331780Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.9MB (3.1x), 13 JPEGs deleted
2026-05-07T18:58:48.678585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:48.746019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:49.493557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:49.753975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:51.506759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:51.562677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:59:02.164937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:59:02.359714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:59:07.935656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:59:20.555025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:20.730118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:21.230889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:21.423662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:24.957602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:25.034890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:30.508120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:36.354586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T18:59:41.219685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:45.536516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T18:59:54.454983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T18:59:57.496471Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:03.563631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:13.988490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:00:20.601584Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T19:00:24.762368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:33.859654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:37.007926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:39.897769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:42.942322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:22.281415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:34.487702Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:35.618441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:37.608854Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:38.423692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:43.325171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:44.635564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:45.829351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:47.566583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:50.495459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:02.758077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:05.639442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:20.806652Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:26.822902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:29.836228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:38.912980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:59.720424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:02:59.781165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:03.524624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:03:06.546298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:03:10.484878Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:12.021174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:12.881960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:03:15.840626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:03:16.930320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:17.004444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:29.126718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:29.294389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:31.141758Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:31.235461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:33.732408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:03:35.376128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:35.474160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:46.409563Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames
2026-05-07T19:03:47.459920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.8MB → 0.4MB (7.3x), 13 JPEGs deleted
2026-05-07T19:03:47.478596Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:47.685688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:48.638329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.4MB → 0.9MB (2.7x), 11 JPEGs deleted
2026-05-07T19:04:08.116536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:08.325939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:09.048145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:09.143715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:10.071599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:10.251285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:23.971234Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:32.733221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:32.860501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:51.720920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:51.887707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:52.428290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:52.672954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:13.345560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:13.435702Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:13.955499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:14.123752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:16.832581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:16.921333Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:20.424048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:20.639049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T19:05:24.585422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:24.763680Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:25.722186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:26.037507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:27.058882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:51.616832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:06:27.553495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:06:49.097515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:06:58.139828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:07:00.501236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:07:22.494893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:07:25.541755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:08:48.672330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames
2026-05-07T19:08:49.959722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.3MB → 0.4MB (10.2x), 20 JPEGs deleted
2026-05-07T19:08:52.053246Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.5MB → 2.0MB (2.7x), 27 JPEGs deleted
2026-05-07T19:09:24.524329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:09:24.612542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:09:56.724979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:10:01.650171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:01.826705Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:02.894140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:10:05.771983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:10:05.962915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:08.265782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:08.415849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:21.827601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:21.956116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T19:10:32.051747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:32.141992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:32.911018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:33.089188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:49.381195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:49.555111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:50.328077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:55.206906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:55.325017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:57.111987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:58.935835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:11:00.791235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:11:00.892227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:11:04.654271Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:11:09.783149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:11:10.922882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=visual_change)
2026-05-07T19:11:28.192704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:29.083215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:29.270039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:33.962918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:34.153653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:42.021041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:43.349693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:43.448166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:53.540965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2382966049842329946, trigger=visual_change)
2026-05-07T19:11:56.520852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2382966049842329946, trigger=visual_change)
2026-05-07T19:11:57.583112Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2382966049842329946, trigger=click)
2026-05-07T19:11:57.675537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2382966049842329946, trigger=click)
2026-05-07T19:12:09.016494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:09.193611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:09.920554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:10.162751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:17.749896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:19.865640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:20.037736Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:21.229308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:25.708397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:25.890046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:28.386069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:28.459158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:29.987752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:31.002923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:31.055807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:33.107450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:36.037286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:36.207370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:39.110854Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:39.184943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:42.211049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:13:52.073799Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-05-07T19:13:53.640097Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.4MB → 0.5MB (11.6x), 25 JPEGs deleted
2026-05-07T19:13:56.148303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.9MB → 2.1MB (2.4x), 25 JPEGs deleted
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T19:15:32.114719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:15:32.277006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:15:34.023332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:15:34.221489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:15:35.156276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:15:41.068772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:15:44.092868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:18:56.195685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-05-07T19:18:57.138533Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.0MB → 0.4MB (7.3x), 14 JPEGs deleted
2026-05-07T19:18:58.608172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.4MB → 1.3MB (2.6x), 18 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T19:22:06.254072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:22:06.376479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:22:07.042289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping captur...
|
iTerm2
|
screenpipe"
|
NULL
|
6417
|
|
6418
|
2026-05-07T18:54:10.198532Z INFO screenpipe_engin 2026-05-07T18:54:10.198532Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:10.266719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:12.661911Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:12.842182Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:19.916432Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:33.125327Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-725354089524067917, trigger=visual_change)
2026-05-07T18:54:36.216703Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-725354089524067917, trigger=visual_change)
2026-05-07T18:54:40.760746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:47.130927Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:47.189988Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-725354089524067917, trigger=click)
2026-05-07T18:54:54.400631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8698828128144406184, trigger=click)
2026-05-07T18:54:54.554825Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8698828128144406184, trigger=click)
2026-05-07T18:54:55.270880Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8698828128144406184, trigger=click)
2026-05-07T18:54:55.497046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8698828128144406184, trigger=click)
2026-05-07T18:54:56.231994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8698828128144406184, trigger=click)
2026-05-07T18:54:56.390410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8698828128144406184, trigger=click)
2026-05-07T18:55:06.295831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:07.396377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:55:09.839989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:10.048912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:10.804975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:11.059957Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:13.429679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:13.659109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T18:55:23.935445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:24.058698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:25.178955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:25.277855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:28.129525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:28.220403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:29.968445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:30.091636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:30.772215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:30.971040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:32.549943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:55:32.978942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:35.570244Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:47.355478Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:51.021248Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:51.071082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:51.861594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:55:53.391510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:53.458575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:54.852127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:55:55.741088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:55.784717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:59.855145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:00.061907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:03.871033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:04.045971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:06.982604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:09.887383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:10.072147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:56:12.860759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:13.008559Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:13.689350Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:13.888636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:16.676147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:16.858123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:19.730668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:56:21.116711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:22.863392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:56:25.857382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:25.944869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:27.736339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:27.968277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:34.697492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:35.493000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=visual_change)
2026-05-07T18:56:35.997405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:36.243674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:38.035501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:38.253420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:40.873703Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:45.521180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:48.170505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=visual_change)
2026-05-07T18:56:50.281026Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:50.469078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:51.106211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:51.210447Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:57:22.940226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=visual_change)
2026-05-07T18:57:24.886659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:24.943247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:27.711432Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:27.778020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:29.024539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=visual_change)
2026-05-07T18:57:39.958516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:40.017451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:40.803199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:40.851828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:44.583381Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=visual_change)
2026-05-07T18:57:53.646842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=visual_change)
2026-05-07T18:57:59.683165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=visual_change)
2026-05-07T18:58:01.681512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:01.846528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:05.296271Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:05.439879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:08.063837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:08.294769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:12.234562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=visual_change)
2026-05-07T18:58:15.252484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=visual_change)
2026-05-07T18:58:19.561623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:19.616652Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:23.527237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:23.877910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:27.554625Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:27.753207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:33.910173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:34.138517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:34.809937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:35.056953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:35.346155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:37.352776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:37.504554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:37.976103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:38.680653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:38.763338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:43.792492Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T18:58:44.847366Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.8MB → 0.4MB (7.1x), 13 JPEGs deleted
2026-05-07T18:58:46.331780Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.9MB (3.1x), 13 JPEGs deleted
2026-05-07T18:58:48.678585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:48.746019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:49.493557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:49.753975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:51.506759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:51.562677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:59:02.164937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:59:02.359714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:59:07.935656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:59:20.555025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:20.730118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:21.230889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:21.423662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:24.957602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:25.034890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:30.508120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:36.354586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T18:59:41.219685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:45.536516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T18:59:54.454983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T18:59:57.496471Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:03.563631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:13.988490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:00:20.601584Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T19:00:24.762368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:33.859654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:37.007926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:39.897769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:42.942322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:22.281415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:34.487702Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:35.618441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:37.608854Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:38.423692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:43.325171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:44.635564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:45.829351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:47.566583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:50.495459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:02.758077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:05.639442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:20.806652Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:26.822902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:29.836228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:38.912980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:59.720424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:02:59.781165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:03.524624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:03:06.546298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:03:10.484878Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:12.021174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:12.881960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:03:15.840626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:03:16.930320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:17.004444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:29.126718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:29.294389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:31.141758Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:31.235461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:33.732408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:03:35.376128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:35.474160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:46.409563Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames
2026-05-07T19:03:47.459920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.8MB → 0.4MB (7.3x), 13 JPEGs deleted
2026-05-07T19:03:47.478596Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:47.685688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:48.638329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.4MB → 0.9MB (2.7x), 11 JPEGs deleted
2026-05-07T19:04:08.116536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:08.325939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:09.048145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:09.143715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:10.071599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:10.251285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:23.971234Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:32.733221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:32.860501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:51.720920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:51.887707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:52.428290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:52.672954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:13.345560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:13.435702Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:13.955499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:14.123752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:16.832581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:16.921333Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:20.424048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:20.639049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T19:05:24.585422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:24.763680Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:25.722186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:26.037507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:27.058882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:51.616832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:06:27.553495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:06:49.097515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:06:58.139828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:07:00.501236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:07:22.494893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:07:25.541755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:08:48.672330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames
2026-05-07T19:08:49.959722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.3MB → 0.4MB (10.2x), 20 JPEGs deleted
2026-05-07T19:08:52.053246Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.5MB → 2.0MB (2.7x), 27 JPEGs deleted
2026-05-07T19:09:24.524329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:09:24.612542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:09:56.724979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:10:01.650171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:01.826705Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:02.894140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:10:05.771983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:10:05.962915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:08.265782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:08.415849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:21.827601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:21.956116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T19:10:32.051747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:32.141992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:32.911018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:33.089188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:49.381195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:49.555111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:50.328077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:55.206906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:55.325017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:57.111987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:58.935835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:11:00.791235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:11:00.892227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:11:04.654271Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:11:09.783149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:11:10.922882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=visual_change)
2026-05-07T19:11:28.192704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:29.083215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:29.270039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:33.962918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:34.153653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:42.021041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:43.349693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:43.448166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:53.540965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2382966049842329946, trigger=visual_change)
2026-05-07T19:11:56.520852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2382966049842329946, trigger=visual_change)
2026-05-07T19:11:57.583112Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2382966049842329946, trigger=click)
2026-05-07T19:11:57.675537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2382966049842329946, trigger=click)
2026-05-07T19:12:09.016494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:09.193611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:09.920554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:10.162751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:17.749896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:19.865640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:20.037736Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:21.229308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:25.708397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:25.890046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:28.386069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:28.459158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:29.987752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:31.002923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:31.055807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:33.107450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:36.037286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:36.207370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:39.110854Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:39.184943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:42.211049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:13:52.073799Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-05-07T19:13:53.640097Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.4MB → 0.5MB (11.6x), 25 JPEGs deleted
2026-05-07T19:13:56.148303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.9MB → 2.1MB (2.4x), 25 JPEGs deleted
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T19:15:32.114719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:15:32.277006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:15:34.023332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:15:34.221489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:15:35.156276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:15:41.068772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:15:44.092868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:18:56.195685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-05-07T19:18:57.138533Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.0MB → 0.4MB (7.3x), 14 JPEGs deleted
2026-05-07T19:18:58.608172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.4MB → 1.3MB (2.6x), 18 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T19:22:06.254072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:22:06.376479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:22:07.042289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:23:58.623977Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: f...
|
iTerm2
|
screenpipe"
|
NULL
|
6418
|
|
6419
|
2026-05-07T18:54:55.497046Z INFO screenpipe_engin 2026-05-07T18:54:55.497046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8698828128144406184, trigger=click)
2026-05-07T18:54:56.231994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8698828128144406184, trigger=click)
2026-05-07T18:54:56.390410Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8698828128144406184, trigger=click)
2026-05-07T18:55:06.295831Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:07.396377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:55:09.839989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:10.048912Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:10.804975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:11.059957Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:13.429679Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:13.659109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T18:55:23.935445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:24.058698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:25.178955Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:25.277855Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:28.129525Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:28.220403Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:29.968445Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:30.091636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:30.772215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:30.971040Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:32.549943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:55:32.978942Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:35.570244Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:47.355478Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:51.021248Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:51.071082Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:51.861594Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:55:53.391510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:53.458575Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:54.852127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:55:55.741088Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:55.784717Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:55:59.855145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:00.061907Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:03.871033Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:04.045971Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:06.982604Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:09.887383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:10.072147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:56:12.860759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:13.008559Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:13.689350Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:13.888636Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:16.676147Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:16.858123Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:19.730668Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:56:21.116711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:22.863392Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=visual_change)
2026-05-07T18:56:25.857382Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:25.944869Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:27.736339Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:27.968277Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7191546387729565793, trigger=click)
2026-05-07T18:56:34.697492Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:35.493000Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=visual_change)
2026-05-07T18:56:35.997405Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:36.243674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:38.035501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:38.253420Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:40.873703Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:45.521180Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:48.170505Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=visual_change)
2026-05-07T18:56:50.281026Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:50.469078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:51.106211Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:56:51.210447Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:57:22.940226Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=visual_change)
2026-05-07T18:57:24.886659Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:24.943247Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:27.711432Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:27.778020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:29.024539Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=visual_change)
2026-05-07T18:57:39.958516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:40.017451Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:40.803199Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:40.851828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9060737059899569463, trigger=click)
2026-05-07T18:57:44.583381Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9060737059899569463, trigger=visual_change)
2026-05-07T18:57:53.646842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=visual_change)
2026-05-07T18:57:59.683165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=visual_change)
2026-05-07T18:58:01.681512Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:01.846528Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:05.296271Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:05.439879Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:08.063837Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:08.294769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5104323009125083167, trigger=click)
2026-05-07T18:58:12.234562Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=visual_change)
2026-05-07T18:58:15.252484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=visual_change)
2026-05-07T18:58:19.561623Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:19.616652Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:23.527237Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:23.877910Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:27.554625Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:27.753207Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:33.910173Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:34.138517Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:34.809937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:35.056953Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:35.346155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:37.352776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:37.504554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:37.976103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:38.680653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:38.763338Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2148254964752043084, trigger=click)
2026-05-07T18:58:43.792492Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-07T18:58:44.847366Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.8MB → 0.4MB (7.1x), 13 JPEGs deleted
2026-05-07T18:58:46.331780Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.7MB → 0.9MB (3.1x), 13 JPEGs deleted
2026-05-07T18:58:48.678585Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:48.746019Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:49.493557Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:49.753975Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:51.506759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:58:51.562677Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7711496428252417823, trigger=click)
2026-05-07T18:59:02.164937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:59:02.359714Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:59:07.935656Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4196246356071550057, trigger=click)
2026-05-07T18:59:20.555025Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:20.730118Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:21.230889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:21.423662Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:24.957602Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:25.034890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:30.508120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:36.354586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T18:59:41.219685Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T18:59:45.536516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T18:59:54.454983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T18:59:57.496471Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:03.563631Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:13.988490Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:00:20.601584Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T19:00:24.762368Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:33.859654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:37.007926Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:39.897769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:00:42.942322Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:22.281415Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:34.487702Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:35.618441Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:37.608854Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:38.423692Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:43.325171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:44.635564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:45.829351Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:01:47.566583Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:01:50.495459Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:02.758077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:05.639442Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:20.806652Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:26.822902Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:29.836228Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:38.912980Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:02:59.720424Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:02:59.781165Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:03.524624Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:03:06.546298Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:03:10.484878Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:12.021174Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:12.881960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:03:15.840626Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=visual_change)
2026-05-07T19:03:16.930320Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:17.004444Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7035948308583544848, trigger=click)
2026-05-07T19:03:29.126718Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:29.294389Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:31.141758Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:31.235461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:33.732408Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:03:35.376128Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:35.474160Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:46.409563Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 26 eligible frames
2026-05-07T19:03:47.459920Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.8MB → 0.4MB (7.3x), 13 JPEGs deleted
2026-05-07T19:03:47.478596Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:47.685688Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:03:48.638329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.4MB → 0.9MB (2.7x), 11 JPEGs deleted
2026-05-07T19:04:08.116536Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:08.325939Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:09.048145Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:09.143715Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:10.071599Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:10.251285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:23.971234Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:32.733221Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:32.860501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:51.720920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:51.887707Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:52.428290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:04:52.672954Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:13.345560Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:13.435702Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:13.955499Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:14.123752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:16.832581Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:16.921333Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:20.424048Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:20.639049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T19:05:24.585422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:24.763680Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:25.722186Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:26.037507Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:27.058882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2699748236748479093, trigger=click)
2026-05-07T19:05:51.616832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:06:27.553495Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:06:49.097515Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:06:58.139828Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=visual_change)
2026-05-07T19:07:00.501236Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2699748236748479093, trigger=click)
2026-05-07T19:07:22.494893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:07:25.541755Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:08:48.672330Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 49 eligible frames
2026-05-07T19:08:49.959722Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 4.3MB → 0.4MB (10.2x), 20 JPEGs deleted
2026-05-07T19:08:52.053246Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 5.5MB → 2.0MB (2.7x), 27 JPEGs deleted
2026-05-07T19:09:24.524329Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:09:24.612542Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:09:56.724979Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:10:01.650171Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:01.826705Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:02.894140Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:10:05.771983Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:10:05.962915Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:08.265782Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:08.415849Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:21.827601Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:21.956116Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-07T19:10:32.051747Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:32.141992Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:32.911018Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:33.089188Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:49.381195Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:49.555111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:50.328077Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:55.206906Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:55.325017Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:57.111987Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:10:58.935835Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:11:00.791235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=click)
2026-05-07T19:11:00.892227Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:11:04.654271Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=5572763082875861589, trigger=visual_change)
2026-05-07T19:11:09.783149Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=5572763082875861589, trigger=click)
2026-05-07T19:11:10.922882Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=visual_change)
2026-05-07T19:11:28.192704Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:29.083215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:29.270039Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:33.962918Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:34.153653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:42.021041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:43.349693Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:43.448166Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:11:53.540965Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2382966049842329946, trigger=visual_change)
2026-05-07T19:11:56.520852Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2382966049842329946, trigger=visual_change)
2026-05-07T19:11:57.583112Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2382966049842329946, trigger=click)
2026-05-07T19:11:57.675537Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2382966049842329946, trigger=click)
2026-05-07T19:12:09.016494Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:09.193611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:09.920554Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:10.162751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:17.749896Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:19.865640Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:20.037736Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:21.229308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:25.708397Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:25.890046Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:28.386069Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:28.459158Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:29.987752Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:31.002923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:31.055807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:33.107450Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:36.037286Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:36.207370Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:39.110854Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:12:39.184943Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:12:42.211049Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:13:52.073799Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 52 eligible frames
2026-05-07T19:13:53.640097Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.4MB → 0.5MB (11.6x), 25 JPEGs deleted
2026-05-07T19:13:56.148303Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.9MB → 2.1MB (2.4x), 25 JPEGs deleted
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-07T19:15:32.114719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:15:32.277006Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:15:34.023332Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:15:34.221489Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:15:35.156276Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:15:41.068772Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:15:44.092868Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:18:56.195685Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 34 eligible frames
2026-05-07T19:18:57.138533Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 3.0MB → 0.4MB (7.3x), 14 JPEGs deleted
2026-05-07T19:18:58.608172Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.4MB → 1.3MB (2.6x), 18 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-07T19:22:06.254072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:22:06.376479Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9059054231720352226, trigger=click)
2026-05-07T19:22:07.042289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-9059054231720352226, trigger=visual_change)
2026-05-07T19:23:58.623977Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 27 eligible frames
2026-05-07T19:23:59.596007Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.4MB → 0.4MB (6.1x), 11 JPEGs deleted
2026-05-07T19:24:00.891142Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 14 frames, 2.7MB → 1.1MB (2.5x), 14 JPEGs deleted
2026-05-07T19:24:36.746388Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:24:42.261437Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=visual_change)
2026-05-07T19:25:14.335824Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:25:14.501546Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:25:18.608719Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=visual_change)
2026-05-07T19:25:21.337705Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:25:21.444990Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-07T19:25:24.322060Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:25:24.497521Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:25:29.631670Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:25:29.804593Z INFO screenpipe_engine::event_driven_capture: content de...
|
iTerm2
|
screenpipe"
|
NULL
|
6419
|
|
7081
|
2026-05-07T19:49:57.586646Z INFO screenpipe_engin 2026-05-07T19:49:57.586646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:49:58.160394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:49:58.333248Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:50:00.653111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:50:00.788775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:50:01.757003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:50:01.850289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:50:09.824461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
[URL_WITH_CREDENTIALS] record --disable-audio --ignored-windows "Boosteroid"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-08T09:25:44.404966Z INFO screenpipe_eng...
|
iTerm2
|
screenpipe"
|
NULL
|
7081
|
|
7082
|
2026-05-07T19:49:57.586646Z INFO screenpipe_engin 2026-05-07T19:49:57.586646Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:49:58.160394Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:49:58.333248Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:50:00.653111Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:50:00.788775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:50:01.757003Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:50:01.850289Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5837861084334909305, trigger=click)
2026-05-07T19:50:09.824461Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5837861084334909305, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
[URL_WITH_CREDENTIALS] record --disable-audio --ignored-windows "Boosteroid"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-start
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-08T09:25:44.404966Z INFO screenpipe_eng...
|
iTerm2
|
screenpipe"
|
NULL
|
7082
|
|
11286
|
2026-05-08T14:49:49.609203Z INFO screenpipe_engin 2026-05-08T14:49:49.609203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:49:51.287547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:49:51.557553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:49:55.546127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:49:55.830946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:50:11.090897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:50:13.680564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:50:13.969205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:50:29.154934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:50:29.451120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-08T14:50:50.675988Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6568111742294861171, trigger=visual_change)
2026-05-08T14:50:57.102479Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-05-08T14:50:58.101629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (5.7x), 10 JPEGs deleted
2026-05-08T14:50:59.015018Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.1x), 10 JPEGs deleted
2026-05-08T14:53:00.535112Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:53:04.007595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:53:25.851015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:26.274372Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:28.930434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:29.328010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:35.132260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:40.381529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4964913726732674038, trigger=visual_change)
2026-05-08T14:53:42.076555Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4964913726732674038, trigger=click)
2026-05-08T14:53:45.544994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:46.046519Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:47.264720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:47.561308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:48.382184Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:48.743407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:51.379962Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:51.654508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:54:47.348653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:54:47.723203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T14:54:50.180917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:54:50.478730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T14:54:58.451377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:55:09.318848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:55:10.862529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T14:55:18.507785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:55:18.871963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-08T14:55:51.534743Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:55:52.200509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T14:55:59.058321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 39 eligible frames
2026-05-08T14:55:59.519280Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T14:55:59.767634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:56:00.305068Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.5MB → 0.5MB (6.6x), 19 JPEGs deleted
2026-05-08T14:56:02.739515Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.6MB (1.9x), 18 JPEGs deleted
2026-05-08T14:56:05.706811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T14:56:06.087359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:59:19.019164Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=27295377687985724, trigger=click)
2026-05-08T14:59:56.592361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-154998861094468201, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-08T15:01:02.825868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames
2026-05-08T15:01:05.085725Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.5MB → 0.3MB (16.6x), 27 JPEGs deleted
2026-05-08T15:01:10.221435Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.4MB → 3.2MB (1.7x), 32 JPEGs deleted
2026-05-08T15:01:13.754698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T15:01:15.582103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T15:01:16.298764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T15:01:19.894102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T15:01:20.257936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T15:04:19.651821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=visual_change)
2026-05-08T15:04:50.911238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6411243940170843070, trigger=click)
2026-05-08T15:05:11.224935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6411243940170843070, trigger=click)
2026-05-08T15:05:14.480611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6411243940170843070, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-08T15:05:51.329864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6411243940170843070, trigger=click)
2026-05-08T15:05:51.814746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6411243940170843070, trigger=click)
2026-05-08T15:06:10.960059Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-05-08T15:06:12.742702Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.8MB → 0.3MB (17.8x), 29 JPEGs deleted
2026-05-08T15:06:18.913714Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 51 frames, 9.2MB → 3.5MB (2.6x), 51 JPEGs deleted
2026-05-08T15:06:40.139020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6411243940170843070, trigger=click)
2026-05-08T15:06:40.573412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6411243940170843070, trigger=visual_change)
2026-05-08T15:06:44.995997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6411243940170843070, trigger=visual_change)
2026-05-08T15:07:12.301549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:07:15.768168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:07:16.206362Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:07:22.997889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:07:23.588534Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:07:35.901520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
2026-05-08T15:09:04.603476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=visual_change)
2026-05-08T15:09:22.666605Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
2026-05-08T15:09:30.864866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=visual_change)
2026-05-08T15:09:36.340393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:10:01.344041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:05.437030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:06.082416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:14.973217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:15.388666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:25.321155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:30.009832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:30.715271Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:33.510944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:34.995072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=visual_change)
2026-05-08T15:10:44.007798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-08T15:10:47.692285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:11:03.600937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:11:03.923842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:11:14.535215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=visual_change)
2026-05-08T15:11:18.968690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 81 eligible frames
2026-05-08T15:11:21.245943Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.4MB → 0.3MB (19.3x), 32 JPEGs deleted
2026-05-08T15:11:24.797216Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.7MB → 2.5MB (3.1x), 47 JPEGs deleted
2026-05-08T15:11:29.035259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=visual_change)
2026-05-08T15:11:38.791725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:11:46.373759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:11:46.723534Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:11:48.539920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:11:50.779663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:11:54.217278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:11:54.785319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:12:28.499667Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:12:32.042864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:12:32.416014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:12:33.786065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:12:34.078607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:12:41.649510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:12:45.998721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:12:50.340079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:12:52.894661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
2026-05-08T15:12:54.096986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:13:54.312751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
2026-05-08T15:13:54.631514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:13:55.724081Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
2026-05-08T15:14:03.366654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
2026-05-08T15:14:03.732487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:14:39.125293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:14:39.453413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-08T15:15:49.579257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=visual_change)
2026-05-08T15:16:25.481662Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-08T15:16:26.679836Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.2MB → 0.3MB (8.3x), 13 JPEGs deleted
2026-05-08T15:16:28.026867Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.6MB → 1.1MB (2.4x), 13 JPEGs deleted
2026-05-08T15:16:49.695422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=visual_change)
2026-05-08T15:18:05.495401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=visual_change)
2026-05-08T15:18:09.524793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=visual_change)
2026-05-08T15:18:11.120775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
2026-05-08T15:18:11.512222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:18:25.856463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:18:31.463769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:18:31.806210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:18:35.550613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:18:36.021949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:18:52.944742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:18:55.234377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:18:56.183217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:18:56.628057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:19:02.717919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:19:03.273484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:19:09.163092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:19:20.565501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:19:23.767875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:19:24.123343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-08T15:21:28.072608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-05-08T15:21:29.266572Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 0.3MB (10.0x), 16 JPEGs deleted
2026-05-08T15:21:31.472410Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.6MB (2.7x), 22 JPEGs deleted
2026-05-08T15:22:52.709303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=visual_change)
2026-05-08T15:25:20.060798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:25:20.490741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-08T15:26:06.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:26:06.580582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:26:31.634810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames
2026-05-08T15:26:32.874346Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.8MB → 0.3MB (7.1x), 11 JPEGs deleted
2026-05-08T15:26:34.255745Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.1MB (3.1x), 17 JPEGs deleted
2026-05-08T15:28:57.479854Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:28:57.740078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:29:12.434923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:29:16.829366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:29:18.361423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-08T15:31:34.666329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-05-08T15:31:35.482851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.0MB → 0.3MB (7.8x), 12 JPEGs deleted
2026-05-08T15:31:36.499873Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.1MB → 0.8MB (2.7x), 11 JPEGs deleted
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-08T15:36:36.551444Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 19 eligible frames
2026-05-08T15:36:37.612979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.5MB → 0.3MB (5.9x), 9 JPEGs deleted
2026-05-08T15:36:38.760326Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.5MB → 0.6MB (2.5x), 8 JPEGs deleted
2026-05-08T15:37:22.494625Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4119376164685342865, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-08T15:41:39.244050Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-05-08T15:41:40.346639Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.8MB → 0.3MB (11.0x), 17 JPEGs deleted
2026-05-08T15:41:42.541286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.6MB → 1.6MB (2.9x), 23 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-08T15:46:42.586234Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-08T15:46:43.667243Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.8MB → 0.3MB (11.0x), 17 JPEGs deleted
2026-05-08T15:46:45.513967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.2MB → 1.4MB (3.0x), 18 JPEGs deleted
2026-05-08T15:49:24.237883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9018317124388068051, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-08T15:51:22.732177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8556037216162659581, trigger=click)
2026-05-08T15:51:45.899593Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-05-08T15:51:48.027425Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.3MB → 0.3MB (12.9x), 20 JPEGs deleted
2026-05-08T15:51:50.132411Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.9MB → 2.5MB (2.4x), 25 JPEGs deleted
2026-05-08T15:53:41.459790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8556037216162659581, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-08T15:56:50.195138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames
2026-05-08T15:56:51.634851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.8MB → 0.3MB (14.8x), 23 JPEGs deleted
2026-05-08T15:56:56.124421Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 11.2MB → 4.4MB (2.6x), 48 JPEGs deleted
2026-05-08T15:58:27.339768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1171067077588819235, trigger=visual_change)
2026-05-08T15:59:41.630726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7077191483816511649, trigger=click)
2026-05-08T16:00:03.491890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2844556328214808905, trigger=click)
2026-05-08T16:00:03.888204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2844556328214808905, trigger=click)
2026-05-08T16:00:07.331711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2844556328214808905, trigger=click)
2026-05-08T16:00:07.606440Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2844556328214808905, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-08T16:01:08.594472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4735302521368238568, trigger=click)
2026-05-08T16:01:26.096380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4735302521368238568, trigger=click)
2026-05-08T16:01:26.307893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4735302521368238568, trigger=click)
2026-05-08T16:01:56.162848Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-05-08T16:01:57.213444Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 0.3MB (10.2x), 16 JPEGs deleted
2026-05-08T16:01:59.474097Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 2.2MB (2.0x), 24 JPEGs deleted
2026-05-08T16:02:11.425283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7474424011896884832, trigger=visual_change)
2026-05-08T16:02:14.495109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7474424011896884832, trigger=visual_change)
2026-05-08T16:04:46.888847Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T16:04:47.314661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T16:04:49.756313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=visual_change)
2026-05-08T16:04:50.031875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T16:04:55.822235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T16:04:56.179808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-08T16:06:16.151596Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2442208489262293543, trigger=visual_change)
2026-05-08T16:06:19.268137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2442208489262293543, trigger=visual_change)
2026-05-08T16:07:00.029126Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-05-08T16:07:02.230868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.2MB → 0.3MB (12.2x), 19 JPEGs deleted
2026-05-08T16:07:05.301512Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.2MB → 2.2MB (2.3x), 26 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-08T16:12:05.323575Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 55 eligible frames
2026-05-08T16:12:07.015283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.2MB → 0.3MB (12.3x), 19 JPEGs deleted
2026-05-08T16:12:10.047850Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.4MB → 3.1MB (2.1x), 34 JPEGs deleted
2026-05-08T16:13:48.549264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8766830520303135925, trigger=visual_change)
2026-05-08T16:13:51.522434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8766830520303135925, trigger=visual_change)
2026-05-08T16:14:40.081579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:14:42.538572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:14:44.967369Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:14:45.257318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-08T16:16:36.354333Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1628486266948283197, trigger=visual_change)
2026-05-08T16:16:50.996934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1167165465775525926, trigger=click)
2026-05-08T16:16:54.279300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1167165465775525926, trigger=click)
2026-05-08T16:16:55.851229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1167165465775525926, trigger=visual_change)
2026-05-08T16:16:58.905093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1167165465775525926, trigger=click)
2026-05-08T16:17:10.520039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames
2026-05-08T16:17:14.585574Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 1.1MB (3.4x), 22 JPEGs deleted
2026-05-08T16:17:20.865438Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.8MB → 2.6MB (1.9x), 24 JPEGs deleted
2026-05-08T16:18:00.061735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:18:00.521894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:18:07.812674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:18:08.597501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-08T16:21:52.302107Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:22:21.483331Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-05-08T16:22:23.504019Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.8MB → 0.4MB (7.3x), 17 JPEGs deleted
2026-05-08T16:22:27.609680Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.5MB → 2.0MB (2.2x), 25 JPEGs deleted
2026-05-08T16:22:44.760229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:22:58.309314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:23:23.278358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:23:28.711448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:23:31.606725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:24:47.675344Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7579307838644216966, trigger=click)
2026-05-08T16:24:47.969319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7579307838644216966, trigger=visual_change)
2026-05-08T16:24:52.596757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7579307838644216966, trigger=click)
2026-05-08T16:25:10.506206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8710375623998314330, trigger=click)
2026-05-08T16:25:10.844330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8710375623998314330, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-08T16:26:00.024658Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7579307838644216966, trigger=click)
2026-05-08T16:26:01.075501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7579307838644216966, trigger=click)
2026-05-08T16:27:27.743597Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 76 eligible frames
2026-05-08T16:27:29.347787Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.3MB → 0.3MB (16.4x), 26 JPEGs deleted
2026-05-08T16:27:33.917512Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 9.1MB → 3.8MB (2.4x), 48 JPEGs deleted
2026-05-08T16:28:35.614068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:28:38.078614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:28:52.218743Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:28:58.626947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:29:30.541172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:29:45.788732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:29:51.148742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:30:06.437139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:30:16.208028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:30:27.080114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:30:30.643366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:30:34.280383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:30:34.765290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:30:37.103183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-08T16:31:41.123665Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:31:46.284285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:31:49.513105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:31:51.541319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:32:27.796318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:32:34.687689Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames
2026-05-08T16:32:35.458896Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.6x), 10 JPEGs deleted
2026-05-08T16:32:36.622164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.1MB → 0.6MB (3.4x), 12 JPEGs deleted
2026-05-08T16:32:41.290383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:32:45.046681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:32:46.436402Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:32:47.862586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:32:48.312606Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:32:49.821556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:33:00.702282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:33:05.923516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:33:06.342559Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:33:43.909404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:34:29.466807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3175715562603377888, trigger=visual_change)
2026-05-08T16:34:41.161989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6337657672782761712, trigger=click)
2026-05-08T16:34:42.969057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3175715562603377888, trigger=click)
2026-05-08T16:35:16.301466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2435399166852945830, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-08T16:36:08.902473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8710375623998314330, trigger=click)
2026-05-08T16:36:09.349960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8710375623998314330, trigger=click)
2026-05-08T16:36:39.712526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2435399166852945830, trigger=visual_change)
2026-05-08T16:36:42.078776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2435399166852945830, trigger=visual_change)
2026-05-08T16:36:49.043460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2435399166852945830, trigger=visual_change)
2026-05-08T16:36:58.316674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2435399166852945830, trigger=click)
2026-05-08T16:37:37.528078Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-05-08T16:37:38.928637Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 0.3MB (9.9x), 15 JPEGs deleted
2026-05-08T16:37:42.138895Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 2.0MB (2.1x), 21 JPEGs deleted
2026-05-08T16:38:05.259643Z INFO screenpipe_...
|
iTerm2
|
screenpipe"
|
NULL
|
11286
|
|
11287
|
2026-05-08T14:49:49.609203Z INFO screenpipe_engin 2026-05-08T14:49:49.609203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:49:51.287547Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:49:51.557553Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:49:55.546127Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:49:55.830946Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:50:11.090897Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:50:13.680564Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:50:13.969205Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:50:29.154934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:50:29.451120Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-08T14:50:50.675988Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-6568111742294861171, trigger=visual_change)
2026-05-08T14:50:57.102479Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-05-08T14:50:58.101629Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (5.7x), 10 JPEGs deleted
2026-05-08T14:50:59.015018Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.0MB → 0.3MB (6.1x), 10 JPEGs deleted
2026-05-08T14:53:00.535112Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:53:04.007595Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T14:53:25.851015Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:26.274372Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:28.930434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:29.328010Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:35.132260Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:40.381529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4964913726732674038, trigger=visual_change)
2026-05-08T14:53:42.076555Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4964913726732674038, trigger=click)
2026-05-08T14:53:45.544994Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:46.046519Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:47.264720Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:47.561308Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:48.382184Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:48.743407Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:51.379962Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:53:51.654508Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4751605852753609546, trigger=click)
2026-05-08T14:54:47.348653Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:54:47.723203Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T14:54:50.180917Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:54:50.478730Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T14:54:58.451377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:55:09.318848Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:55:10.862529Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T14:55:18.507785Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:55:18.871963Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-08T14:55:51.534743Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:55:52.200509Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T14:55:59.058321Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 39 eligible frames
2026-05-08T14:55:59.519280Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T14:55:59.767634Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:56:00.305068Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.5MB → 0.5MB (6.6x), 19 JPEGs deleted
2026-05-08T14:56:02.739515Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 3.0MB → 1.6MB (1.9x), 18 JPEGs deleted
2026-05-08T14:56:05.706811Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T14:56:06.087359Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T14:59:19.019164Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=27295377687985724, trigger=click)
2026-05-08T14:59:56.592361Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-154998861094468201, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-08T15:01:02.825868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 61 eligible frames
2026-05-08T15:01:05.085725Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 27 frames, 4.5MB → 0.3MB (16.6x), 27 JPEGs deleted
2026-05-08T15:01:10.221435Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.4MB → 3.2MB (1.7x), 32 JPEGs deleted
2026-05-08T15:01:13.754698Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T15:01:15.582103Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T15:01:16.298764Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T15:01:19.894102Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=click)
2026-05-08T15:01:20.257936Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7945320295140438625, trigger=click)
2026-05-08T15:04:19.651821Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7945320295140438625, trigger=visual_change)
2026-05-08T15:04:50.911238Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6411243940170843070, trigger=click)
2026-05-08T15:05:11.224935Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6411243940170843070, trigger=click)
2026-05-08T15:05:14.480611Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6411243940170843070, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-08T15:05:51.329864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6411243940170843070, trigger=click)
2026-05-08T15:05:51.814746Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6411243940170843070, trigger=click)
2026-05-08T15:06:10.960059Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 82 eligible frames
2026-05-08T15:06:12.742702Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 29 frames, 4.8MB → 0.3MB (17.8x), 29 JPEGs deleted
2026-05-08T15:06:18.913714Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 51 frames, 9.2MB → 3.5MB (2.6x), 51 JPEGs deleted
2026-05-08T15:06:40.139020Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=6411243940170843070, trigger=click)
2026-05-08T15:06:40.573412Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6411243940170843070, trigger=visual_change)
2026-05-08T15:06:44.995997Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6411243940170843070, trigger=visual_change)
2026-05-08T15:07:12.301549Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:07:15.768168Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:07:16.206362Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:07:22.997889Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:07:23.588534Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:07:35.901520Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
2026-05-08T15:09:04.603476Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=visual_change)
2026-05-08T15:09:22.666605Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
2026-05-08T15:09:30.864866Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=visual_change)
2026-05-08T15:09:36.340393Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:10:01.344041Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:05.437030Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:06.082416Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:14.973217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:15.388666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:25.321155Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:30.009832Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:30.715271Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:33.510944Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:10:34.995072Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=visual_change)
2026-05-08T15:10:44.007798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-08T15:10:47.692285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:11:03.600937Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:11:03.923842Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:11:14.535215Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=visual_change)
2026-05-08T15:11:18.968690Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 81 eligible frames
2026-05-08T15:11:21.245943Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 32 frames, 5.4MB → 0.3MB (19.3x), 32 JPEGs deleted
2026-05-08T15:11:24.797216Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 47 frames, 7.7MB → 2.5MB (3.1x), 47 JPEGs deleted
2026-05-08T15:11:29.035259Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=visual_change)
2026-05-08T15:11:38.791725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:11:46.373759Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:11:46.723534Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:11:48.539920Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:11:50.779663Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:11:54.217278Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:11:54.785319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:12:28.499667Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:12:32.042864Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:12:32.416014Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:12:33.786065Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4389898466722807821, trigger=click)
2026-05-08T15:12:34.078607Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4389898466722807821, trigger=click)
2026-05-08T15:12:41.649510Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:12:45.998721Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:12:50.340079Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:12:52.894661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
2026-05-08T15:12:54.096986Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:13:54.312751Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
2026-05-08T15:13:54.631514Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:13:55.724081Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
2026-05-08T15:14:03.366654Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
2026-05-08T15:14:03.732487Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:14:39.125293Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:14:39.453413Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-08T15:15:49.579257Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=visual_change)
2026-05-08T15:16:25.481662Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 28 eligible frames
2026-05-08T15:16:26.679836Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.2MB → 0.3MB (8.3x), 13 JPEGs deleted
2026-05-08T15:16:28.026867Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 13 frames, 2.6MB → 1.1MB (2.4x), 13 JPEGs deleted
2026-05-08T15:16:49.695422Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=visual_change)
2026-05-08T15:18:05.495401Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=visual_change)
2026-05-08T15:18:09.524793Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=visual_change)
2026-05-08T15:18:11.120775Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=920666202760937713, trigger=click)
2026-05-08T15:18:11.512222Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=920666202760937713, trigger=click)
2026-05-08T15:18:25.856463Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:18:31.463769Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:18:31.806210Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:18:35.550613Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:18:36.021949Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-4787811015421350360, trigger=click)
2026-05-08T15:18:52.944742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:18:55.234377Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:18:56.183217Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:18:56.628057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:19:02.717919Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:19:03.273484Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:19:09.163092Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:19:20.565501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:19:23.767875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:19:24.123343Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-08T15:21:28.072608Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 40 eligible frames
2026-05-08T15:21:29.266572Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 0.3MB (10.0x), 16 JPEGs deleted
2026-05-08T15:21:31.472410Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 4.4MB → 1.6MB (2.7x), 22 JPEGs deleted
2026-05-08T15:22:52.709303Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=visual_change)
2026-05-08T15:25:20.060798Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:25:20.490741Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-08T15:26:06.244666Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:26:06.580582Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:26:31.634810Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 30 eligible frames
2026-05-08T15:26:32.874346Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 1.8MB → 0.3MB (7.1x), 11 JPEGs deleted
2026-05-08T15:26:34.255745Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 3.4MB → 1.1MB (3.1x), 17 JPEGs deleted
2026-05-08T15:28:57.479854Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:28:57.740078Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:29:12.434923Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:29:16.829366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T15:29:18.361423Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-08T15:31:34.666329Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 25 eligible frames
2026-05-08T15:31:35.482851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.0MB → 0.3MB (7.8x), 12 JPEGs deleted
2026-05-08T15:31:36.499873Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 11 frames, 2.1MB → 0.8MB (2.7x), 11 JPEGs deleted
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-08T15:36:36.551444Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 19 eligible frames
2026-05-08T15:36:37.612979Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 9 frames, 1.5MB → 0.3MB (5.9x), 9 JPEGs deleted
2026-05-08T15:36:38.760326Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.5MB → 0.6MB (2.5x), 8 JPEGs deleted
2026-05-08T15:37:22.494625Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4119376164685342865, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-08T15:41:39.244050Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-05-08T15:41:40.346639Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.8MB → 0.3MB (11.0x), 17 JPEGs deleted
2026-05-08T15:41:42.541286Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 4.6MB → 1.6MB (2.9x), 23 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-08T15:46:42.586234Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 37 eligible frames
2026-05-08T15:46:43.667243Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.8MB → 0.3MB (11.0x), 17 JPEGs deleted
2026-05-08T15:46:45.513967Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 18 frames, 4.2MB → 1.4MB (3.0x), 18 JPEGs deleted
2026-05-08T15:49:24.237883Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-9018317124388068051, trigger=click)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-08T15:51:22.732177Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=8556037216162659581, trigger=click)
2026-05-08T15:51:45.899593Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-05-08T15:51:48.027425Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 20 frames, 3.3MB → 0.3MB (12.9x), 20 JPEGs deleted
2026-05-08T15:51:50.132411Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 5.9MB → 2.5MB (2.4x), 25 JPEGs deleted
2026-05-08T15:53:41.459790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=8556037216162659581, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-08T15:56:50.195138Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 73 eligible frames
2026-05-08T15:56:51.634851Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 23 frames, 3.8MB → 0.3MB (14.8x), 23 JPEGs deleted
2026-05-08T15:56:56.124421Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 11.2MB → 4.4MB (2.6x), 48 JPEGs deleted
2026-05-08T15:58:27.339768Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1171067077588819235, trigger=visual_change)
2026-05-08T15:59:41.630726Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7077191483816511649, trigger=click)
2026-05-08T16:00:03.491890Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2844556328214808905, trigger=click)
2026-05-08T16:00:03.888204Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2844556328214808905, trigger=click)
2026-05-08T16:00:07.331711Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2844556328214808905, trigger=click)
2026-05-08T16:00:07.606440Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2844556328214808905, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-08T16:01:08.594472Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4735302521368238568, trigger=click)
2026-05-08T16:01:26.096380Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=4735302521368238568, trigger=click)
2026-05-08T16:01:26.307893Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4735302521368238568, trigger=click)
2026-05-08T16:01:56.162848Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 42 eligible frames
2026-05-08T16:01:57.213444Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 16 frames, 2.7MB → 0.3MB (10.2x), 16 JPEGs deleted
2026-05-08T16:01:59.474097Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.4MB → 2.2MB (2.0x), 24 JPEGs deleted
2026-05-08T16:02:11.425283Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7474424011896884832, trigger=visual_change)
2026-05-08T16:02:14.495109Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7474424011896884832, trigger=visual_change)
2026-05-08T16:04:46.888847Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T16:04:47.314661Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T16:04:49.756313Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=visual_change)
2026-05-08T16:04:50.031875Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
2026-05-08T16:04:55.822235Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-7263191621832440318, trigger=click)
2026-05-08T16:04:56.179808Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-7263191621832440318, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-08T16:06:16.151596Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2442208489262293543, trigger=visual_change)
2026-05-08T16:06:19.268137Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2442208489262293543, trigger=visual_change)
2026-05-08T16:07:00.029126Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 47 eligible frames
2026-05-08T16:07:02.230868Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.2MB → 0.3MB (12.2x), 19 JPEGs deleted
2026-05-08T16:07:05.301512Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 5.2MB → 2.2MB (2.3x), 26 JPEGs deleted
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-08T16:12:05.323575Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 55 eligible frames
2026-05-08T16:12:07.015283Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 19 frames, 3.2MB → 0.3MB (12.3x), 19 JPEGs deleted
2026-05-08T16:12:10.047850Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 34 frames, 6.4MB → 3.1MB (2.1x), 34 JPEGs deleted
2026-05-08T16:13:48.549264Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8766830520303135925, trigger=visual_change)
2026-05-08T16:13:51.522434Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8766830520303135925, trigger=visual_change)
2026-05-08T16:14:40.081579Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:14:42.538572Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:14:44.967369Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:14:45.257318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-08T16:16:36.354333Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1628486266948283197, trigger=visual_change)
2026-05-08T16:16:50.996934Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1167165465775525926, trigger=click)
2026-05-08T16:16:54.279300Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1167165465775525926, trigger=click)
2026-05-08T16:16:55.851229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=1167165465775525926, trigger=visual_change)
2026-05-08T16:16:58.905093Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=1167165465775525926, trigger=click)
2026-05-08T16:17:10.520039Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 48 eligible frames
2026-05-08T16:17:14.585574Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 22 frames, 3.9MB → 1.1MB (3.4x), 22 JPEGs deleted
2026-05-08T16:17:20.865438Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 24 frames, 4.8MB → 2.6MB (1.9x), 24 JPEGs deleted
2026-05-08T16:18:00.061735Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:18:00.521894Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:18:07.812674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:18:08.597501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-08T16:21:52.302107Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:22:21.483331Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 44 eligible frames
2026-05-08T16:22:23.504019Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 17 frames, 2.8MB → 0.4MB (7.3x), 17 JPEGs deleted
2026-05-08T16:22:27.609680Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 25 frames, 4.5MB → 2.0MB (2.2x), 25 JPEGs deleted
2026-05-08T16:22:44.760229Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:22:58.309314Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:23:23.278358Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:23:28.711448Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:23:31.606725Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:24:47.675344Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7579307838644216966, trigger=click)
2026-05-08T16:24:47.969319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7579307838644216966, trigger=visual_change)
2026-05-08T16:24:52.596757Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7579307838644216966, trigger=click)
2026-05-08T16:25:10.506206Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8710375623998314330, trigger=click)
2026-05-08T16:25:10.844330Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8710375623998314330, trigger=click)
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
2026-05-08T16:26:00.024658Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=7579307838644216966, trigger=click)
2026-05-08T16:26:01.075501Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=7579307838644216966, trigger=click)
2026-05-08T16:27:27.743597Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 76 eligible frames
2026-05-08T16:27:29.347787Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 26 frames, 4.3MB → 0.3MB (16.4x), 26 JPEGs deleted
2026-05-08T16:27:33.917512Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 48 frames, 9.1MB → 3.8MB (2.4x), 48 JPEGs deleted
2026-05-08T16:28:35.614068Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:28:38.078614Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:28:52.218743Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:28:58.626947Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:29:30.541172Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:29:45.788732Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:29:51.148742Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:30:06.437139Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:30:16.208028Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:30:27.080114Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:30:30.643366Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:30:34.280383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:30:34.765290Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:30:37.103183Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-08T16:31:41.123665Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:31:46.284285Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:31:49.513105Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:31:51.541319Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:32:27.796318Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:32:34.687689Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 24 eligible frames
2026-05-08T16:32:35.458896Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.7MB → 0.3MB (6.6x), 10 JPEGs deleted
2026-05-08T16:32:36.622164Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 12 frames, 2.1MB → 0.6MB (3.4x), 12 JPEGs deleted
2026-05-08T16:32:41.290383Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:32:45.046681Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:32:46.436402Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:32:47.862586Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:32:48.312606Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:32:49.821556Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:33:00.702282Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=visual_change)
2026-05-08T16:33:05.923516Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=2045079508751645345, trigger=click)
2026-05-08T16:33:06.342559Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:33:43.909404Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=2045079508751645345, trigger=click)
2026-05-08T16:34:29.466807Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-3175715562603377888, trigger=visual_change)
2026-05-08T16:34:41.161989Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=6337657672782761712, trigger=click)
2026-05-08T16:34:42.969057Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-3175715562603377888, trigger=click)
2026-05-08T16:35:16.301466Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2435399166852945830, trigger=click)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-08T16:36:08.902473Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-8710375623998314330, trigger=click)
2026-05-08T16:36:09.349960Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-8710375623998314330, trigger=click)
2026-05-08T16:36:39.712526Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2435399166852945830, trigger=visual_change)
2026-05-08T16:36:42.078776Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2435399166852945830, trigger=visual_change)
2026-05-08T16:36:49.043460Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-2435399166852945830, trigger=visual_change)
2026-05-08T16:36:58.316674Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-2435399166852945830, trigger=click)
2026-05-08T16:37:37.528078Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 38 eligible frames
2026-05-08T16:37:38.928637Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 15 frames, 2.5MB → 0.3MB (9.9x), 15 JPEGs deleted
2026-05-08T16:37:42.138895Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 21 frames, 4.3MB → 2.0MB (2.1x), 21 JPEGs deleted
2026-05-08T16:38:05.259643Z INFO screenpipe_...
|
iTerm2
|
screenpipe"
|
NULL
|
11287
|
|
14919
|
whisper_backend_init_gpu: found GPU device 0: Meta whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-10T23:27:31.985285Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
2026-05-10T23:27:41.489329Z ERROR screenpipe_audio::core::stream: an error occurred on the audio stream: device disconnected
2026-05-10T23:27:42.161846Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: MacBook Pro Microphone (input)
2026-05-10T23:27:42.163527Z INFO screenpipe_audio::device::device_manager: starting recording for device: MacBook Pro Microphone (input)
2026-05-10T23:27:42.164408Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: MacBook Pro Microphone (input)
2026-05-10T23:27:42.164471Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for MacBook Pro Microphone (input) (wired / 30s segments)
2026-05-10T23:27:42.164492Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for MacBook Pro Microphone (input)
2026-05-10T23:27:42.881174Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for soundcore AeroClip (input)
2026-05-10T23:27:43.285854Z INFO screenpipe_audio::transcription::handle_new_transcript: device soundcore AeroClip (input) skipping duplicate transcript (entire content overlaps with previous)
2026-05-10T23:27:58.189174Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: soundcore AeroClip (input)
2026-05-10T23:27:58.190264Z INFO screenpipe_audio::device::device_manager: starting recording for device: soundcore AeroClip (input)
2026-05-10T23:27:58.190299Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: soundcore AeroClip (input)
2026-05-10T23:27:58.190324Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for soundcore AeroClip (input) (bluetooth / 30s segments)
2026-05-10T23:27:58.190332Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for soundcore AeroClip (input)
2026-05-10T23:27:58.203316Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for MacBook Pro Microphone (input)
2026-05-10T23:28:32.063312Z ERROR screenpipe_audio::core::stream: an error occurred on the audio stream: device disconnected
2026-05-10T23:28:32.531328Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: MacBook Pro Microphone (input)
2026-05-10T23:28:32.531913Z INFO screenpipe_audio::device::device_manager: starting recording for device: MacBook Pro Microphone (input)
2026-05-10T23:28:32.531933Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: MacBook Pro Microphone (input)
2026-05-10T23:28:32.532003Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for soundcore AeroClip (input)
2026-05-10T23:28:32.708770Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for MacBook Pro Microphone (input) (wired / 30s segments)
2026-05-10T23:28:32.708807Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for MacBook Pro Microphone (input)
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-10T23:51:42.401532Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-11T02:54:23.501609Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
tip: get the screenpipe desktop app for the full experience
https://screenpi.pe
2026-05-11T07:21:22.702849Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: soundcore AeroClip (input)
2026-05-11T07:21:22.703351Z ERROR screenpipe_audio::audio_manager::device_monitor: failed to start new default input soundcore AeroClip (input): device soundcore AeroClip (input) not found (will back off)
2026-05-11T07:21:22.704671Z WARN screenpipe_audio::audio_manager::device_monitor: [DEVICE_RECOVERY] no input device running (attempt 1), starting default: soundcore AeroClip (input)
2026-05-11T07:21:22.704693Z WARN screenpipe_audio::audio_manager::device_monitor: [DEVICE_RECOVERY] failed to start input device soundcore AeroClip (input) (attempt 1): device soundcore AeroClip (input) not found
2026-05-11T07:21:23.587900Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for MacBook Pro Microphone (input)
2026-05-11T07:21:24.708381Z WARN screenpipe_audio::audio_manager::device_monitor: [DEVICE_RECOVERY] no input device running (attempt 2), starting default: soundcore AeroClip (input)
2026-05-11T07:21:24.708451Z WARN screenpipe_audio::audio_manager::device_monitor: [DEVICE_RECOVERY] failed to start input device soundcore AeroClip (input) (attempt 2): device soundcore AeroClip (input) not found
2026-05-11T07:21:26.711922Z WARN screenpipe_audio::audio_manager::device_monitor: [DEVICE_RECOVERY] no input device running (attempt 3), starting default: soundcore AeroClip (input)
2026-05-11T07:21:26.712001Z WARN screenpipe_audio::audio_manager::device_monitor: [DEVICE_RECOVERY] failed to start input device soundcore AeroClip (input) (attempt 3): device soundcore AeroClip (input) not found
2026-05-11T07:21:28.723900Z WARN screenpipe_audio::audio_manager::device_monitor: [DEVICE_RECOVERY] no input device running (attempt 4), starting default: soundcore AeroClip (input)
2026-05-11T07:21:28.726974Z INFO screenpipe_audio::device::device_manager: starting recording for device: soundcore AeroClip (input)
2026-05-11T07:21:28.727134Z INFO screenpipe_audio::audio_manager::device_monitor: [DEVICE_RECOVERY] input device restored, device=soundcore AeroClip (input)
2026-05-11T07:21:28.972503Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for soundcore AeroClip (input) (bluetooth / 30s segments)
2026-05-11T07:21:28.972538Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for soundcore AeroClip (input)
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
2026-05-11T07:54:37.325769Z INFO screenpipe_en...
|
iTerm2
|
screenpipe"
|
NULL
|
14919
|
|
14926
|
whisper_init_state: kv cross size = 9.44 MB
whi whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-10T23:27:31.985285Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
2026-05-10T23:27:41.489329Z ERROR screenpipe_audio::core::stream: an error occurred on the audio stream: device disconnected
2026-05-10T23:27:42.161846Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: MacBook Pro Microphone (input)
2026-05-10T23:27:42.163527Z INFO screenpipe_audio::device::device_manager: starting recording for device: MacBook Pro Microphone (input)
2026-05-10T23:27:42.164408Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: MacBook Pro Microphone (input)
2026-05-10T23:27:42.164471Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for MacBook Pro Microphone (input) (wired / 30s segments)
2026-05-10T23:27:42.164492Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for MacBook Pro Microphone (input)
2026-05-10T23:27:42.881174Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for soundcore AeroClip (input)
2026-05-10T23:27:43.285854Z INFO screenpipe_audio::transcription::handle_new_transcript: device soundcore AeroClip (input) skipping duplicate transcript (entire content overlaps with previous)
2026-05-10T23:27:58.189174Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: soundcore AeroClip (input)
2026-05-10T23:27:58.190264Z INFO screenpipe_audio::device::device_manager: starting recording for device: soundcore AeroClip (input)
2026-05-10T23:27:58.190299Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: soundcore AeroClip (input)
2026-05-10T23:27:58.190324Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for soundcore AeroClip (input) (bluetooth / 30s segments)
2026-05-10T23:27:58.190332Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for soundcore AeroClip (input)
2026-05-10T23:27:58.203316Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for MacBook Pro Microphone (input)
2026-05-10T23:28:32.063312Z ERROR screenpipe_audio::core::stream: an error occurred on the audio stream: device disconnected
2026-05-10T23:28:32.531328Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: MacBook Pro Microphone (input)
2026-05-10T23:28:32.531913Z INFO screenpipe_audio::device::device_manager: starting recording for device: MacBook Pro Microphone (input)
2026-05-10T23:28:32.531933Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: MacBook Pro Microphone (input)
2026-05-10T23:28:32.532003Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for soundcore AeroClip (input)
2026-05-10T23:28:32.708770Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for MacBook Pro Microphone (input) (wired / 30s segments)
2026-05-10T23:28:32.708807Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for MacBook Pro Microphone (input)
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-10T23:51:42.401532Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-11T02:54:23.501609Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
tip: get the screenpipe desktop app for the full experience
[URL_WITH_CREDENTIALS] ~/.screenpipe/data $ 2026-05-11T07:55:11.700985Z INFO screenpipe_engine::ui_recorder: UI recording session ended: 851f2de1-d8f5-4b4a-b008-420703e8e4b2
2026-05-11T07:55:11.701373Z INFO screenpipe: shutdown complete
ggml_metal_free: deallocating
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ 2026-05-11T07:55:27.408897Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-05-11T07:55:32.412685Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ 2026-05-11T08:08:48.291500Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-05-11T09:04:13.378932Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh
2.9G .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-start
sp-start='npx screenpipe@latest record --disable-audio --ignored-windows "Boosteroid"'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ npx screenpipe@latest record
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-11T09:06:14.511481Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-05-11T09:06:14.591827Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-11T09:06:16.007353Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-11T09:06:16.008982Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-11T09:06:16.009480Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-11T09:06:16.029339Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-11T09:06:16.029396Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-11T09:06:16.402389Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-11T09:06:16.402461Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-11T09:06:16.402480Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-11T09:06:16.402564Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-11T09:06:16.402590Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-11T09:06:16.405899Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-11T09:06:16.406247Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-11T09:06:16.406815Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-11T09:06:16.406896Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-11T09:06:16.406969Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-11T09:06:16.407056Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-0...
|
iTerm2
|
screenpipe"
|
NULL
|
14926
|
|
14927
|
whisper_init_state: kv cross size = 9.44 MB
whi whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-10T23:27:31.985285Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
2026-05-10T23:27:41.489329Z ERROR screenpipe_audio::core::stream: an error occurred on the audio stream: device disconnected
2026-05-10T23:27:42.161846Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: MacBook Pro Microphone (input)
2026-05-10T23:27:42.163527Z INFO screenpipe_audio::device::device_manager: starting recording for device: MacBook Pro Microphone (input)
2026-05-10T23:27:42.164408Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: MacBook Pro Microphone (input)
2026-05-10T23:27:42.164471Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for MacBook Pro Microphone (input) (wired / 30s segments)
2026-05-10T23:27:42.164492Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for MacBook Pro Microphone (input)
2026-05-10T23:27:42.881174Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for soundcore AeroClip (input)
2026-05-10T23:27:43.285854Z INFO screenpipe_audio::transcription::handle_new_transcript: device soundcore AeroClip (input) skipping duplicate transcript (entire content overlaps with previous)
2026-05-10T23:27:58.189174Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: soundcore AeroClip (input)
2026-05-10T23:27:58.190264Z INFO screenpipe_audio::device::device_manager: starting recording for device: soundcore AeroClip (input)
2026-05-10T23:27:58.190299Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: soundcore AeroClip (input)
2026-05-10T23:27:58.190324Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for soundcore AeroClip (input) (bluetooth / 30s segments)
2026-05-10T23:27:58.190332Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for soundcore AeroClip (input)
2026-05-10T23:27:58.203316Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for MacBook Pro Microphone (input)
2026-05-10T23:28:32.063312Z ERROR screenpipe_audio::core::stream: an error occurred on the audio stream: device disconnected
2026-05-10T23:28:32.531328Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: MacBook Pro Microphone (input)
2026-05-10T23:28:32.531913Z INFO screenpipe_audio::device::device_manager: starting recording for device: MacBook Pro Microphone (input)
2026-05-10T23:28:32.531933Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: MacBook Pro Microphone (input)
2026-05-10T23:28:32.532003Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for soundcore AeroClip (input)
2026-05-10T23:28:32.708770Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for MacBook Pro Microphone (input) (wired / 30s segments)
2026-05-10T23:28:32.708807Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for MacBook Pro Microphone (input)
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-10T23:51:42.401532Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-11T02:54:23.501609Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
tip: get the screenpipe desktop app for the full experience
[URL_WITH_CREDENTIALS] ~/.screenpipe/data $ 2026-05-11T07:55:11.700985Z INFO screenpipe_engine::ui_recorder: UI recording session ended: 851f2de1-d8f5-4b4a-b008-420703e8e4b2
2026-05-11T07:55:11.701373Z INFO screenpipe: shutdown complete
ggml_metal_free: deallocating
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ 2026-05-11T07:55:27.408897Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-05-11T07:55:32.412685Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ 2026-05-11T08:08:48.291500Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-05-11T09:04:13.378932Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh
2.9G .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-start
sp-start='npx screenpipe@latest record --disable-audio --ignored-windows "Boosteroid"'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ npx screenpipe@latest record
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-11T09:06:14.511481Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-05-11T09:06:14.591827Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-11T09:06:16.007353Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-11T09:06:16.008982Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-11T09:06:16.009480Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-11T09:06:16.029339Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-11T09:06:16.029396Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-11T09:06:16.402389Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-11T09:06:16.402461Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-11T09:06:16.402480Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-11T09:06:16.402564Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-11T09:06:16.402590Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-11T09:06:16.405899Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-11T09:06:16.406247Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-11T09:06:16.406815Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-11T09:06:16.406896Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-11T09:06:16.406969Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-11T09:06:16.407056Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-0...
|
iTerm2
|
screenpipe"
|
NULL
|
14927
|
|
14932
|
whisper_init_state: kv cross size = 9.44 MB
whi whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-10T23:27:31.985285Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
2026-05-10T23:27:41.489329Z ERROR screenpipe_audio::core::stream: an error occurred on the audio stream: device disconnected
2026-05-10T23:27:42.161846Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: MacBook Pro Microphone (input)
2026-05-10T23:27:42.163527Z INFO screenpipe_audio::device::device_manager: starting recording for device: MacBook Pro Microphone (input)
2026-05-10T23:27:42.164408Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: MacBook Pro Microphone (input)
2026-05-10T23:27:42.164471Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for MacBook Pro Microphone (input) (wired / 30s segments)
2026-05-10T23:27:42.164492Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for MacBook Pro Microphone (input)
2026-05-10T23:27:42.881174Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for soundcore AeroClip (input)
2026-05-10T23:27:43.285854Z INFO screenpipe_audio::transcription::handle_new_transcript: device soundcore AeroClip (input) skipping duplicate transcript (entire content overlaps with previous)
2026-05-10T23:27:58.189174Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: soundcore AeroClip (input)
2026-05-10T23:27:58.190264Z INFO screenpipe_audio::device::device_manager: starting recording for device: soundcore AeroClip (input)
2026-05-10T23:27:58.190299Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: soundcore AeroClip (input)
2026-05-10T23:27:58.190324Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for soundcore AeroClip (input) (bluetooth / 30s segments)
2026-05-10T23:27:58.190332Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for soundcore AeroClip (input)
2026-05-10T23:27:58.203316Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for MacBook Pro Microphone (input)
2026-05-10T23:28:32.063312Z ERROR screenpipe_audio::core::stream: an error occurred on the audio stream: device disconnected
2026-05-10T23:28:32.531328Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: MacBook Pro Microphone (input)
2026-05-10T23:28:32.531913Z INFO screenpipe_audio::device::device_manager: starting recording for device: MacBook Pro Microphone (input)
2026-05-10T23:28:32.531933Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: MacBook Pro Microphone (input)
2026-05-10T23:28:32.532003Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for soundcore AeroClip (input)
2026-05-10T23:28:32.708770Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for MacBook Pro Microphone (input) (wired / 30s segments)
2026-05-10T23:28:32.708807Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for MacBook Pro Microphone (input)
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-10T23:51:42.401532Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-11T02:54:23.501609Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
tip: get the screenpipe desktop app for the full experience
[URL_WITH_CREDENTIALS] ~/.screenpipe/data $ 2026-05-11T07:55:11.700985Z INFO screenpipe_engine::ui_recorder: UI recording session ended: 851f2de1-d8f5-4b4a-b008-420703e8e4b2
2026-05-11T07:55:11.701373Z INFO screenpipe: shutdown complete
ggml_metal_free: deallocating
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ 2026-05-11T07:55:27.408897Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-05-11T07:55:32.412685Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ 2026-05-11T08:08:48.291500Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-05-11T09:04:13.378932Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh
2.9G .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-start
sp-start='npx screenpipe@latest record --disable-audio --ignored-windows "Boosteroid"'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ npx screenpipe@latest record
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-11T09:06:14.511481Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-05-11T09:06:14.591827Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-11T09:06:16.007353Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-11T09:06:16.008982Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-11T09:06:16.009480Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-11T09:06:16.029339Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-11T09:06:16.029396Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-11T09:06:16.402389Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-11T09:06:16.402461Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-11T09:06:16.402480Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-11T09:06:16.402564Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-11T09:06:16.402590Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-11T09:06:16.405899Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-11T09:06:16.406247Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-11T09:06:16.406815Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-11T09:06:16.406896Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-11T09:06:16.406969Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-11T09:06:16.407056Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-0...
|
iTerm2
|
screenpipe"
|
NULL
|
14932
|
|
14939
|
whisper_init_state: compute buffer (cross) = 8 whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-10T23:27:31.985285Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
2026-05-10T23:27:41.489329Z ERROR screenpipe_audio::core::stream: an error occurred on the audio stream: device disconnected
2026-05-10T23:27:42.161846Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: MacBook Pro Microphone (input)
2026-05-10T23:27:42.163527Z INFO screenpipe_audio::device::device_manager: starting recording for device: MacBook Pro Microphone (input)
2026-05-10T23:27:42.164408Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: MacBook Pro Microphone (input)
2026-05-10T23:27:42.164471Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for MacBook Pro Microphone (input) (wired / 30s segments)
2026-05-10T23:27:42.164492Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for MacBook Pro Microphone (input)
2026-05-10T23:27:42.881174Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for soundcore AeroClip (input)
2026-05-10T23:27:43.285854Z INFO screenpipe_audio::transcription::handle_new_transcript: device soundcore AeroClip (input) skipping duplicate transcript (entire content overlaps with previous)
2026-05-10T23:27:58.189174Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: soundcore AeroClip (input)
2026-05-10T23:27:58.190264Z INFO screenpipe_audio::device::device_manager: starting recording for device: soundcore AeroClip (input)
2026-05-10T23:27:58.190299Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: soundcore AeroClip (input)
2026-05-10T23:27:58.190324Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for soundcore AeroClip (input) (bluetooth / 30s segments)
2026-05-10T23:27:58.190332Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for soundcore AeroClip (input)
2026-05-10T23:27:58.203316Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for MacBook Pro Microphone (input)
2026-05-10T23:28:32.063312Z ERROR screenpipe_audio::core::stream: an error occurred on the audio stream: device disconnected
2026-05-10T23:28:32.531328Z INFO screenpipe_audio::audio_manager::device_monitor: system default input changed to: MacBook Pro Microphone (input)
2026-05-10T23:28:32.531913Z INFO screenpipe_audio::device::device_manager: starting recording for device: MacBook Pro Microphone (input)
2026-05-10T23:28:32.531933Z INFO screenpipe_audio::audio_manager::device_monitor: switched to new system default input: MacBook Pro Microphone (input)
2026-05-10T23:28:32.532003Z INFO screenpipe_audio::core::run_record_and_transcribe: stopped recording for soundcore AeroClip (input)
2026-05-10T23:28:32.708770Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for MacBook Pro Microphone (input) (wired / 30s segments)
2026-05-10T23:28:32.708807Z INFO screenpipe_audio::core::run_record_and_transcribe: screen locked, pausing audio recording for MacBook Pro Microphone (input)
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-10T23:51:42.401532Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-11T02:54:23.501609Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
tip: get the screenpipe desktop app for the full experience
[URL_WITH_CREDENTIALS] ~/.screenpipe/data $ 2026-05-11T07:55:11.700985Z INFO screenpipe_engine::ui_recorder: UI recording session ended: 851f2de1-d8f5-4b4a-b008-420703e8e4b2
2026-05-11T07:55:11.701373Z INFO screenpipe: shutdown complete
ggml_metal_free: deallocating
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ 2026-05-11T07:55:27.408897Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-05-11T07:55:32.412685Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ 2026-05-11T08:08:48.291500Z INFO screenpipe_engine::sleep_monitor: Screen locked (CGSession safety-net poll)
2026-05-11T09:04:13.378932Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe/data $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh
2.9G .
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-start
sp-start='npx screenpipe@latest record --disable-audio --ignored-windows "Boosteroid"'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ npx screenpipe@latest record
detected hardware tier: Mid
warning: parakeet is not supported on this platform, using whisper-tiny instead
2026-05-11T09:06:14.511481Z INFO screenpipe_engine::auth_key: api auth: key resolved via secret store
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-05-11T09:06:14.591827Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-05-11T09:06:16.007353Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-05-11T09:06:16.008982Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-05-11T09:06:16.009480Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-05-11T09:06:16.029339Z INFO screenpipe_engine::permission_monitor: permission monitor started screen=true mic=true accessibility=true keychain=true
2026-05-11T09:06:16.029396Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-05-11T09:06:16.402389Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)
2026-05-11T09:06:16.402461Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)
2026-05-11T09:06:16.402480Z INFO screenpipe: API server listening on [IP_ADDRESS]:3030 (localhost only)
2026-05-11T09:06:16.402564Z INFO screenpipe: API auth enabled — run `screenpipe auth token` to view your key
2026-05-11T09:06:16.402590Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager
2026-05-11T09:06:16.405899Z INFO screenpipe_core::pipes: loaded pipe: day-recap
2026-05-11T09:06:16.406247Z INFO screenpipe_core::pipes: loaded pipe: standup-update
2026-05-11T09:06:16.406815Z INFO screenpipe_core::pipes: loaded pipe: ai-habits
2026-05-11T09:06:16.406896Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown
2026-05-11T09:06:16.406969Z INFO screenpipe_core::pipes: loaded pipe: video-export
2026-05-11T09:06:16.407056Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary
2026-05-11T09:06:16.407076Z INFO screenpipe_core::pipes: loaded 6 pipes from "/Users/lukas/.screenpipe/pipes"
_
__________________ ___ ____ ____ (...
|
iTerm2
|
screenpipe"
|
NULL
|
14939
|
|
21087
|
2026-05-11T19:55:41.050300Z INFO screenpipe_engin 2026-05-11T19:55:41.050300Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (6.1x), 10 JPEGs deleted
2026-05-11T19:55:41.940193Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 0.3MB (6.4x), 10 JPEGs deleted
tip: wire screenpipe into claude with one command:
claude mcp add screenpipe -- npx -y screenpipe-mcp
then ask claude to build a pipe that tracks who you are, your todos, and how you spend your time from your screen activity
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-11T19:56:35.278909Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-11T19:58:37.834427Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-11T20:00:40.424221Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
2026-05-11T20:00:42.183237Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 22 eligible frames
2026-05-11T20:00:43.461244Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 2.2MB → 0.4MB (6.1x), 10 JPEGs deleted
2026-05-11T20:00:44.432338Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 10 frames, 1.9MB → 0.3MB (6.4x), 10 JPEGs deleted
tip: install a starter bundle of pipes:
screenpipe install https://screenpi.pe/start.json
2026-05-11T20:02:18.870768Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-05-11T20:02:18.927472Z INFO screenpipe_audio::core::run_record_and_transcribe: screen unlocked — rebuilding stream for MacBook Pro Microphone (input) (avoids zombie-callback state observed after sleep/wake on macOS, Windows, and Linux)
2026-05-11T20:02:18.981757Z WARN screenpipe_audio::audio_manager::manager: recording for device MacBook Pro Microphone (input) exited with error: stream rebuild required after screen unlock for MacBook Pro Microphone (input) (recovery is automatic via device_monitor)
2026-05-11T20:02:20.964004Z WARN screenpipe_audio::audio_manager::device_monitor: [DEVICE_RECOVERY] detected stale recording handle for MacBook Pro Microphone (input), cleaning up for restart
2026-05-11T20:02:20.964175Z INFO screenpipe_audio::device::device_manager: Stopping device: MacBook Pro Microphone (input)
2026-05-11T20:02:21.415539Z INFO screenpipe_audio::device::device_manager: starting recording for device: MacBook Pro Microphone (input)
2026-05-11T20:02:21.415697Z INFO screenpipe_audio::audio_manager::device_monitor: restarted with system default device: MacBook Pro Microphone (input)
2026-05-11T20:02:21.415980Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for MacBook Pro Microphone (input) (wired / 30s segments)
2026-05-11T20:02:21.813264Z INFO screenpipe_engine::sleep_monitor: Screen unlocked (CGSession safety-net poll)
2026-05-11T20:02:24.656924Z INFO screenpipe_engine::event_driven_capture: invalidating persistent streams after unlock/wake for monitor 1
2026-05-11T20:02:24.684324Z WARN sqlx::query: summary="SELECT DISTINCT app_name, window_name, …" db.statement="\n\nSELECT\n DISTINCT app_name,\n window_name,\n browser_url\nFROM\n frames\nWHERE\n timestamp > datetime('now', '-30 seconds')\n AND app_name IS NOT NULL\n AND window_name IS NOT NULL\n" rows_affected=1 rows_returned=197 elapsed=5.061547s
2026-05-11T20:02:26.657137Z INFO sck_rs::stream_manager: stopped 2 persistent stream(s)
2026-05-11T20:02:30.621870Z INFO sck_rs::stream_manager: persistent SCK stream started for display 2 (3008x1253, 2fps, 0 excluded)
2026-05-11T20:02:34.637496Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps, 0 excluded)
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-11T20:02:44.001643Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
2026-05-11T20:03:30.479471Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-5826347064466025141, trigger=visual_change)
2026-05-11T20:03:52.131531Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=-5425790139218707027, trigger=click)
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-11T20:04:45.978554Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
2026-05-11T20:05:05.168645Z WARN screenpipe_audio::core::source_buffer: [MacBook Pro Microphone (input)] large gap on wired device: 89.5ms elapsed (expected 5.3ms) → inserting 84.2ms silence (8080 samples)
2026-05-11T20:05:16.224790Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 2 (hash=4930168029133975798, trigger=click)
2026-05-11T20:05:27.444659Z WARN screenpipe_audio::core::source_buffer: [MacBook Pro Microphone (input)] large gap on wired device: 187.9ms elapsed (expected 5.3ms) → inserting 182.6ms silence (17527 samples)
2026-05-11T20:05:46.190016Z WARN sqlx::query: summary="SELECT id, snapshot_path, device_name, …" db.statement="\n\nSELECT\n id,\n snapshot_path,\n device_name,\n timestamp\nFROM\n frames\nWHERE\n snapshot_path IS NOT NULL\n AND timestamp < ?1\nORDER BY\n device_name,\n timestamp ASC\nLIMIT\n 5000\n" rows_affected=1 rows_returned=18 elapsed=1.745995375s
2026-05-11T20:05:46.191257Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 18 eligible frames
2026-05-11T20:05:47.142521Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.8MB → 0.4MB (4.9x), 8 JPEGs deleted
2026-05-11T20:05:48.203203Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: 8 frames, 1.5MB → 0.3MB (5.1x), 8 JPEGs deleted
tip: sign in for higher AI quotas + cloud sync:
screenpipe login
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-11T20:06:48.489458Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
2026-05-11T20:08:50.983819Z INFO screenpipe_audio::audio_manager::manager: reconciliation: transcribed 50 orphaned chunks
2026-05-11T20:10:48.583599Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction: found 2 eligible frames
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M1
ggml_metal_init: picking default device: Apple M1
ggml_metal_init: use fusion = true
ggml_metal_init: use concurrency = true
ggml_metal_init: use graph optimize = true
whisper_backend_init: using BLAS backend
whisper_init_state: kv self size = 3.15 MB
whisper_init_state: kv cross size = 9.44 MB
whisper_init_state: kv pad size = 2.36 MB
whisper_init_state: compute buffer (conv) = 14.17 MB
whisper_init_state: compute buffer (encode) = 65.96 MB
whisper_init_state: compute buffer (cross) = 8.50 MB
whisper_init_state: compute buffer (decode) = 96.83 MB
ggml_metal_free: deallocating
whisper_backend_init_gpu: device 0: Metal (type: 1)
whisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)
whisper_backend_init_gpu: using Metal backend
ggml_metal_init: allocating
ggml_metal_init: found d...
|
iTerm2
|
screenpipe"
|
NULL
|
21087
|