|
737
|
17
|
22
|
2026-04-11T12:11:32.051765+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775909492051_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindo iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelpC$Ш OOA100% C47-zshDOCKERO ₴1DEV (-zsh)O $2APP (-zsh)• *3-zshControl Centrel310.2Slack|210.1Activity Monitor|210.1Finder|110.1lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT browser_url, COUNT(*) as framesFROM framesWHERE date(timestamp) = date('now', '-2 day')AND browser_url IS NOT NULLGROUP BY browser_urlORDER BY framesDESCLIMIT 20;• *4-[URL_WITH_CREDENTIALS] ~/.screenpipe $• *5-zshS-₴66Sat 11 Apr 15:11:31-zshT81X7...
|
NULL
|
377600499821858474
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindo iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelpC$Ш OOA100% C47-zshDOCKERO ₴1DEV (-zsh)O $2APP (-zsh)• *3-zshControl Centrel310.2Slack|210.1Activity Monitor|210.1Finder|110.1lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT browser_url, COUNT(*) as framesFROM framesWHERE date(timestamp) = date('now', '-2 day')AND browser_url IS NOT NULLGROUP BY browser_urlORDER BY framesDESCLIMIT 20;• *4-[URL_WITH_CREDENTIALS] ~/.screenpipe $• *5-zshS-₴66Sat 11 Apr 15:11:31-zshT81X7...
|
NULL
|
|
743
|
17
|
28
|
2026-04-11T12:12:53.761857+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775909573761_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% <7Sat 11 Apr 15:12:53-zshT81DOCKERO ₴1DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• 84-zsh• ₴5-zshO ₴6-zsh*7WHERE text IS NOT NULL;CREATE INDEX idx_frames_sync_id ON frames(sync_id)WHEREsync_id IS NOT NULL;CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHEREsync_id IS NOT NULL;CREATE INDEX idx_audio_transcriptions_sync_id ONaudio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_elements_frame_source_role ONelements(frame_id, source, role) WHERE text IS NOT NULL;lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clearlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny:~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDERBY date(timestamp);"2026-04-0915232026-04-111197lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $sqlite3~/.screenpipe/db.sqlite"SELECTapp_name, COUNT(*)as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) asest_minutesFROM framesWHEREdate(timestamp)= date('now', '-2 day')ANDapp_name IS NOT NULLGROUP BY app_nameORDER BY frames DESC;iTerm2|185|13.9Dial3112.3Safaril2011.5Claude |1210.9UserNotificationCenter|410.3Control Centrel310.2Slack|210.1Activity Monitor|210.1Finder|110.1lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT browser_url, COUNT(*) as framesFROM framesWHERE date(timestamp) = date('now', '-2 day')AND browser_url IS NOT NULLGROUP BY browser_urlORDER BY frames DESCLIMIT 20;[URL_WITH_CREDENTIALS] ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name,event_type, COUNT(*) as eventsFROM ui_eventsWHERE date(timestamp) = date('now', '-2 day')AND app_name IS NOT NULL...
|
NULL
|
6244750661853324751
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% <7Sat 11 Apr 15:12:53-zshT81DOCKERO ₴1DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• 84-zsh• ₴5-zshO ₴6-zsh*7WHERE text IS NOT NULL;CREATE INDEX idx_frames_sync_id ON frames(sync_id)WHEREsync_id IS NOT NULL;CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHEREsync_id IS NOT NULL;CREATE INDEX idx_audio_transcriptions_sync_id ONaudio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_elements_frame_source_role ONelements(frame_id, source, role) WHERE text IS NOT NULL;lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clearlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny:~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDERBY date(timestamp);"2026-04-0915232026-04-111197lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $sqlite3~/.screenpipe/db.sqlite"SELECTapp_name, COUNT(*)as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) asest_minutesFROM framesWHEREdate(timestamp)= date('now', '-2 day')ANDapp_name IS NOT NULLGROUP BY app_nameORDER BY frames DESC;iTerm2|185|13.9Dial3112.3Safaril2011.5Claude |1210.9UserNotificationCenter|410.3Control Centrel310.2Slack|210.1Activity Monitor|210.1Finder|110.1lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT browser_url, COUNT(*) as framesFROM framesWHERE date(timestamp) = date('now', '-2 day')AND browser_url IS NOT NULLGROUP BY browser_urlORDER BY frames DESCLIMIT 20;[URL_WITH_CREDENTIALS] ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name,event_type, COUNT(*) as eventsFROM ui_eventsWHERE date(timestamp) = date('now', '-2 day')AND app_name IS NOT NULL...
|
NULL
|
|
754
|
18
|
7
|
2026-04-11T12:16:32.651908+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775909792651_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelp(ahl100% <7-zshDOCKERO ₴1DEV (-zsh)О 882APP (-zsh)• ₴зWHEREdate(timestamp)'SDATE'ANDwindow_nameIS NOT NULL AND app_name IS NOT NULLGROUP BY app_name, window_name ORDER BY COUNT(*)DESC LIMIT 20;"-zsh• *4-zshechoHOURLY TIMELINE"echosqlite3 "SDB""SELECT printf('%s%-20s %3d frames', strftime("%H:00', timestamp), app_name, COUNT(*))FROM framesWHERE date(timestamp) = 'SDATE' ANDapp_name IS NOT NULLGROUP BY strftime('%H', timestamp), app_nameORDER BY strftime('%H', timestamp), COUNT(*) DESC;"echo"\nCLIPBOARD ACTIVITY"echosqlite3"SDB""SELECT printf('%-20s %s', app_name,SUBSTR(text_content, 1, 80))FROM ui_eventsWHEREdate(timestamp) = 'SDATE' ANDevent_type = 'clipboard' AND text_content IS NOT NULLORDER BY timestamp LIMIT 20;"echo"\ngOCR TEXT SAMPLES PER APP"echosqlite3 "SDB""SELECT printf('%-15s%s', o.app_name, SUBSTR(o.text, 1, 80))FROM ocr_text oJOINframes f ON o.frame_id = f.idWHEREdate(f.timestamp) = 'SDATE' AND o.app_name IS NOT NULL AND o.text != **GROUP BY o.app_nameORDER BY o.app_name LIMIT 15;"echo"TOTALS"echosqlite3"SDB""SELECT'Frames:' II COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';sqlite3 "SDB"SELECT 'UI Events: ' |1 COUNT(*) FROM ui_events WHERE date(timestamp) = 'SDATE';sqlite3 "SDB"SELECT 'OCR texts: ' |I COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) - 'SDATE';EOFchmod+x ~/screenpipe-day.shlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ П• ₴5-zshO 886Sat 11 Apr 15:16:32-zshT81X7...
|
NULL
|
-3314561680350471107
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelp(ahl100% <7-zshDOCKERO ₴1DEV (-zsh)О 882APP (-zsh)• ₴зWHEREdate(timestamp)'SDATE'ANDwindow_nameIS NOT NULL AND app_name IS NOT NULLGROUP BY app_name, window_name ORDER BY COUNT(*)DESC LIMIT 20;"-zsh• *4-zshechoHOURLY TIMELINE"echosqlite3 "SDB""SELECT printf('%s%-20s %3d frames', strftime("%H:00', timestamp), app_name, COUNT(*))FROM framesWHERE date(timestamp) = 'SDATE' ANDapp_name IS NOT NULLGROUP BY strftime('%H', timestamp), app_nameORDER BY strftime('%H', timestamp), COUNT(*) DESC;"echo"\nCLIPBOARD ACTIVITY"echosqlite3"SDB""SELECT printf('%-20s %s', app_name,SUBSTR(text_content, 1, 80))FROM ui_eventsWHEREdate(timestamp) = 'SDATE' ANDevent_type = 'clipboard' AND text_content IS NOT NULLORDER BY timestamp LIMIT 20;"echo"\ngOCR TEXT SAMPLES PER APP"echosqlite3 "SDB""SELECT printf('%-15s%s', o.app_name, SUBSTR(o.text, 1, 80))FROM ocr_text oJOINframes f ON o.frame_id = f.idWHEREdate(f.timestamp) = 'SDATE' AND o.app_name IS NOT NULL AND o.text != **GROUP BY o.app_nameORDER BY o.app_name LIMIT 15;"echo"TOTALS"echosqlite3"SDB""SELECT'Frames:' II COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';sqlite3 "SDB"SELECT 'UI Events: ' |1 COUNT(*) FROM ui_events WHERE date(timestamp) = 'SDATE';sqlite3 "SDB"SELECT 'OCR texts: ' |I COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) - 'SDATE';EOFchmod+x ~/screenpipe-day.shlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ П• ₴5-zshO 886Sat 11 Apr 15:16:32-zshT81X7...
|
753
|
|
758
|
18
|
11
|
2026-04-11T12:17:05.909494+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775909825909_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
)
/* frames_fts(full_text,app_name,window_name,bro )
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);"
2026-04-09|523
2026-04-11|197
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name
ORDER BY frames DESC;
"
iTerm2|185|13.9
Dia|31|2.3
Safari|20|1.5
Claude|12|0.9
UserNotificationCenter|4|0.3
Control Centre|3|0.2
Slack|2|0.1
Activity Monitor|2|0.1
Finder|1|0.1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT browser_url, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND browser_url IS NOT NULL
GROUP BY browser_url
ORDER BY frames DESC
LIMIT 20;
"
[URL_WITH_CREDENTIALS] ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, event_type, COUNT(*) as events
FROM ui_events
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name, event_type
ORDER BY events DESC
LIMIT 30;
"
iTerm2|click|283
Dia|click|171
iTerm2|key|122
Dia|key|56
Safari|click|56
Claude|click|50
iTerm2|app_switch|34
Dia|clipboard|17
Safari|key|11
Claude|app_switch|9
Dia|app_switch|9
UserNotificationCenter|click|8
Claude|key|6
iTerm2|clipboard|6
UserNotificationCenter|app_switch|4
Safari|app_switch|3
Slack|app_switch|1
Slack|click|1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >....
WHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL
GROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;"
echo "\n🕐 HOURLY TIMELINE"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY strftime('%H', timestamp), app_name
ORDER BY strftime('%H', timestamp), COUNT(*) DESC;"
echo "\n📋 CLIPBOARD ACTIVITY"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL
ORDER BY timestamp LIMIT 20;"
echo "\n💬 OCR TEXT SAMPLES PER APP"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))
FROM ocr_text o
JOIN frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''
GROUP BY o.app_name
ORDER BY o.app_name LIMIT 15;"
echo "\n🔢 TOTALS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT
'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
"
EOF
chmod +x ~/screenpipe-day.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 162888
drwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .
drwx------+ 89 lukas staff 2848 11 Apr 15:16 ..
-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite
-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256 9 Apr 19: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 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls
Applications Documents Movies Public jiminny screenpipe-day.sh
CascadeProjects Downloads Music Untitled 4.spf node_modules yarn.lock
DEV Keychron_Screen Pictures Users raycast
Desktop Library Postman iCloud Drive (Archive) response.bin
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 1272
drwx------+ 89 lukas staff 2848 11 Apr 15:16 .
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 22532 11 Apr 11:15 .DS_Store
drwx------+ 2 lukas staff 64 11 Apr 11:15 .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 77 9 Feb 2023 .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 9 Apr 21:21 .claude
-rw------- 1 lukas staff 24973 9 Apr 21:24 .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 9 Apr 18:24 .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 31 Mar 18:32 .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------ 9 lukas staff 288 11 Apr 14:52 .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 10 lukas staff 320 11 Apr 14:52 .screenpipe
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 12183 8 Apr 19:14 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
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 6 Apr 14:31 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .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 28813 11 Apr 11:12 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc
drwx------@ 9 lukas staff 288 9 Apr 20:08 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV
drwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 41 lukas staff 1312 8 Apr 20:46 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
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 11:35 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 18:15 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 ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":")\n/* frames_fts(full_text,app_name,window_name,browser_url,id) */;\nCREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;\nCREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);\nCREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;\nCREATE TRIGGER frames_ai AFTER INSERT ON frames\nWHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''\nBEGIN\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n VALUES (\n NEW.id,\n NEW.full_text,\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n );\nEND;\nCREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n SELECT\n NEW.id,\n COALESCE(NEW.full_text, ''),\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';\nEND;\nCREATE TRIGGER frames_ad AFTER DELETE ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\nEND;\nCREATE INDEX idx_memories_frame_id ON memories(frame_id);\nCREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL;\nCREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);\"\n2026-04-09|523\n2026-04-11|197\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name\nORDER BY frames DESC;\n\"\niTerm2|185|13.9\nDia|31|2.3\nSafari|20|1.5\nClaude|12|0.9\nUserNotificationCenter|4|0.3\nControl Centre|3|0.2\nSlack|2|0.1\nActivity Monitor|2|0.1\nFinder|1|0.1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT browser_url, COUNT(*) as frames\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND browser_url IS NOT NULL\nGROUP BY browser_url\nORDER BY frames DESC\nLIMIT 20;\n\"\nhttps://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21|13\nhttps://location-tracker.lakylak.xyz/dashboard|4\nhttps://nas.lakylak.xyz/desktop/?os=ugospro#/|2\nhttps://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, event_type, COUNT(*) as events\nFROM ui_events\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name, event_type\nORDER BY events DESC\nLIMIT 30;\n\"\niTerm2|click|283\nDia|click|171\niTerm2|key|122\nDia|key|56\nSafari|click|56\nClaude|click|50\niTerm2|app_switch|34\nDia|clipboard|17\nSafari|key|11\nClaude|app_switch|9\nDia|app_switch|9\nUserNotificationCenter|click|8\nClaude|key|6\niTerm2|clipboard|6\nUserNotificationCenter|app_switch|4\nSafari|app_switch|3\nSlack|app_switch|1\nSlack|click|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >.... \nWHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL\nGROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho \"\\n🕐\u0000 HOURLY TIMELINE\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY strftime('%H', timestamp), app_name\nORDER BY strftime('%H', timestamp), COUNT(*) DESC;\"\n\necho \"\\n📋\u0000 CLIPBOARD ACTIVITY\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL\nORDER BY timestamp LIMIT 20;\"\n\necho \"\\n💬\u0000 OCR TEXT SAMPLES PER APP\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))\nFROM ocr_text o\nJOIN frames f ON o.frame_id = f.id\nWHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''\nGROUP BY o.app_name\nORDER BY o.app_name LIMIT 15;\"\n\necho \"\\n🔢\u0000 TOTALS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT\n 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\n\"\nEOF\nchmod +x ~/screenpipe-day.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll \ntotal 162888\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 ..\n-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json\ndrwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data\n-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite\n-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal\ndrwxr-xr-x 8 lukas staff 256 9 Apr 19:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls\nApplications\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDocuments\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMovies\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPublic\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tjiminny\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe-day.sh\nCascadeProjects\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDownloads\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMusic\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUntitled 4.spf\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tnode_modules\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tyarn.lock\nDEV\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tKeychron_Screen\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPictures\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUsers\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traycast\nDesktop\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tLibrary\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPostman\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tiCloud Drive (Archive)\u0000\tresponse.bin\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll\ntotal 1272\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 .\ndrwxr-xr-x 5 root admin 160 23 Aug 2024 ..\n-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding\n-rw-r--r--@ 1 lukas staff 22532 11 Apr 11:15 .DS_Store\ndrwx------+ 2 lukas staff 64 11 Apr 11:15 .Trash\ndrwx------ 5 lukas staff 160 1 Nov 2021 .aws\n-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json\n-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .bashrc\ndrwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito\ndrwx------@ 6 lukas staff 192 9 Apr 19:53 .cache\ndrwxr-xr-x 20 lukas staff 640 9 Apr 21:21 .claude\n-rw------- 1 lukas staff 24973 9 Apr 21:24 .claude.json\ndrwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium\ndrwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer\ndrwx------ 16 lukas staff 512 21 May 2025 .config\ndrwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue\ndrwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot\ndrwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor\ndrwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor\ndrwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona\ndrwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb\ndrwx------ 24 lukas staff 768 9 Apr 18:24 .docker\ndrwx------ 15 lukas staff 480 6 Jun 2023 .dropbox\ndrwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak\n-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth\n-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig\n-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp\ndrwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon\ndrwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc\n-rw------- 1 lukas staff 20 31 Mar 18:32 .lesshst\ndrwx------ 5 lukas staff 160 23 Dec 2024 .local\n-rw------- 1 lukas staff 204 16 Mar 2024 .netrc\ndrwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp\n-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history\n-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer\ndrwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py\ndrwx------ 9 lukas staff 288 11 Apr 14:52 .npm\n-rw------- 1 lukas staff 74 20 May 2024 .npmrc\ndrwx------ 32 lukas staff 1024 25 Jul 2025 .nvm\ndrwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile\n-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history\ndrwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode\ndrwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .screenpipe\ndrwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint\ndrwx------ 15 lukas staff 480 8 Aug 2025 .ssh\ndrwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit\ndrwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm\n-rw------- 1 lukas staff 12183 8 Apr 19:14 .viminfo\ndrwx------ 5 lukas staff 160 19 Jun 2023 .vscode\ndrwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp\ndrwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm\ndrwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf\ndrwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn\n-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc\n-rw-r--r--@ 1 lukas staff 49518 6 Apr 14:31 .zcompdump\n-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381\n-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .zprofile\n-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy\n-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave\n-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save\n-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees\n-rw------- 1 lukas staff 28813 11 Apr 11:12 .zsh_history\ndrwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions\n-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc\ndrwx------@ 9 lukas staff 288 9 Apr 20:08 Applications\ndrwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects\ndrwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV\ndrwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop\ndrwx------@ 7 lukas staff 224 26 Mar 14:40 Documents\ndrwx------@ 41 lukas staff 1312 8 Apr 20:46 Downloads\ndrwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen\ndrwx------@ 112 lukas staff 3584 2 Dec 09:19 Library\ndrwx------ 7 lukas staff 224 12 Feb 2024 Movies\ndrwx------+ 5 lukas staff 160 25 Sep 2023 Music\ndrwx------+ 9 lukas staff 288 25 Sep 2023 Pictures\ndrwx------ 3 lukas staff 96 8 Nov 2021 Postman\ndrwx------+ 4 lukas staff 128 28 Oct 2021 Public\n-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf\ndrwx------ 4 lukas staff 128 2 Jul 2023 Users\ndrwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)\ndrwx------ 16 lukas staff 512 3 Nov 11:35 jiminny\ndrwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules\ndrwxr-xr-x 4 lukas staff 128 21 Oct 18:15 raycast\n-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin\n-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh\n-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","depth":4,"value":")\n/* frames_fts(full_text,app_name,window_name,browser_url,id) */;\nCREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;\nCREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);\nCREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;\nCREATE TRIGGER frames_ai AFTER INSERT ON frames\nWHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''\nBEGIN\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n VALUES (\n NEW.id,\n NEW.full_text,\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n );\nEND;\nCREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n SELECT\n NEW.id,\n COALESCE(NEW.full_text, ''),\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';\nEND;\nCREATE TRIGGER frames_ad AFTER DELETE ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\nEND;\nCREATE INDEX idx_memories_frame_id ON memories(frame_id);\nCREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL;\nCREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);\"\n2026-04-09|523\n2026-04-11|197\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name\nORDER BY frames DESC;\n\"\niTerm2|185|13.9\nDia|31|2.3\nSafari|20|1.5\nClaude|12|0.9\nUserNotificationCenter|4|0.3\nControl Centre|3|0.2\nSlack|2|0.1\nActivity Monitor|2|0.1\nFinder|1|0.1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT browser_url, COUNT(*) as frames\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND browser_url IS NOT NULL\nGROUP BY browser_url\nORDER BY frames DESC\nLIMIT 20;\n\"\nhttps://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21|13\nhttps://location-tracker.lakylak.xyz/dashboard|4\nhttps://nas.lakylak.xyz/desktop/?os=ugospro#/|2\nhttps://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, event_type, COUNT(*) as events\nFROM ui_events\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name, event_type\nORDER BY events DESC\nLIMIT 30;\n\"\niTerm2|click|283\nDia|click|171\niTerm2|key|122\nDia|key|56\nSafari|click|56\nClaude|click|50\niTerm2|app_switch|34\nDia|clipboard|17\nSafari|key|11\nClaude|app_switch|9\nDia|app_switch|9\nUserNotificationCenter|click|8\nClaude|key|6\niTerm2|clipboard|6\nUserNotificationCenter|app_switch|4\nSafari|app_switch|3\nSlack|app_switch|1\nSlack|click|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >.... \nWHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL\nGROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho \"\\n🕐\u0000 HOURLY TIMELINE\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY strftime('%H', timestamp), app_name\nORDER BY strftime('%H', timestamp), COUNT(*) DESC;\"\n\necho \"\\n📋\u0000 CLIPBOARD ACTIVITY\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL\nORDER BY timestamp LIMIT 20;\"\n\necho \"\\n💬\u0000 OCR TEXT SAMPLES PER APP\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))\nFROM ocr_text o\nJOIN frames f ON o.frame_id = f.id\nWHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''\nGROUP BY o.app_name\nORDER BY o.app_name LIMIT 15;\"\n\necho \"\\n🔢\u0000 TOTALS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT\n 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\n\"\nEOF\nchmod +x ~/screenpipe-day.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll \ntotal 162888\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 ..\n-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json\ndrwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data\n-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite\n-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal\ndrwxr-xr-x 8 lukas staff 256 9 Apr 19:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls\nApplications\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDocuments\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMovies\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPublic\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tjiminny\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe-day.sh\nCascadeProjects\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDownloads\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMusic\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUntitled 4.spf\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tnode_modules\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tyarn.lock\nDEV\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tKeychron_Screen\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPictures\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUsers\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traycast\nDesktop\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tLibrary\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPostman\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tiCloud Drive (Archive)\u0000\tresponse.bin\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll\ntotal 1272\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 .\ndrwxr-xr-x 5 root admin 160 23 Aug 2024 ..\n-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding\n-rw-r--r--@ 1 lukas staff 22532 11 Apr 11:15 .DS_Store\ndrwx------+ 2 lukas staff 64 11 Apr 11:15 .Trash\ndrwx------ 5 lukas staff 160 1 Nov 2021 .aws\n-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json\n-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .bashrc\ndrwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito\ndrwx------@ 6 lukas staff 192 9 Apr 19:53 .cache\ndrwxr-xr-x 20 lukas staff 640 9 Apr 21:21 .claude\n-rw------- 1 lukas staff 24973 9 Apr 21:24 .claude.json\ndrwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium\ndrwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer\ndrwx------ 16 lukas staff 512 21 May 2025 .config\ndrwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue\ndrwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot\ndrwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor\ndrwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor\ndrwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona\ndrwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb\ndrwx------ 24 lukas staff 768 9 Apr 18:24 .docker\ndrwx------ 15 lukas staff 480 6 Jun 2023 .dropbox\ndrwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak\n-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth\n-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig\n-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp\ndrwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon\ndrwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc\n-rw------- 1 lukas staff 20 31 Mar 18:32 .lesshst\ndrwx------ 5 lukas staff 160 23 Dec 2024 .local\n-rw------- 1 lukas staff 204 16 Mar 2024 .netrc\ndrwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp\n-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history\n-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer\ndrwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py\ndrwx------ 9 lukas staff 288 11 Apr 14:52 .npm\n-rw------- 1 lukas staff 74 20 May 2024 .npmrc\ndrwx------ 32 lukas staff 1024 25 Jul 2025 .nvm\ndrwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile\n-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history\ndrwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode\ndrwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .screenpipe\ndrwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint\ndrwx------ 15 lukas staff 480 8 Aug 2025 .ssh\ndrwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit\ndrwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm\n-rw------- 1 lukas staff 12183 8 Apr 19:14 .viminfo\ndrwx------ 5 lukas staff 160 19 Jun 2023 .vscode\ndrwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp\ndrwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm\ndrwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf\ndrwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn\n-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc\n-rw-r--r--@ 1 lukas staff 49518 6 Apr 14:31 .zcompdump\n-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381\n-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .zprofile\n-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy\n-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave\n-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save\n-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees\n-rw------- 1 lukas staff 28813 11 Apr 11:12 .zsh_history\ndrwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions\n-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc\ndrwx------@ 9 lukas staff 288 9 Apr 20:08 Applications\ndrwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects\ndrwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV\ndrwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop\ndrwx------@ 7 lukas staff 224 26 Mar 14:40 Documents\ndrwx------@ 41 lukas staff 1312 8 Apr 20:46 Downloads\ndrwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen\ndrwx------@ 112 lukas staff 3584 2 Dec 09:19 Library\ndrwx------ 7 lukas staff 224 12 Feb 2024 Movies\ndrwx------+ 5 lukas staff 160 25 Sep 2023 Music\ndrwx------+ 9 lukas staff 288 25 Sep 2023 Pictures\ndrwx------ 3 lukas staff 96 8 Nov 2021 Postman\ndrwx------+ 4 lukas staff 128 28 Oct 2021 Public\n-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf\ndrwx------ 4 lukas staff 128 2 Jul 2023 Users\ndrwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)\ndrwx------ 16 lukas staff 512 3 Nov 11:35 jiminny\ndrwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules\ndrwxr-xr-x 4 lukas staff 128 21 Oct 18:15 raycast\n-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin\n-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh\n-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
-8664222300600007459
|
7955072120078387748
|
visual_change
|
accessibility
|
NULL
|
)
/* frames_fts(full_text,app_name,window_name,bro )
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);"
2026-04-09|523
2026-04-11|197
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name
ORDER BY frames DESC;
"
iTerm2|185|13.9
Dia|31|2.3
Safari|20|1.5
Claude|12|0.9
UserNotificationCenter|4|0.3
Control Centre|3|0.2
Slack|2|0.1
Activity Monitor|2|0.1
Finder|1|0.1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT browser_url, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND browser_url IS NOT NULL
GROUP BY browser_url
ORDER BY frames DESC
LIMIT 20;
"
[URL_WITH_CREDENTIALS] ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, event_type, COUNT(*) as events
FROM ui_events
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name, event_type
ORDER BY events DESC
LIMIT 30;
"
iTerm2|click|283
Dia|click|171
iTerm2|key|122
Dia|key|56
Safari|click|56
Claude|click|50
iTerm2|app_switch|34
Dia|clipboard|17
Safari|key|11
Claude|app_switch|9
Dia|app_switch|9
UserNotificationCenter|click|8
Claude|key|6
iTerm2|clipboard|6
UserNotificationCenter|app_switch|4
Safari|app_switch|3
Slack|app_switch|1
Slack|click|1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >....
WHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL
GROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;"
echo "\n🕐 HOURLY TIMELINE"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY strftime('%H', timestamp), app_name
ORDER BY strftime('%H', timestamp), COUNT(*) DESC;"
echo "\n📋 CLIPBOARD ACTIVITY"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL
ORDER BY timestamp LIMIT 20;"
echo "\n💬 OCR TEXT SAMPLES PER APP"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))
FROM ocr_text o
JOIN frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''
GROUP BY o.app_name
ORDER BY o.app_name LIMIT 15;"
echo "\n🔢 TOTALS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT
'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
"
EOF
chmod +x ~/screenpipe-day.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 162888
drwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .
drwx------+ 89 lukas staff 2848 11 Apr 15:16 ..
-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite
-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256 9 Apr 19: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 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls
Applications Documents Movies Public jiminny screenpipe-day.sh
CascadeProjects Downloads Music Untitled 4.spf node_modules yarn.lock
DEV Keychron_Screen Pictures Users raycast
Desktop Library Postman iCloud Drive (Archive) response.bin
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 1272
drwx------+ 89 lukas staff 2848 11 Apr 15:16 .
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 22532 11 Apr 11:15 .DS_Store
drwx------+ 2 lukas staff 64 11 Apr 11:15 .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 77 9 Feb 2023 .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 9 Apr 21:21 .claude
-rw------- 1 lukas staff 24973 9 Apr 21:24 .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 9 Apr 18:24 .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 31 Mar 18:32 .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------ 9 lukas staff 288 11 Apr 14:52 .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 10 lukas staff 320 11 Apr 14:52 .screenpipe
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 12183 8 Apr 19:14 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
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 6 Apr 14:31 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .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 28813 11 Apr 11:12 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc
drwx------@ 9 lukas staff 288 9 Apr 20:08 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV
drwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 41 lukas staff 1312 8 Apr 20:46 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
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 11:35 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 18:15 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 ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
757
|
|
760
|
18
|
13
|
2026-04-11T12:17:14.991571+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775909834991_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zshDOCKERdrwxr-xr-xdrwxr-xr-xdrwx-drwxr-xr-xedrwx--rw-drwx--drwxr-xr-x@drwxr-xr-xdrwxr-xr-x@drwxr-xr-xO ₴1DEV (-zsh)-О 882APP (-zsh)10 lukasstaff32011Apr 14:52screenpipe4 lukasstaff128Feb09:35sonarlint15lukasstaff4808Aug2025.sshlukasstaff9615Aug2025streamlitlukasstaff19217Oct2022swiftpmlukasstaff121838 Apr19:14•viminfolukasstaff16019Jun2023vscodelukasstaff9620 Jan2025- warplukasstaff5 lukasstaff12829Apr2023. wdm16026Jan13:03windsurf4lukasstaff12824 Mar12:03yarnlukasstaff116-rw-r--r--@-rw-r--r--@-rw-r--r--@-rw-r--r---rw-r--r--@-rW----rw-r--r---rw--drwx------rw-r--r--@drwx------@drwxr-xr-xedrwxr-xr-xdrwx--@drwx-drwx--drwxr-xr-xedrwx-drwx-drwx-drwxdrwx-drwx--rw-rdrwx-drwx-drwx-drwxr-xr-xdrwxr-xr-xlukasstaff30Mar10:12•yarnrc495186Apr14:31.zcompdumplukasstaff467582Nov20:34lukasstaff56419Apr20:30•zprofilelukasstaff14688Apr2022zprofile-copylukasstaff290015Mar2023•zprofile.pysavelukasstaff173129Jun2022.zprofile.save1lukasstaff1 lukasstaff15698 Apr2022•zprofilees2881311Apr 11:129 lukasstaff.zsh_history2886 May2025zsh_sessions1lukasstaff9lukasstaff36225Jul2025.zshrc2889 Apr20:08Applications2 lukasstaff6422 Oct09:35CascadeProjects4 lukasstaff12827Oct09:24DEV5 lukasstaff16011Apr14:53Desktop7 lukasstaff22426Mar14:40Documents41 lukasstaff13128Apr20:46Downloads4 lukasstaff112 lukasstaff12817 Mar20:27Keychron_Screen35842 Dec09:197 lukasstaffLibrary22412Feb2024Movies5 lukasstaff1609 lukasstaff25Sep2023Music28825Sep2023Pictures3 lukasstaff968 Nov2021Postman4 lukasstaff12828 Oct2021Publicr--@1lukasstaff395015 Dec09:16Untitled 4.spf4 lukasstaff1282Jul2023Userslukasstaff9630Sep2022iCloud Drive (Archive)16 lukasstaff3 lukasstaff5123Nov11:35jiminny9620Mar18:47node_modules4 lukasstaff12821 Oct18:15raycastlukasstaff1 Mar14:26-rwxr-xr-x1 lukasstaffresponse.bin382411 Apr15:16screenpipe-day.sh-rw-r--r--1 lukasstaff8620 Mar 18:47yarn.locklukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $• ₴з-zsh• 84zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381-zsh$0(ahl• ₴5-zsh100% <7O 886Sat 11 Apr 15:17:14-zsh181*7...
|
NULL
|
1873772543583741402
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zshDOCKERdrwxr-xr-xdrwxr-xr-xdrwx-drwxr-xr-xedrwx--rw-drwx--drwxr-xr-x@drwxr-xr-xdrwxr-xr-x@drwxr-xr-xO ₴1DEV (-zsh)-О 882APP (-zsh)10 lukasstaff32011Apr 14:52screenpipe4 lukasstaff128Feb09:35sonarlint15lukasstaff4808Aug2025.sshlukasstaff9615Aug2025streamlitlukasstaff19217Oct2022swiftpmlukasstaff121838 Apr19:14•viminfolukasstaff16019Jun2023vscodelukasstaff9620 Jan2025- warplukasstaff5 lukasstaff12829Apr2023. wdm16026Jan13:03windsurf4lukasstaff12824 Mar12:03yarnlukasstaff116-rw-r--r--@-rw-r--r--@-rw-r--r--@-rw-r--r---rw-r--r--@-rW----rw-r--r---rw--drwx------rw-r--r--@drwx------@drwxr-xr-xedrwxr-xr-xdrwx--@drwx-drwx--drwxr-xr-xedrwx-drwx-drwx-drwxdrwx-drwx--rw-rdrwx-drwx-drwx-drwxr-xr-xdrwxr-xr-xlukasstaff30Mar10:12•yarnrc495186Apr14:31.zcompdumplukasstaff467582Nov20:34lukasstaff56419Apr20:30•zprofilelukasstaff14688Apr2022zprofile-copylukasstaff290015Mar2023•zprofile.pysavelukasstaff173129Jun2022.zprofile.save1lukasstaff1 lukasstaff15698 Apr2022•zprofilees2881311Apr 11:129 lukasstaff.zsh_history2886 May2025zsh_sessions1lukasstaff9lukasstaff36225Jul2025.zshrc2889 Apr20:08Applications2 lukasstaff6422 Oct09:35CascadeProjects4 lukasstaff12827Oct09:24DEV5 lukasstaff16011Apr14:53Desktop7 lukasstaff22426Mar14:40Documents41 lukasstaff13128Apr20:46Downloads4 lukasstaff112 lukasstaff12817 Mar20:27Keychron_Screen35842 Dec09:197 lukasstaffLibrary22412Feb2024Movies5 lukasstaff1609 lukasstaff25Sep2023Music28825Sep2023Pictures3 lukasstaff968 Nov2021Postman4 lukasstaff12828 Oct2021Publicr--@1lukasstaff395015 Dec09:16Untitled 4.spf4 lukasstaff1282Jul2023Userslukasstaff9630Sep2022iCloud Drive (Archive)16 lukasstaff3 lukasstaff5123Nov11:35jiminny9620Mar18:47node_modules4 lukasstaff12821 Oct18:15raycastlukasstaff1 Mar14:26-rwxr-xr-x1 lukasstaffresponse.bin382411 Apr15:16screenpipe-day.sh-rw-r--r--1 lukasstaff8620 Mar 18:47yarn.locklukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $• ₴з-zsh• 84zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381-zsh$0(ahl• ₴5-zsh100% <7O 886Sat 11 Apr 15:17:14-zsh181*7...
|
759
|
|
762
|
18
|
15
|
2026-04-11T12:17:18.002381+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775909838002_m1.jpg...
|
iTerm2
|
zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
)
/* frames_fts(full_text,app_name,window_name,bro )
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);"
2026-04-09|523
2026-04-11|197
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name
ORDER BY frames DESC;
"
iTerm2|185|13.9
Dia|31|2.3
Safari|20|1.5
Claude|12|0.9
UserNotificationCenter|4|0.3
Control Centre|3|0.2
Slack|2|0.1
Activity Monitor|2|0.1
Finder|1|0.1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT browser_url, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND browser_url IS NOT NULL
GROUP BY browser_url
ORDER BY frames DESC
LIMIT 20;
"
[URL_WITH_CREDENTIALS] ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, event_type, COUNT(*) as events
FROM ui_events
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name, event_type
ORDER BY events DESC
LIMIT 30;
"
iTerm2|click|283
Dia|click|171
iTerm2|key|122
Dia|key|56
Safari|click|56
Claude|click|50
iTerm2|app_switch|34
Dia|clipboard|17
Safari|key|11
Claude|app_switch|9
Dia|app_switch|9
UserNotificationCenter|click|8
Claude|key|6
iTerm2|clipboard|6
UserNotificationCenter|app_switch|4
Safari|app_switch|3
Slack|app_switch|1
Slack|click|1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >....
WHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL
GROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;"
echo "\n🕐 HOURLY TIMELINE"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY strftime('%H', timestamp), app_name
ORDER BY strftime('%H', timestamp), COUNT(*) DESC;"
echo "\n📋 CLIPBOARD ACTIVITY"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL
ORDER BY timestamp LIMIT 20;"
echo "\n💬 OCR TEXT SAMPLES PER APP"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))
FROM ocr_text o
JOIN frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''
GROUP BY o.app_name
ORDER BY o.app_name LIMIT 15;"
echo "\n🔢 TOTALS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT
'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
"
EOF
chmod +x ~/screenpipe-day.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 162888
drwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .
drwx------+ 89 lukas staff 2848 11 Apr 15:16 ..
-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite
-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256 9 Apr 19: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 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls
Applications Documents Movies Public jiminny screenpipe-day.sh
CascadeProjects Downloads Music Untitled 4.spf node_modules yarn.lock
DEV Keychron_Screen Pictures Users raycast
Desktop Library Postman iCloud Drive (Archive) response.bin
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 1272
drwx------+ 89 lukas staff 2848 11 Apr 15:16 .
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 22532 11 Apr 11:15 .DS_Store
drwx------+ 2 lukas staff 64 11 Apr 11:15 .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 77 9 Feb 2023 .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 9 Apr 21:21 .claude
-rw------- 1 lukas staff 24973 9 Apr 21:24 .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 9 Apr 18:24 .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 31 Mar 18:32 .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------ 9 lukas staff 288 11 Apr 14:52 .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 10 lukas staff 320 11 Apr 14:52 .screenpipe
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 12183 8 Apr 19:14 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
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 6 Apr 14:31 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .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 28813 11 Apr 11:12 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc
drwx------@ 9 lukas staff 288 9 Apr 20:08 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV
drwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 41 lukas staff 1312 8 Apr 20:46 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
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 11:35 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 18:15 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 ~ $ ~/screenpipe-day.sh 2026-04-09
═══════════════════════════════════════
SCREENPIPE REPORT — 2026-04-09
═══════════════════════════════════════
📱 APP USAGE (frames + estimated time)
───────────────────────────────────────
iTerm2 185 frames ~ 13.9 min
Dia 31 frames ~ 2.3 min
Safari 20 frames ~ 1.5 min
Claude 12 frames ~ 0.9 min
UserNotificationCenter 4 frames ~ 0.3 min
Control Centre 3 frames ~ 0.2 min
Slack 2 frames ~ 0.1 min
Activity Monitor 2 frames ~ 0.1 min
Finder 1 frames ~ 0.1 min
⌨️ ACTIVITY TYPE PER APP (clicks / keys / switches)
───────────────────────────────────────
iTerm2 clicks:283 keys:122 switches:34
Dia clicks:171 keys:56 switches:9
Safari clicks:56 keys:11 switches:3
Claude clicks:50 keys:6 switches:9
UserNotificationCenter clicks:8 keys:0 switches:4
Slack clicks:1 keys:0 switches:1
🌐 BROWSER URLS VISITED
───────────────────────────────────────
13 frames [URL_WITH_CREDENTIALS] ~ $ claude mcp add screenpipe -- npx -y
Dia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
zsh
Close Tab
⌥⌘1
zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":")\n/* frames_fts(full_text,app_name,window_name,browser_url,id) */;\nCREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;\nCREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);\nCREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;\nCREATE TRIGGER frames_ai AFTER INSERT ON frames\nWHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''\nBEGIN\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n VALUES (\n NEW.id,\n NEW.full_text,\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n );\nEND;\nCREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n SELECT\n NEW.id,\n COALESCE(NEW.full_text, ''),\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';\nEND;\nCREATE TRIGGER frames_ad AFTER DELETE ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\nEND;\nCREATE INDEX idx_memories_frame_id ON memories(frame_id);\nCREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL;\nCREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);\"\n2026-04-09|523\n2026-04-11|197\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name\nORDER BY frames DESC;\n\"\niTerm2|185|13.9\nDia|31|2.3\nSafari|20|1.5\nClaude|12|0.9\nUserNotificationCenter|4|0.3\nControl Centre|3|0.2\nSlack|2|0.1\nActivity Monitor|2|0.1\nFinder|1|0.1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT browser_url, COUNT(*) as frames\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND browser_url IS NOT NULL\nGROUP BY browser_url\nORDER BY frames DESC\nLIMIT 20;\n\"\nhttps://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21|13\nhttps://location-tracker.lakylak.xyz/dashboard|4\nhttps://nas.lakylak.xyz/desktop/?os=ugospro#/|2\nhttps://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, event_type, COUNT(*) as events\nFROM ui_events\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name, event_type\nORDER BY events DESC\nLIMIT 30;\n\"\niTerm2|click|283\nDia|click|171\niTerm2|key|122\nDia|key|56\nSafari|click|56\nClaude|click|50\niTerm2|app_switch|34\nDia|clipboard|17\nSafari|key|11\nClaude|app_switch|9\nDia|app_switch|9\nUserNotificationCenter|click|8\nClaude|key|6\niTerm2|clipboard|6\nUserNotificationCenter|app_switch|4\nSafari|app_switch|3\nSlack|app_switch|1\nSlack|click|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >.... \nWHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL\nGROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho \"\\n🕐\u0000 HOURLY TIMELINE\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY strftime('%H', timestamp), app_name\nORDER BY strftime('%H', timestamp), COUNT(*) DESC;\"\n\necho \"\\n📋\u0000 CLIPBOARD ACTIVITY\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL\nORDER BY timestamp LIMIT 20;\"\n\necho \"\\n💬\u0000 OCR TEXT SAMPLES PER APP\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))\nFROM ocr_text o\nJOIN frames f ON o.frame_id = f.id\nWHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''\nGROUP BY o.app_name\nORDER BY o.app_name LIMIT 15;\"\n\necho \"\\n🔢\u0000 TOTALS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT\n 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\n\"\nEOF\nchmod +x ~/screenpipe-day.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll \ntotal 162888\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 ..\n-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json\ndrwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data\n-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite\n-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal\ndrwxr-xr-x 8 lukas staff 256 9 Apr 19:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls\nApplications\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDocuments\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMovies\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPublic\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tjiminny\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe-day.sh\nCascadeProjects\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDownloads\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMusic\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUntitled 4.spf\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tnode_modules\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tyarn.lock\nDEV\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tKeychron_Screen\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPictures\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUsers\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traycast\nDesktop\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tLibrary\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPostman\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tiCloud Drive (Archive)\u0000\tresponse.bin\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll\ntotal 1272\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 .\ndrwxr-xr-x 5 root admin 160 23 Aug 2024 ..\n-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding\n-rw-r--r--@ 1 lukas staff 22532 11 Apr 11:15 .DS_Store\ndrwx------+ 2 lukas staff 64 11 Apr 11:15 .Trash\ndrwx------ 5 lukas staff 160 1 Nov 2021 .aws\n-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json\n-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .bashrc\ndrwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito\ndrwx------@ 6 lukas staff 192 9 Apr 19:53 .cache\ndrwxr-xr-x 20 lukas staff 640 9 Apr 21:21 .claude\n-rw------- 1 lukas staff 24973 9 Apr 21:24 .claude.json\ndrwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium\ndrwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer\ndrwx------ 16 lukas staff 512 21 May 2025 .config\ndrwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue\ndrwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot\ndrwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor\ndrwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor\ndrwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona\ndrwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb\ndrwx------ 24 lukas staff 768 9 Apr 18:24 .docker\ndrwx------ 15 lukas staff 480 6 Jun 2023 .dropbox\ndrwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak\n-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth\n-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig\n-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp\ndrwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon\ndrwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc\n-rw------- 1 lukas staff 20 31 Mar 18:32 .lesshst\ndrwx------ 5 lukas staff 160 23 Dec 2024 .local\n-rw------- 1 lukas staff 204 16 Mar 2024 .netrc\ndrwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp\n-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history\n-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer\ndrwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py\ndrwx------ 9 lukas staff 288 11 Apr 14:52 .npm\n-rw------- 1 lukas staff 74 20 May 2024 .npmrc\ndrwx------ 32 lukas staff 1024 25 Jul 2025 .nvm\ndrwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile\n-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history\ndrwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode\ndrwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .screenpipe\ndrwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint\ndrwx------ 15 lukas staff 480 8 Aug 2025 .ssh\ndrwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit\ndrwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm\n-rw------- 1 lukas staff 12183 8 Apr 19:14 .viminfo\ndrwx------ 5 lukas staff 160 19 Jun 2023 .vscode\ndrwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp\ndrwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm\ndrwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf\ndrwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn\n-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc\n-rw-r--r--@ 1 lukas staff 49518 6 Apr 14:31 .zcompdump\n-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381\n-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .zprofile\n-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy\n-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave\n-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save\n-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees\n-rw------- 1 lukas staff 28813 11 Apr 11:12 .zsh_history\ndrwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions\n-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc\ndrwx------@ 9 lukas staff 288 9 Apr 20:08 Applications\ndrwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects\ndrwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV\ndrwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop\ndrwx------@ 7 lukas staff 224 26 Mar 14:40 Documents\ndrwx------@ 41 lukas staff 1312 8 Apr 20:46 Downloads\ndrwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen\ndrwx------@ 112 lukas staff 3584 2 Dec 09:19 Library\ndrwx------ 7 lukas staff 224 12 Feb 2024 Movies\ndrwx------+ 5 lukas staff 160 25 Sep 2023 Music\ndrwx------+ 9 lukas staff 288 25 Sep 2023 Pictures\ndrwx------ 3 lukas staff 96 8 Nov 2021 Postman\ndrwx------+ 4 lukas staff 128 28 Oct 2021 Public\n-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf\ndrwx------ 4 lukas staff 128 2 Jul 2023 Users\ndrwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)\ndrwx------ 16 lukas staff 512 3 Nov 11:35 jiminny\ndrwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules\ndrwxr-xr-x 4 lukas staff 128 21 Oct 18:15 raycast\n-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin\n-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh\n-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ~/screenpipe-day.sh 2026-04-09\n═══════════════════════════════════════\n SCREENPIPE REPORT — 2026-04-09\n═══════════════════════════════════════\n\n📱\u0000 APP USAGE (frames + estimated time)\n───────────────────────────────────────\niTerm2 185 frames ~ 13.9 min\nDia 31 frames ~ 2.3 min\nSafari 20 frames ~ 1.5 min\nClaude 12 frames ~ 0.9 min\nUserNotificationCenter 4 frames ~ 0.3 min\nControl Centre 3 frames ~ 0.2 min\nSlack 2 frames ~ 0.1 min\nActivity Monitor 2 frames ~ 0.1 min\nFinder 1 frames ~ 0.1 min\n\n⌨️\u0000 ACTIVITY TYPE PER APP (clicks / keys / switches)\n───────────────────────────────────────\niTerm2 clicks:283 keys:122 switches:34 \nDia clicks:171 keys:56 switches:9 \nSafari clicks:56 keys:11 switches:3 \nClaude clicks:50 keys:6 switches:9 \nUserNotificationCenter clicks:8 keys:0 switches:4 \nSlack clicks:1 keys:0 switches:1 \n\n🌐\u0000 BROWSER URLS VISITED\n───────────────────────────────────────\n 13 frames https://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21\n 4 frames https://location-tracker.lakylak.xyz/dashboard\n 2 frames https://nas.lakylak.xyz/desktop/?os=ugospro#/\n 1 frames https://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b\n\n🪟\u0000 WINDOW TITLES (top 20)\n───────────────────────────────────────\niTerm2 93 -zsh\niTerm2 34 screenpipe\"\nSafari 13 Order Room Service • HBO Max\nClaude 12 Claude\niTerm2 8 ✳ Find cheapest WD Red Plus 6TB price\nDia 7 Personal: New Tab\niTerm2 7 ✳ Claude Code\niTerm2 7 ⠂ Find cheapest WD Red Plus 6TB price\niTerm2 7 ⠂ Research Western Digital Red Plus pricing\niTerm2 7 ⠐ Research Western Digital Red Plus pricing\nDia 6 Personal: GitHub - scree…\niTerm2 5 ✳ Research Western Digital Red Plus pricing\nSafari 4 Location Logger\nUserNotificationCenter 4 \niTerm2 4 nano\niTerm2 4 ⠐ Find cheapest WD Red Plus 6TB price\nControl Centre 3 Control Centre\nDia 3 Personal: Western Digita…\niTerm2 3 ✳ Check today's app usage\nActivity Monitor 2 Activity Monitor – All Processes\n\n🕐\u0000 HOURLY TIMELINE\n───────────────────────────────────────\n16:00 iTerm2 14 frames\n16:00 Safari 4 frames\n16:00 Dia 3 frames\n16:00 Control Centre 2 frames\n16:00 Activity Monitor 2 frames\n17:00 iTerm2 116 frames\n17:00 Dia 24 frames\n17:00 Safari 16 frames\n17:00 Claude 8 frames\n17:00 UserNotificationCenter 4 frames\n17:00 Finder 1 frames\n17:00 Control Centre 1 frames\n18:00 iTerm2 55 frames\n18:00 Dia 4 frames\n18:00 Claude 4 frames\n18:00 Slack 2 frames\n\n📋\u0000 CLIPBOARD ACTIVITY\n───────────────────────────────────────\niTerm2 claude mcp add screenpipe -- npx -y screenpipe-mcp\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\nDia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","depth":4,"value":")\n/* frames_fts(full_text,app_name,window_name,browser_url,id) */;\nCREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;\nCREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);\nCREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;\nCREATE TRIGGER frames_ai AFTER INSERT ON frames\nWHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''\nBEGIN\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n VALUES (\n NEW.id,\n NEW.full_text,\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n );\nEND;\nCREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n SELECT\n NEW.id,\n COALESCE(NEW.full_text, ''),\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';\nEND;\nCREATE TRIGGER frames_ad AFTER DELETE ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\nEND;\nCREATE INDEX idx_memories_frame_id ON memories(frame_id);\nCREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL;\nCREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);\"\n2026-04-09|523\n2026-04-11|197\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name\nORDER BY frames DESC;\n\"\niTerm2|185|13.9\nDia|31|2.3\nSafari|20|1.5\nClaude|12|0.9\nUserNotificationCenter|4|0.3\nControl Centre|3|0.2\nSlack|2|0.1\nActivity Monitor|2|0.1\nFinder|1|0.1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT browser_url, COUNT(*) as frames\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND browser_url IS NOT NULL\nGROUP BY browser_url\nORDER BY frames DESC\nLIMIT 20;\n\"\nhttps://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21|13\nhttps://location-tracker.lakylak.xyz/dashboard|4\nhttps://nas.lakylak.xyz/desktop/?os=ugospro#/|2\nhttps://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, event_type, COUNT(*) as events\nFROM ui_events\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name, event_type\nORDER BY events DESC\nLIMIT 30;\n\"\niTerm2|click|283\nDia|click|171\niTerm2|key|122\nDia|key|56\nSafari|click|56\nClaude|click|50\niTerm2|app_switch|34\nDia|clipboard|17\nSafari|key|11\nClaude|app_switch|9\nDia|app_switch|9\nUserNotificationCenter|click|8\nClaude|key|6\niTerm2|clipboard|6\nUserNotificationCenter|app_switch|4\nSafari|app_switch|3\nSlack|app_switch|1\nSlack|click|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >.... \nWHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL\nGROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho \"\\n🕐\u0000 HOURLY TIMELINE\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY strftime('%H', timestamp), app_name\nORDER BY strftime('%H', timestamp), COUNT(*) DESC;\"\n\necho \"\\n📋\u0000 CLIPBOARD ACTIVITY\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL\nORDER BY timestamp LIMIT 20;\"\n\necho \"\\n💬\u0000 OCR TEXT SAMPLES PER APP\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))\nFROM ocr_text o\nJOIN frames f ON o.frame_id = f.id\nWHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''\nGROUP BY o.app_name\nORDER BY o.app_name LIMIT 15;\"\n\necho \"\\n🔢\u0000 TOTALS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT\n 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\n\"\nEOF\nchmod +x ~/screenpipe-day.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll \ntotal 162888\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 ..\n-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json\ndrwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data\n-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite\n-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal\ndrwxr-xr-x 8 lukas staff 256 9 Apr 19:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls\nApplications\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDocuments\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMovies\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPublic\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tjiminny\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe-day.sh\nCascadeProjects\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDownloads\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMusic\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUntitled 4.spf\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tnode_modules\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tyarn.lock\nDEV\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tKeychron_Screen\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPictures\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUsers\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traycast\nDesktop\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tLibrary\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPostman\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tiCloud Drive (Archive)\u0000\tresponse.bin\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll\ntotal 1272\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 .\ndrwxr-xr-x 5 root admin 160 23 Aug 2024 ..\n-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding\n-rw-r--r--@ 1 lukas staff 22532 11 Apr 11:15 .DS_Store\ndrwx------+ 2 lukas staff 64 11 Apr 11:15 .Trash\ndrwx------ 5 lukas staff 160 1 Nov 2021 .aws\n-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json\n-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .bashrc\ndrwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito\ndrwx------@ 6 lukas staff 192 9 Apr 19:53 .cache\ndrwxr-xr-x 20 lukas staff 640 9 Apr 21:21 .claude\n-rw------- 1 lukas staff 24973 9 Apr 21:24 .claude.json\ndrwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium\ndrwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer\ndrwx------ 16 lukas staff 512 21 May 2025 .config\ndrwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue\ndrwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot\ndrwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor\ndrwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor\ndrwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona\ndrwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb\ndrwx------ 24 lukas staff 768 9 Apr 18:24 .docker\ndrwx------ 15 lukas staff 480 6 Jun 2023 .dropbox\ndrwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak\n-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth\n-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig\n-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp\ndrwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon\ndrwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc\n-rw------- 1 lukas staff 20 31 Mar 18:32 .lesshst\ndrwx------ 5 lukas staff 160 23 Dec 2024 .local\n-rw------- 1 lukas staff 204 16 Mar 2024 .netrc\ndrwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp\n-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history\n-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer\ndrwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py\ndrwx------ 9 lukas staff 288 11 Apr 14:52 .npm\n-rw------- 1 lukas staff 74 20 May 2024 .npmrc\ndrwx------ 32 lukas staff 1024 25 Jul 2025 .nvm\ndrwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile\n-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history\ndrwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode\ndrwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .screenpipe\ndrwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint\ndrwx------ 15 lukas staff 480 8 Aug 2025 .ssh\ndrwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit\ndrwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm\n-rw------- 1 lukas staff 12183 8 Apr 19:14 .viminfo\ndrwx------ 5 lukas staff 160 19 Jun 2023 .vscode\ndrwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp\ndrwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm\ndrwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf\ndrwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn\n-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc\n-rw-r--r--@ 1 lukas staff 49518 6 Apr 14:31 .zcompdump\n-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381\n-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .zprofile\n-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy\n-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave\n-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save\n-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees\n-rw------- 1 lukas staff 28813 11 Apr 11:12 .zsh_history\ndrwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions\n-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc\ndrwx------@ 9 lukas staff 288 9 Apr 20:08 Applications\ndrwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects\ndrwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV\ndrwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop\ndrwx------@ 7 lukas staff 224 26 Mar 14:40 Documents\ndrwx------@ 41 lukas staff 1312 8 Apr 20:46 Downloads\ndrwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen\ndrwx------@ 112 lukas staff 3584 2 Dec 09:19 Library\ndrwx------ 7 lukas staff 224 12 Feb 2024 Movies\ndrwx------+ 5 lukas staff 160 25 Sep 2023 Music\ndrwx------+ 9 lukas staff 288 25 Sep 2023 Pictures\ndrwx------ 3 lukas staff 96 8 Nov 2021 Postman\ndrwx------+ 4 lukas staff 128 28 Oct 2021 Public\n-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf\ndrwx------ 4 lukas staff 128 2 Jul 2023 Users\ndrwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)\ndrwx------ 16 lukas staff 512 3 Nov 11:35 jiminny\ndrwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules\ndrwxr-xr-x 4 lukas staff 128 21 Oct 18:15 raycast\n-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin\n-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh\n-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ~/screenpipe-day.sh 2026-04-09\n═══════════════════════════════════════\n SCREENPIPE REPORT — 2026-04-09\n═══════════════════════════════════════\n\n📱\u0000 APP USAGE (frames + estimated time)\n───────────────────────────────────────\niTerm2 185 frames ~ 13.9 min\nDia 31 frames ~ 2.3 min\nSafari 20 frames ~ 1.5 min\nClaude 12 frames ~ 0.9 min\nUserNotificationCenter 4 frames ~ 0.3 min\nControl Centre 3 frames ~ 0.2 min\nSlack 2 frames ~ 0.1 min\nActivity Monitor 2 frames ~ 0.1 min\nFinder 1 frames ~ 0.1 min\n\n⌨️\u0000 ACTIVITY TYPE PER APP (clicks / keys / switches)\n───────────────────────────────────────\niTerm2 clicks:283 keys:122 switches:34 \nDia clicks:171 keys:56 switches:9 \nSafari clicks:56 keys:11 switches:3 \nClaude clicks:50 keys:6 switches:9 \nUserNotificationCenter clicks:8 keys:0 switches:4 \nSlack clicks:1 keys:0 switches:1 \n\n🌐\u0000 BROWSER URLS VISITED\n───────────────────────────────────────\n 13 frames https://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21\n 4 frames https://location-tracker.lakylak.xyz/dashboard\n 2 frames https://nas.lakylak.xyz/desktop/?os=ugospro#/\n 1 frames https://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b\n\n🪟\u0000 WINDOW TITLES (top 20)\n───────────────────────────────────────\niTerm2 93 -zsh\niTerm2 34 screenpipe\"\nSafari 13 Order Room Service • HBO Max\nClaude 12 Claude\niTerm2 8 ✳ Find cheapest WD Red Plus 6TB price\nDia 7 Personal: New Tab\niTerm2 7 ✳ Claude Code\niTerm2 7 ⠂ Find cheapest WD Red Plus 6TB price\niTerm2 7 ⠂ Research Western Digital Red Plus pricing\niTerm2 7 ⠐ Research Western Digital Red Plus pricing\nDia 6 Personal: GitHub - scree…\niTerm2 5 ✳ Research Western Digital Red Plus pricing\nSafari 4 Location Logger\nUserNotificationCenter 4 \niTerm2 4 nano\niTerm2 4 ⠐ Find cheapest WD Red Plus 6TB price\nControl Centre 3 Control Centre\nDia 3 Personal: Western Digita…\niTerm2 3 ✳ Check today's app usage\nActivity Monitor 2 Activity Monitor – All Processes\n\n🕐\u0000 HOURLY TIMELINE\n───────────────────────────────────────\n16:00 iTerm2 14 frames\n16:00 Safari 4 frames\n16:00 Dia 3 frames\n16:00 Control Centre 2 frames\n16:00 Activity Monitor 2 frames\n17:00 iTerm2 116 frames\n17:00 Dia 24 frames\n17:00 Safari 16 frames\n17:00 Claude 8 frames\n17:00 UserNotificationCenter 4 frames\n17:00 Finder 1 frames\n17:00 Control Centre 1 frames\n18:00 iTerm2 55 frames\n18:00 Dia 4 frames\n18:00 Claude 4 frames\n18:00 Slack 2 frames\n\n📋\u0000 CLIPBOARD ACTIVITY\n───────────────────────────────────────\niTerm2 claude mcp add screenpipe -- npx -y screenpipe-mcp\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\nDia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"zsh","depth":1,"bounds":{"left":0.49027777,"top":0.033333335,"width":0.01875,"height":0.017777778},"role_description":"text"}]...
|
3800978459205822800
|
5648665543643950756
|
visual_change
|
accessibility
|
NULL
|
)
/* frames_fts(full_text,app_name,window_name,bro )
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);"
2026-04-09|523
2026-04-11|197
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name
ORDER BY frames DESC;
"
iTerm2|185|13.9
Dia|31|2.3
Safari|20|1.5
Claude|12|0.9
UserNotificationCenter|4|0.3
Control Centre|3|0.2
Slack|2|0.1
Activity Monitor|2|0.1
Finder|1|0.1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT browser_url, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND browser_url IS NOT NULL
GROUP BY browser_url
ORDER BY frames DESC
LIMIT 20;
"
[URL_WITH_CREDENTIALS] ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, event_type, COUNT(*) as events
FROM ui_events
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name, event_type
ORDER BY events DESC
LIMIT 30;
"
iTerm2|click|283
Dia|click|171
iTerm2|key|122
Dia|key|56
Safari|click|56
Claude|click|50
iTerm2|app_switch|34
Dia|clipboard|17
Safari|key|11
Claude|app_switch|9
Dia|app_switch|9
UserNotificationCenter|click|8
Claude|key|6
iTerm2|clipboard|6
UserNotificationCenter|app_switch|4
Safari|app_switch|3
Slack|app_switch|1
Slack|click|1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >....
WHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL
GROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;"
echo "\n🕐 HOURLY TIMELINE"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY strftime('%H', timestamp), app_name
ORDER BY strftime('%H', timestamp), COUNT(*) DESC;"
echo "\n📋 CLIPBOARD ACTIVITY"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL
ORDER BY timestamp LIMIT 20;"
echo "\n💬 OCR TEXT SAMPLES PER APP"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))
FROM ocr_text o
JOIN frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''
GROUP BY o.app_name
ORDER BY o.app_name LIMIT 15;"
echo "\n🔢 TOTALS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT
'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
"
EOF
chmod +x ~/screenpipe-day.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 162888
drwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .
drwx------+ 89 lukas staff 2848 11 Apr 15:16 ..
-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite
-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256 9 Apr 19: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 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls
Applications Documents Movies Public jiminny screenpipe-day.sh
CascadeProjects Downloads Music Untitled 4.spf node_modules yarn.lock
DEV Keychron_Screen Pictures Users raycast
Desktop Library Postman iCloud Drive (Archive) response.bin
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 1272
drwx------+ 89 lukas staff 2848 11 Apr 15:16 .
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 22532 11 Apr 11:15 .DS_Store
drwx------+ 2 lukas staff 64 11 Apr 11:15 .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 77 9 Feb 2023 .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 9 Apr 21:21 .claude
-rw------- 1 lukas staff 24973 9 Apr 21:24 .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 9 Apr 18:24 .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 31 Mar 18:32 .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------ 9 lukas staff 288 11 Apr 14:52 .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 10 lukas staff 320 11 Apr 14:52 .screenpipe
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 12183 8 Apr 19:14 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
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 6 Apr 14:31 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .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 28813 11 Apr 11:12 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc
drwx------@ 9 lukas staff 288 9 Apr 20:08 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV
drwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 41 lukas staff 1312 8 Apr 20:46 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
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 11:35 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 18:15 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 ~ $ ~/screenpipe-day.sh 2026-04-09
═══════════════════════════════════════
SCREENPIPE REPORT — 2026-04-09
═══════════════════════════════════════
📱 APP USAGE (frames + estimated time)
───────────────────────────────────────
iTerm2 185 frames ~ 13.9 min
Dia 31 frames ~ 2.3 min
Safari 20 frames ~ 1.5 min
Claude 12 frames ~ 0.9 min
UserNotificationCenter 4 frames ~ 0.3 min
Control Centre 3 frames ~ 0.2 min
Slack 2 frames ~ 0.1 min
Activity Monitor 2 frames ~ 0.1 min
Finder 1 frames ~ 0.1 min
⌨️ ACTIVITY TYPE PER APP (clicks / keys / switches)
───────────────────────────────────────
iTerm2 clicks:283 keys:122 switches:34
Dia clicks:171 keys:56 switches:9
Safari clicks:56 keys:11 switches:3
Claude clicks:50 keys:6 switches:9
UserNotificationCenter clicks:8 keys:0 switches:4
Slack clicks:1 keys:0 switches:1
🌐 BROWSER URLS VISITED
───────────────────────────────────────
13 frames [URL_WITH_CREDENTIALS] ~ $ claude mcp add screenpipe -- npx -y
Dia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
zsh
Close Tab
⌥⌘1
zsh...
|
761
|
|
763
|
18
|
16
|
2026-04-11T12:17:21.054262+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775909841054_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
)
/* frames_fts(full_text,app_name,window_name,bro )
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);"
2026-04-09|523
2026-04-11|197
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name
ORDER BY frames DESC;
"
iTerm2|185|13.9
Dia|31|2.3
Safari|20|1.5
Claude|12|0.9
UserNotificationCenter|4|0.3
Control Centre|3|0.2
Slack|2|0.1
Activity Monitor|2|0.1
Finder|1|0.1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT browser_url, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND browser_url IS NOT NULL
GROUP BY browser_url
ORDER BY frames DESC
LIMIT 20;
"
[URL_WITH_CREDENTIALS] ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, event_type, COUNT(*) as events
FROM ui_events
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name, event_type
ORDER BY events DESC
LIMIT 30;
"
iTerm2|click|283
Dia|click|171
iTerm2|key|122
Dia|key|56
Safari|click|56
Claude|click|50
iTerm2|app_switch|34
Dia|clipboard|17
Safari|key|11
Claude|app_switch|9
Dia|app_switch|9
UserNotificationCenter|click|8
Claude|key|6
iTerm2|clipboard|6
UserNotificationCenter|app_switch|4
Safari|app_switch|3
Slack|app_switch|1
Slack|click|1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >....
WHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL
GROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;"
echo "\n🕐 HOURLY TIMELINE"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY strftime('%H', timestamp), app_name
ORDER BY strftime('%H', timestamp), COUNT(*) DESC;"
echo "\n📋 CLIPBOARD ACTIVITY"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL
ORDER BY timestamp LIMIT 20;"
echo "\n💬 OCR TEXT SAMPLES PER APP"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))
FROM ocr_text o
JOIN frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''
GROUP BY o.app_name
ORDER BY o.app_name LIMIT 15;"
echo "\n🔢 TOTALS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT
'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
"
EOF
chmod +x ~/screenpipe-day.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 162888
drwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .
drwx------+ 89 lukas staff 2848 11 Apr 15:16 ..
-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite
-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256 9 Apr 19: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 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls
Applications Documents Movies Public jiminny screenpipe-day.sh
CascadeProjects Downloads Music Untitled 4.spf node_modules yarn.lock
DEV Keychron_Screen Pictures Users raycast
Desktop Library Postman iCloud Drive (Archive) response.bin
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 1272
drwx------+ 89 lukas staff 2848 11 Apr 15:16 .
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 22532 11 Apr 11:15 .DS_Store
drwx------+ 2 lukas staff 64 11 Apr 11:15 .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 77 9 Feb 2023 .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 9 Apr 21:21 .claude
-rw------- 1 lukas staff 24973 9 Apr 21:24 .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 9 Apr 18:24 .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 31 Mar 18:32 .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------ 9 lukas staff 288 11 Apr 14:52 .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 10 lukas staff 320 11 Apr 14:52 .screenpipe
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 12183 8 Apr 19:14 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
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 6 Apr 14:31 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .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 28813 11 Apr 11:12 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc
drwx------@ 9 lukas staff 288 9 Apr 20:08 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV
drwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 41 lukas staff 1312 8 Apr 20:46 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
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 11:35 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 18:15 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 ~ $ ~/screenpipe-day.sh 2026-04-09
═══════════════════════════════════════
SCREENPIPE REPORT — 2026-04-09
═══════════════════════════════════════
📱 APP USAGE (frames + estimated time)
───────────────────────────────────────
iTerm2 185 frames ~ 13.9 min
Dia 31 frames ~ 2.3 min
Safari 20 frames ~ 1.5 min
Claude 12 frames ~ 0.9 min
UserNotificationCenter 4 frames ~ 0.3 min
Control Centre 3 frames ~ 0.2 min
Slack 2 frames ~ 0.1 min
Activity Monitor 2 frames ~ 0.1 min
Finder 1 frames ~ 0.1 min
⌨️ ACTIVITY TYPE PER APP (clicks / keys / switches)
───────────────────────────────────────
iTerm2 clicks:283 keys:122 switches:34
Dia clicks:171 keys:56 switches:9
Safari clicks:56 keys:11 switches:3
Claude clicks:50 keys:6 switches:9
UserNotificationCenter clicks:8 keys:0 switches:4
Slack clicks:1 keys:0 switches:1
🌐 BROWSER URLS VISITED
───────────────────────────────────────
13 frames [URL_WITH_CREDENTIALS] ~ $ claude mcp add screenpipe -- npx -y
Dia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":")\n/* frames_fts(full_text,app_name,window_name,browser_url,id) */;\nCREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;\nCREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);\nCREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;\nCREATE TRIGGER frames_ai AFTER INSERT ON frames\nWHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''\nBEGIN\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n VALUES (\n NEW.id,\n NEW.full_text,\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n );\nEND;\nCREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n SELECT\n NEW.id,\n COALESCE(NEW.full_text, ''),\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';\nEND;\nCREATE TRIGGER frames_ad AFTER DELETE ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\nEND;\nCREATE INDEX idx_memories_frame_id ON memories(frame_id);\nCREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL;\nCREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);\"\n2026-04-09|523\n2026-04-11|197\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name\nORDER BY frames DESC;\n\"\niTerm2|185|13.9\nDia|31|2.3\nSafari|20|1.5\nClaude|12|0.9\nUserNotificationCenter|4|0.3\nControl Centre|3|0.2\nSlack|2|0.1\nActivity Monitor|2|0.1\nFinder|1|0.1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT browser_url, COUNT(*) as frames\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND browser_url IS NOT NULL\nGROUP BY browser_url\nORDER BY frames DESC\nLIMIT 20;\n\"\nhttps://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21|13\nhttps://location-tracker.lakylak.xyz/dashboard|4\nhttps://nas.lakylak.xyz/desktop/?os=ugospro#/|2\nhttps://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, event_type, COUNT(*) as events\nFROM ui_events\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name, event_type\nORDER BY events DESC\nLIMIT 30;\n\"\niTerm2|click|283\nDia|click|171\niTerm2|key|122\nDia|key|56\nSafari|click|56\nClaude|click|50\niTerm2|app_switch|34\nDia|clipboard|17\nSafari|key|11\nClaude|app_switch|9\nDia|app_switch|9\nUserNotificationCenter|click|8\nClaude|key|6\niTerm2|clipboard|6\nUserNotificationCenter|app_switch|4\nSafari|app_switch|3\nSlack|app_switch|1\nSlack|click|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >.... \nWHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL\nGROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho \"\\n🕐\u0000 HOURLY TIMELINE\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY strftime('%H', timestamp), app_name\nORDER BY strftime('%H', timestamp), COUNT(*) DESC;\"\n\necho \"\\n📋\u0000 CLIPBOARD ACTIVITY\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL\nORDER BY timestamp LIMIT 20;\"\n\necho \"\\n💬\u0000 OCR TEXT SAMPLES PER APP\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))\nFROM ocr_text o\nJOIN frames f ON o.frame_id = f.id\nWHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''\nGROUP BY o.app_name\nORDER BY o.app_name LIMIT 15;\"\n\necho \"\\n🔢\u0000 TOTALS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT\n 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\n\"\nEOF\nchmod +x ~/screenpipe-day.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll \ntotal 162888\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 ..\n-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json\ndrwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data\n-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite\n-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal\ndrwxr-xr-x 8 lukas staff 256 9 Apr 19:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls\nApplications\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDocuments\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMovies\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPublic\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tjiminny\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe-day.sh\nCascadeProjects\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDownloads\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMusic\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUntitled 4.spf\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tnode_modules\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tyarn.lock\nDEV\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tKeychron_Screen\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPictures\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUsers\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traycast\nDesktop\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tLibrary\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPostman\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tiCloud Drive (Archive)\u0000\tresponse.bin\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll\ntotal 1272\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 .\ndrwxr-xr-x 5 root admin 160 23 Aug 2024 ..\n-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding\n-rw-r--r--@ 1 lukas staff 22532 11 Apr 11:15 .DS_Store\ndrwx------+ 2 lukas staff 64 11 Apr 11:15 .Trash\ndrwx------ 5 lukas staff 160 1 Nov 2021 .aws\n-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json\n-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .bashrc\ndrwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito\ndrwx------@ 6 lukas staff 192 9 Apr 19:53 .cache\ndrwxr-xr-x 20 lukas staff 640 9 Apr 21:21 .claude\n-rw------- 1 lukas staff 24973 9 Apr 21:24 .claude.json\ndrwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium\ndrwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer\ndrwx------ 16 lukas staff 512 21 May 2025 .config\ndrwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue\ndrwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot\ndrwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor\ndrwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor\ndrwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona\ndrwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb\ndrwx------ 24 lukas staff 768 9 Apr 18:24 .docker\ndrwx------ 15 lukas staff 480 6 Jun 2023 .dropbox\ndrwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak\n-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth\n-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig\n-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp\ndrwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon\ndrwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc\n-rw------- 1 lukas staff 20 31 Mar 18:32 .lesshst\ndrwx------ 5 lukas staff 160 23 Dec 2024 .local\n-rw------- 1 lukas staff 204 16 Mar 2024 .netrc\ndrwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp\n-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history\n-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer\ndrwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py\ndrwx------ 9 lukas staff 288 11 Apr 14:52 .npm\n-rw------- 1 lukas staff 74 20 May 2024 .npmrc\ndrwx------ 32 lukas staff 1024 25 Jul 2025 .nvm\ndrwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile\n-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history\ndrwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode\ndrwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .screenpipe\ndrwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint\ndrwx------ 15 lukas staff 480 8 Aug 2025 .ssh\ndrwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit\ndrwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm\n-rw------- 1 lukas staff 12183 8 Apr 19:14 .viminfo\ndrwx------ 5 lukas staff 160 19 Jun 2023 .vscode\ndrwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp\ndrwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm\ndrwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf\ndrwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn\n-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc\n-rw-r--r--@ 1 lukas staff 49518 6 Apr 14:31 .zcompdump\n-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381\n-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .zprofile\n-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy\n-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave\n-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save\n-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees\n-rw------- 1 lukas staff 28813 11 Apr 11:12 .zsh_history\ndrwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions\n-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc\ndrwx------@ 9 lukas staff 288 9 Apr 20:08 Applications\ndrwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects\ndrwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV\ndrwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop\ndrwx------@ 7 lukas staff 224 26 Mar 14:40 Documents\ndrwx------@ 41 lukas staff 1312 8 Apr 20:46 Downloads\ndrwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen\ndrwx------@ 112 lukas staff 3584 2 Dec 09:19 Library\ndrwx------ 7 lukas staff 224 12 Feb 2024 Movies\ndrwx------+ 5 lukas staff 160 25 Sep 2023 Music\ndrwx------+ 9 lukas staff 288 25 Sep 2023 Pictures\ndrwx------ 3 lukas staff 96 8 Nov 2021 Postman\ndrwx------+ 4 lukas staff 128 28 Oct 2021 Public\n-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf\ndrwx------ 4 lukas staff 128 2 Jul 2023 Users\ndrwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)\ndrwx------ 16 lukas staff 512 3 Nov 11:35 jiminny\ndrwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules\ndrwxr-xr-x 4 lukas staff 128 21 Oct 18:15 raycast\n-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin\n-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh\n-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ~/screenpipe-day.sh 2026-04-09\n═══════════════════════════════════════\n SCREENPIPE REPORT — 2026-04-09\n═══════════════════════════════════════\n\n📱\u0000 APP USAGE (frames + estimated time)\n───────────────────────────────────────\niTerm2 185 frames ~ 13.9 min\nDia 31 frames ~ 2.3 min\nSafari 20 frames ~ 1.5 min\nClaude 12 frames ~ 0.9 min\nUserNotificationCenter 4 frames ~ 0.3 min\nControl Centre 3 frames ~ 0.2 min\nSlack 2 frames ~ 0.1 min\nActivity Monitor 2 frames ~ 0.1 min\nFinder 1 frames ~ 0.1 min\n\n⌨️\u0000 ACTIVITY TYPE PER APP (clicks / keys / switches)\n───────────────────────────────────────\niTerm2 clicks:283 keys:122 switches:34 \nDia clicks:171 keys:56 switches:9 \nSafari clicks:56 keys:11 switches:3 \nClaude clicks:50 keys:6 switches:9 \nUserNotificationCenter clicks:8 keys:0 switches:4 \nSlack clicks:1 keys:0 switches:1 \n\n🌐\u0000 BROWSER URLS VISITED\n───────────────────────────────────────\n 13 frames https://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21\n 4 frames https://location-tracker.lakylak.xyz/dashboard\n 2 frames https://nas.lakylak.xyz/desktop/?os=ugospro#/\n 1 frames https://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b\n\n🪟\u0000 WINDOW TITLES (top 20)\n───────────────────────────────────────\niTerm2 93 -zsh\niTerm2 34 screenpipe\"\nSafari 13 Order Room Service • HBO Max\nClaude 12 Claude\niTerm2 8 ✳ Find cheapest WD Red Plus 6TB price\nDia 7 Personal: New Tab\niTerm2 7 ✳ Claude Code\niTerm2 7 ⠂ Find cheapest WD Red Plus 6TB price\niTerm2 7 ⠂ Research Western Digital Red Plus pricing\niTerm2 7 ⠐ Research Western Digital Red Plus pricing\nDia 6 Personal: GitHub - scree…\niTerm2 5 ✳ Research Western Digital Red Plus pricing\nSafari 4 Location Logger\nUserNotificationCenter 4 \niTerm2 4 nano\niTerm2 4 ⠐ Find cheapest WD Red Plus 6TB price\nControl Centre 3 Control Centre\nDia 3 Personal: Western Digita…\niTerm2 3 ✳ Check today's app usage\nActivity Monitor 2 Activity Monitor – All Processes\n\n🕐\u0000 HOURLY TIMELINE\n───────────────────────────────────────\n16:00 iTerm2 14 frames\n16:00 Safari 4 frames\n16:00 Dia 3 frames\n16:00 Control Centre 2 frames\n16:00 Activity Monitor 2 frames\n17:00 iTerm2 116 frames\n17:00 Dia 24 frames\n17:00 Safari 16 frames\n17:00 Claude 8 frames\n17:00 UserNotificationCenter 4 frames\n17:00 Finder 1 frames\n17:00 Control Centre 1 frames\n18:00 iTerm2 55 frames\n18:00 Dia 4 frames\n18:00 Claude 4 frames\n18:00 Slack 2 frames\n\n📋\u0000 CLIPBOARD ACTIVITY\n───────────────────────────────────────\niTerm2 claude mcp add screenpipe -- npx -y screenpipe-mcp\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\nDia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","depth":4,"value":")\n/* frames_fts(full_text,app_name,window_name,browser_url,id) */;\nCREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;\nCREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);\nCREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;\nCREATE TRIGGER frames_ai AFTER INSERT ON frames\nWHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''\nBEGIN\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n VALUES (\n NEW.id,\n NEW.full_text,\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n );\nEND;\nCREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n SELECT\n NEW.id,\n COALESCE(NEW.full_text, ''),\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';\nEND;\nCREATE TRIGGER frames_ad AFTER DELETE ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\nEND;\nCREATE INDEX idx_memories_frame_id ON memories(frame_id);\nCREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL;\nCREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);\"\n2026-04-09|523\n2026-04-11|197\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name\nORDER BY frames DESC;\n\"\niTerm2|185|13.9\nDia|31|2.3\nSafari|20|1.5\nClaude|12|0.9\nUserNotificationCenter|4|0.3\nControl Centre|3|0.2\nSlack|2|0.1\nActivity Monitor|2|0.1\nFinder|1|0.1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT browser_url, COUNT(*) as frames\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND browser_url IS NOT NULL\nGROUP BY browser_url\nORDER BY frames DESC\nLIMIT 20;\n\"\nhttps://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21|13\nhttps://location-tracker.lakylak.xyz/dashboard|4\nhttps://nas.lakylak.xyz/desktop/?os=ugospro#/|2\nhttps://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, event_type, COUNT(*) as events\nFROM ui_events\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name, event_type\nORDER BY events DESC\nLIMIT 30;\n\"\niTerm2|click|283\nDia|click|171\niTerm2|key|122\nDia|key|56\nSafari|click|56\nClaude|click|50\niTerm2|app_switch|34\nDia|clipboard|17\nSafari|key|11\nClaude|app_switch|9\nDia|app_switch|9\nUserNotificationCenter|click|8\nClaude|key|6\niTerm2|clipboard|6\nUserNotificationCenter|app_switch|4\nSafari|app_switch|3\nSlack|app_switch|1\nSlack|click|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >.... \nWHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL\nGROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho \"\\n🕐\u0000 HOURLY TIMELINE\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY strftime('%H', timestamp), app_name\nORDER BY strftime('%H', timestamp), COUNT(*) DESC;\"\n\necho \"\\n📋\u0000 CLIPBOARD ACTIVITY\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL\nORDER BY timestamp LIMIT 20;\"\n\necho \"\\n💬\u0000 OCR TEXT SAMPLES PER APP\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))\nFROM ocr_text o\nJOIN frames f ON o.frame_id = f.id\nWHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''\nGROUP BY o.app_name\nORDER BY o.app_name LIMIT 15;\"\n\necho \"\\n🔢\u0000 TOTALS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT\n 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\n\"\nEOF\nchmod +x ~/screenpipe-day.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll \ntotal 162888\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 ..\n-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json\ndrwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data\n-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite\n-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal\ndrwxr-xr-x 8 lukas staff 256 9 Apr 19:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls\nApplications\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDocuments\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMovies\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPublic\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tjiminny\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe-day.sh\nCascadeProjects\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDownloads\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMusic\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUntitled 4.spf\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tnode_modules\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tyarn.lock\nDEV\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tKeychron_Screen\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPictures\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUsers\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traycast\nDesktop\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tLibrary\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPostman\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tiCloud Drive (Archive)\u0000\tresponse.bin\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll\ntotal 1272\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 .\ndrwxr-xr-x 5 root admin 160 23 Aug 2024 ..\n-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding\n-rw-r--r--@ 1 lukas staff 22532 11 Apr 11:15 .DS_Store\ndrwx------+ 2 lukas staff 64 11 Apr 11:15 .Trash\ndrwx------ 5 lukas staff 160 1 Nov 2021 .aws\n-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json\n-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .bashrc\ndrwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito\ndrwx------@ 6 lukas staff 192 9 Apr 19:53 .cache\ndrwxr-xr-x 20 lukas staff 640 9 Apr 21:21 .claude\n-rw------- 1 lukas staff 24973 9 Apr 21:24 .claude.json\ndrwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium\ndrwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer\ndrwx------ 16 lukas staff 512 21 May 2025 .config\ndrwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue\ndrwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot\ndrwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor\ndrwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor\ndrwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona\ndrwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb\ndrwx------ 24 lukas staff 768 9 Apr 18:24 .docker\ndrwx------ 15 lukas staff 480 6 Jun 2023 .dropbox\ndrwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak\n-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth\n-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig\n-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp\ndrwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon\ndrwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc\n-rw------- 1 lukas staff 20 31 Mar 18:32 .lesshst\ndrwx------ 5 lukas staff 160 23 Dec 2024 .local\n-rw------- 1 lukas staff 204 16 Mar 2024 .netrc\ndrwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp\n-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history\n-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer\ndrwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py\ndrwx------ 9 lukas staff 288 11 Apr 14:52 .npm\n-rw------- 1 lukas staff 74 20 May 2024 .npmrc\ndrwx------ 32 lukas staff 1024 25 Jul 2025 .nvm\ndrwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile\n-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history\ndrwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode\ndrwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .screenpipe\ndrwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint\ndrwx------ 15 lukas staff 480 8 Aug 2025 .ssh\ndrwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit\ndrwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm\n-rw------- 1 lukas staff 12183 8 Apr 19:14 .viminfo\ndrwx------ 5 lukas staff 160 19 Jun 2023 .vscode\ndrwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp\ndrwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm\ndrwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf\ndrwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn\n-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc\n-rw-r--r--@ 1 lukas staff 49518 6 Apr 14:31 .zcompdump\n-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381\n-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .zprofile\n-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy\n-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave\n-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save\n-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees\n-rw------- 1 lukas staff 28813 11 Apr 11:12 .zsh_history\ndrwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions\n-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc\ndrwx------@ 9 lukas staff 288 9 Apr 20:08 Applications\ndrwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects\ndrwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV\ndrwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop\ndrwx------@ 7 lukas staff 224 26 Mar 14:40 Documents\ndrwx------@ 41 lukas staff 1312 8 Apr 20:46 Downloads\ndrwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen\ndrwx------@ 112 lukas staff 3584 2 Dec 09:19 Library\ndrwx------ 7 lukas staff 224 12 Feb 2024 Movies\ndrwx------+ 5 lukas staff 160 25 Sep 2023 Music\ndrwx------+ 9 lukas staff 288 25 Sep 2023 Pictures\ndrwx------ 3 lukas staff 96 8 Nov 2021 Postman\ndrwx------+ 4 lukas staff 128 28 Oct 2021 Public\n-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf\ndrwx------ 4 lukas staff 128 2 Jul 2023 Users\ndrwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)\ndrwx------ 16 lukas staff 512 3 Nov 11:35 jiminny\ndrwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules\ndrwxr-xr-x 4 lukas staff 128 21 Oct 18:15 raycast\n-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin\n-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh\n-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ~/screenpipe-day.sh 2026-04-09\n═══════════════════════════════════════\n SCREENPIPE REPORT — 2026-04-09\n═══════════════════════════════════════\n\n📱\u0000 APP USAGE (frames + estimated time)\n───────────────────────────────────────\niTerm2 185 frames ~ 13.9 min\nDia 31 frames ~ 2.3 min\nSafari 20 frames ~ 1.5 min\nClaude 12 frames ~ 0.9 min\nUserNotificationCenter 4 frames ~ 0.3 min\nControl Centre 3 frames ~ 0.2 min\nSlack 2 frames ~ 0.1 min\nActivity Monitor 2 frames ~ 0.1 min\nFinder 1 frames ~ 0.1 min\n\n⌨️\u0000 ACTIVITY TYPE PER APP (clicks / keys / switches)\n───────────────────────────────────────\niTerm2 clicks:283 keys:122 switches:34 \nDia clicks:171 keys:56 switches:9 \nSafari clicks:56 keys:11 switches:3 \nClaude clicks:50 keys:6 switches:9 \nUserNotificationCenter clicks:8 keys:0 switches:4 \nSlack clicks:1 keys:0 switches:1 \n\n🌐\u0000 BROWSER URLS VISITED\n───────────────────────────────────────\n 13 frames https://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21\n 4 frames https://location-tracker.lakylak.xyz/dashboard\n 2 frames https://nas.lakylak.xyz/desktop/?os=ugospro#/\n 1 frames https://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b\n\n🪟\u0000 WINDOW TITLES (top 20)\n───────────────────────────────────────\niTerm2 93 -zsh\niTerm2 34 screenpipe\"\nSafari 13 Order Room Service • HBO Max\nClaude 12 Claude\niTerm2 8 ✳ Find cheapest WD Red Plus 6TB price\nDia 7 Personal: New Tab\niTerm2 7 ✳ Claude Code\niTerm2 7 ⠂ Find cheapest WD Red Plus 6TB price\niTerm2 7 ⠂ Research Western Digital Red Plus pricing\niTerm2 7 ⠐ Research Western Digital Red Plus pricing\nDia 6 Personal: GitHub - scree…\niTerm2 5 ✳ Research Western Digital Red Plus pricing\nSafari 4 Location Logger\nUserNotificationCenter 4 \niTerm2 4 nano\niTerm2 4 ⠐ Find cheapest WD Red Plus 6TB price\nControl Centre 3 Control Centre\nDia 3 Personal: Western Digita…\niTerm2 3 ✳ Check today's app usage\nActivity Monitor 2 Activity Monitor – All Processes\n\n🕐\u0000 HOURLY TIMELINE\n───────────────────────────────────────\n16:00 iTerm2 14 frames\n16:00 Safari 4 frames\n16:00 Dia 3 frames\n16:00 Control Centre 2 frames\n16:00 Activity Monitor 2 frames\n17:00 iTerm2 116 frames\n17:00 Dia 24 frames\n17:00 Safari 16 frames\n17:00 Claude 8 frames\n17:00 UserNotificationCenter 4 frames\n17:00 Finder 1 frames\n17:00 Control Centre 1 frames\n18:00 iTerm2 55 frames\n18:00 Dia 4 frames\n18:00 Claude 4 frames\n18:00 Slack 2 frames\n\n📋\u0000 CLIPBOARD ACTIVITY\n───────────────────────────────────────\niTerm2 claude mcp add screenpipe -- npx -y screenpipe-mcp\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\nDia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
-8513446901278255071
|
5648665612363427492
|
visual_change
|
accessibility
|
NULL
|
)
/* frames_fts(full_text,app_name,window_name,bro )
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);"
2026-04-09|523
2026-04-11|197
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name
ORDER BY frames DESC;
"
iTerm2|185|13.9
Dia|31|2.3
Safari|20|1.5
Claude|12|0.9
UserNotificationCenter|4|0.3
Control Centre|3|0.2
Slack|2|0.1
Activity Monitor|2|0.1
Finder|1|0.1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT browser_url, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND browser_url IS NOT NULL
GROUP BY browser_url
ORDER BY frames DESC
LIMIT 20;
"
[URL_WITH_CREDENTIALS] ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, event_type, COUNT(*) as events
FROM ui_events
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name, event_type
ORDER BY events DESC
LIMIT 30;
"
iTerm2|click|283
Dia|click|171
iTerm2|key|122
Dia|key|56
Safari|click|56
Claude|click|50
iTerm2|app_switch|34
Dia|clipboard|17
Safari|key|11
Claude|app_switch|9
Dia|app_switch|9
UserNotificationCenter|click|8
Claude|key|6
iTerm2|clipboard|6
UserNotificationCenter|app_switch|4
Safari|app_switch|3
Slack|app_switch|1
Slack|click|1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >....
WHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL
GROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;"
echo "\n🕐 HOURLY TIMELINE"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY strftime('%H', timestamp), app_name
ORDER BY strftime('%H', timestamp), COUNT(*) DESC;"
echo "\n📋 CLIPBOARD ACTIVITY"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL
ORDER BY timestamp LIMIT 20;"
echo "\n💬 OCR TEXT SAMPLES PER APP"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))
FROM ocr_text o
JOIN frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''
GROUP BY o.app_name
ORDER BY o.app_name LIMIT 15;"
echo "\n🔢 TOTALS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT
'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
"
EOF
chmod +x ~/screenpipe-day.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 162888
drwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .
drwx------+ 89 lukas staff 2848 11 Apr 15:16 ..
-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite
-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256 9 Apr 19: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 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls
Applications Documents Movies Public jiminny screenpipe-day.sh
CascadeProjects Downloads Music Untitled 4.spf node_modules yarn.lock
DEV Keychron_Screen Pictures Users raycast
Desktop Library Postman iCloud Drive (Archive) response.bin
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 1272
drwx------+ 89 lukas staff 2848 11 Apr 15:16 .
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 22532 11 Apr 11:15 .DS_Store
drwx------+ 2 lukas staff 64 11 Apr 11:15 .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 77 9 Feb 2023 .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 9 Apr 21:21 .claude
-rw------- 1 lukas staff 24973 9 Apr 21:24 .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 9 Apr 18:24 .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 31 Mar 18:32 .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------ 9 lukas staff 288 11 Apr 14:52 .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 10 lukas staff 320 11 Apr 14:52 .screenpipe
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 12183 8 Apr 19:14 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
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 6 Apr 14:31 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .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 28813 11 Apr 11:12 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc
drwx------@ 9 lukas staff 288 9 Apr 20:08 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV
drwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 41 lukas staff 1312 8 Apr 20:46 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
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 11:35 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 18:15 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 ~ $ ~/screenpipe-day.sh 2026-04-09
═══════════════════════════════════════
SCREENPIPE REPORT — 2026-04-09
═══════════════════════════════════════
📱 APP USAGE (frames + estimated time)
───────────────────────────────────────
iTerm2 185 frames ~ 13.9 min
Dia 31 frames ~ 2.3 min
Safari 20 frames ~ 1.5 min
Claude 12 frames ~ 0.9 min
UserNotificationCenter 4 frames ~ 0.3 min
Control Centre 3 frames ~ 0.2 min
Slack 2 frames ~ 0.1 min
Activity Monitor 2 frames ~ 0.1 min
Finder 1 frames ~ 0.1 min
⌨️ ACTIVITY TYPE PER APP (clicks / keys / switches)
───────────────────────────────────────
iTerm2 clicks:283 keys:122 switches:34
Dia clicks:171 keys:56 switches:9
Safari clicks:56 keys:11 switches:3
Claude clicks:50 keys:6 switches:9
UserNotificationCenter clicks:8 keys:0 switches:4
Slack clicks:1 keys:0 switches:1
🌐 BROWSER URLS VISITED
───────────────────────────────────────
13 frames [URL_WITH_CREDENTIALS] ~ $ claude mcp add screenpipe -- npx -y
Dia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
NULL
|
|
772
|
19
|
3
|
2026-04-11T12:19:53.552637+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775909993552_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
)
/* frames_fts(full_text,app_name,window_name,bro )
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);"
2026-04-09|523
2026-04-11|197
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name
ORDER BY frames DESC;
"
iTerm2|185|13.9
Dia|31|2.3
Safari|20|1.5
Claude|12|0.9
UserNotificationCenter|4|0.3
Control Centre|3|0.2
Slack|2|0.1
Activity Monitor|2|0.1
Finder|1|0.1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT browser_url, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND browser_url IS NOT NULL
GROUP BY browser_url
ORDER BY frames DESC
LIMIT 20;
"
[URL_WITH_CREDENTIALS] ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, event_type, COUNT(*) as events
FROM ui_events
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name, event_type
ORDER BY events DESC
LIMIT 30;
"
iTerm2|click|283
Dia|click|171
iTerm2|key|122
Dia|key|56
Safari|click|56
Claude|click|50
iTerm2|app_switch|34
Dia|clipboard|17
Safari|key|11
Claude|app_switch|9
Dia|app_switch|9
UserNotificationCenter|click|8
Claude|key|6
iTerm2|clipboard|6
UserNotificationCenter|app_switch|4
Safari|app_switch|3
Slack|app_switch|1
Slack|click|1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >....
WHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL
GROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;"
echo "\n🕐 HOURLY TIMELINE"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY strftime('%H', timestamp), app_name
ORDER BY strftime('%H', timestamp), COUNT(*) DESC;"
echo "\n📋 CLIPBOARD ACTIVITY"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL
ORDER BY timestamp LIMIT 20;"
echo "\n💬 OCR TEXT SAMPLES PER APP"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))
FROM ocr_text o
JOIN frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''
GROUP BY o.app_name
ORDER BY o.app_name LIMIT 15;"
echo "\n🔢 TOTALS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT
'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
"
EOF
chmod +x ~/screenpipe-day.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 162888
drwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .
drwx------+ 89 lukas staff 2848 11 Apr 15:16 ..
-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite
-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256 9 Apr 19: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 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls
Applications Documents Movies Public jiminny screenpipe-day.sh
CascadeProjects Downloads Music Untitled 4.spf node_modules yarn.lock
DEV Keychron_Screen Pictures Users raycast
Desktop Library Postman iCloud Drive (Archive) response.bin
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 1272
drwx------+ 89 lukas staff 2848 11 Apr 15:16 .
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 22532 11 Apr 11:15 .DS_Store
drwx------+ 2 lukas staff 64 11 Apr 11:15 .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 77 9 Feb 2023 .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 9 Apr 21:21 .claude
-rw------- 1 lukas staff 24973 9 Apr 21:24 .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 9 Apr 18:24 .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 31 Mar 18:32 .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------ 9 lukas staff 288 11 Apr 14:52 .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 10 lukas staff 320 11 Apr 14:52 .screenpipe
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 12183 8 Apr 19:14 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
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 6 Apr 14:31 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .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 28813 11 Apr 11:12 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc
drwx------@ 9 lukas staff 288 9 Apr 20:08 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV
drwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 41 lukas staff 1312 8 Apr 20:46 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
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 11:35 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 18:15 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 ~ $ ~/screenpipe-day.sh 2026-04-09
═══════════════════════════════════════
SCREENPIPE REPORT — 2026-04-09
═══════════════════════════════════════
📱 APP USAGE (frames + estimated time)
───────────────────────────────────────
iTerm2 185 frames ~ 13.9 min
Dia 31 frames ~ 2.3 min
Safari 20 frames ~ 1.5 min
Claude 12 frames ~ 0.9 min
UserNotificationCenter 4 frames ~ 0.3 min
Control Centre 3 frames ~ 0.2 min
Slack 2 frames ~ 0.1 min
Activity Monitor 2 frames ~ 0.1 min
Finder 1 frames ~ 0.1 min
⌨️ ACTIVITY TYPE PER APP (clicks / keys / switches)
───────────────────────────────────────
iTerm2 clicks:283 keys:122 switches:34
Dia clicks:171 keys:56 switches:9
Safari clicks:56 keys:11 switches:3
Claude clicks:50 keys:6 switches:9
UserNotificationCenter clicks:8 keys:0 switches:4
Slack clicks:1 keys:0 switches:1
🌐 BROWSER URLS VISITED
───────────────────────────────────────
13 frames [URL_WITH_CREDENTIALS] ~ $ claude mcp add screenpipe -- npx -y
Dia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":")\n/* frames_fts(full_text,app_name,window_name,browser_url,id) */;\nCREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;\nCREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);\nCREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;\nCREATE TRIGGER frames_ai AFTER INSERT ON frames\nWHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''\nBEGIN\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n VALUES (\n NEW.id,\n NEW.full_text,\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n );\nEND;\nCREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n SELECT\n NEW.id,\n COALESCE(NEW.full_text, ''),\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';\nEND;\nCREATE TRIGGER frames_ad AFTER DELETE ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\nEND;\nCREATE INDEX idx_memories_frame_id ON memories(frame_id);\nCREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL;\nCREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);\"\n2026-04-09|523\n2026-04-11|197\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name\nORDER BY frames DESC;\n\"\niTerm2|185|13.9\nDia|31|2.3\nSafari|20|1.5\nClaude|12|0.9\nUserNotificationCenter|4|0.3\nControl Centre|3|0.2\nSlack|2|0.1\nActivity Monitor|2|0.1\nFinder|1|0.1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT browser_url, COUNT(*) as frames\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND browser_url IS NOT NULL\nGROUP BY browser_url\nORDER BY frames DESC\nLIMIT 20;\n\"\nhttps://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21|13\nhttps://location-tracker.lakylak.xyz/dashboard|4\nhttps://nas.lakylak.xyz/desktop/?os=ugospro#/|2\nhttps://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, event_type, COUNT(*) as events\nFROM ui_events\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name, event_type\nORDER BY events DESC\nLIMIT 30;\n\"\niTerm2|click|283\nDia|click|171\niTerm2|key|122\nDia|key|56\nSafari|click|56\nClaude|click|50\niTerm2|app_switch|34\nDia|clipboard|17\nSafari|key|11\nClaude|app_switch|9\nDia|app_switch|9\nUserNotificationCenter|click|8\nClaude|key|6\niTerm2|clipboard|6\nUserNotificationCenter|app_switch|4\nSafari|app_switch|3\nSlack|app_switch|1\nSlack|click|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >.... \nWHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL\nGROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho \"\\n🕐\u0000 HOURLY TIMELINE\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY strftime('%H', timestamp), app_name\nORDER BY strftime('%H', timestamp), COUNT(*) DESC;\"\n\necho \"\\n📋\u0000 CLIPBOARD ACTIVITY\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL\nORDER BY timestamp LIMIT 20;\"\n\necho \"\\n💬\u0000 OCR TEXT SAMPLES PER APP\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))\nFROM ocr_text o\nJOIN frames f ON o.frame_id = f.id\nWHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''\nGROUP BY o.app_name\nORDER BY o.app_name LIMIT 15;\"\n\necho \"\\n🔢\u0000 TOTALS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT\n 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\n\"\nEOF\nchmod +x ~/screenpipe-day.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll \ntotal 162888\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 ..\n-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json\ndrwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data\n-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite\n-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal\ndrwxr-xr-x 8 lukas staff 256 9 Apr 19:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls\nApplications\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDocuments\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMovies\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPublic\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tjiminny\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe-day.sh\nCascadeProjects\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDownloads\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMusic\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUntitled 4.spf\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tnode_modules\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tyarn.lock\nDEV\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tKeychron_Screen\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPictures\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUsers\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traycast\nDesktop\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tLibrary\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPostman\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tiCloud Drive (Archive)\u0000\tresponse.bin\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll\ntotal 1272\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 .\ndrwxr-xr-x 5 root admin 160 23 Aug 2024 ..\n-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding\n-rw-r--r--@ 1 lukas staff 22532 11 Apr 11:15 .DS_Store\ndrwx------+ 2 lukas staff 64 11 Apr 11:15 .Trash\ndrwx------ 5 lukas staff 160 1 Nov 2021 .aws\n-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json\n-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .bashrc\ndrwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito\ndrwx------@ 6 lukas staff 192 9 Apr 19:53 .cache\ndrwxr-xr-x 20 lukas staff 640 9 Apr 21:21 .claude\n-rw------- 1 lukas staff 24973 9 Apr 21:24 .claude.json\ndrwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium\ndrwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer\ndrwx------ 16 lukas staff 512 21 May 2025 .config\ndrwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue\ndrwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot\ndrwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor\ndrwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor\ndrwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona\ndrwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb\ndrwx------ 24 lukas staff 768 9 Apr 18:24 .docker\ndrwx------ 15 lukas staff 480 6 Jun 2023 .dropbox\ndrwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak\n-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth\n-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig\n-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp\ndrwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon\ndrwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc\n-rw------- 1 lukas staff 20 31 Mar 18:32 .lesshst\ndrwx------ 5 lukas staff 160 23 Dec 2024 .local\n-rw------- 1 lukas staff 204 16 Mar 2024 .netrc\ndrwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp\n-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history\n-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer\ndrwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py\ndrwx------ 9 lukas staff 288 11 Apr 14:52 .npm\n-rw------- 1 lukas staff 74 20 May 2024 .npmrc\ndrwx------ 32 lukas staff 1024 25 Jul 2025 .nvm\ndrwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile\n-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history\ndrwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode\ndrwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .screenpipe\ndrwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint\ndrwx------ 15 lukas staff 480 8 Aug 2025 .ssh\ndrwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit\ndrwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm\n-rw------- 1 lukas staff 12183 8 Apr 19:14 .viminfo\ndrwx------ 5 lukas staff 160 19 Jun 2023 .vscode\ndrwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp\ndrwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm\ndrwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf\ndrwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn\n-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc\n-rw-r--r--@ 1 lukas staff 49518 6 Apr 14:31 .zcompdump\n-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381\n-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .zprofile\n-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy\n-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave\n-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save\n-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees\n-rw------- 1 lukas staff 28813 11 Apr 11:12 .zsh_history\ndrwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions\n-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc\ndrwx------@ 9 lukas staff 288 9 Apr 20:08 Applications\ndrwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects\ndrwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV\ndrwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop\ndrwx------@ 7 lukas staff 224 26 Mar 14:40 Documents\ndrwx------@ 41 lukas staff 1312 8 Apr 20:46 Downloads\ndrwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen\ndrwx------@ 112 lukas staff 3584 2 Dec 09:19 Library\ndrwx------ 7 lukas staff 224 12 Feb 2024 Movies\ndrwx------+ 5 lukas staff 160 25 Sep 2023 Music\ndrwx------+ 9 lukas staff 288 25 Sep 2023 Pictures\ndrwx------ 3 lukas staff 96 8 Nov 2021 Postman\ndrwx------+ 4 lukas staff 128 28 Oct 2021 Public\n-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf\ndrwx------ 4 lukas staff 128 2 Jul 2023 Users\ndrwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)\ndrwx------ 16 lukas staff 512 3 Nov 11:35 jiminny\ndrwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules\ndrwxr-xr-x 4 lukas staff 128 21 Oct 18:15 raycast\n-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin\n-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh\n-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ~/screenpipe-day.sh 2026-04-09\n═══════════════════════════════════════\n SCREENPIPE REPORT — 2026-04-09\n═══════════════════════════════════════\n\n📱\u0000 APP USAGE (frames + estimated time)\n───────────────────────────────────────\niTerm2 185 frames ~ 13.9 min\nDia 31 frames ~ 2.3 min\nSafari 20 frames ~ 1.5 min\nClaude 12 frames ~ 0.9 min\nUserNotificationCenter 4 frames ~ 0.3 min\nControl Centre 3 frames ~ 0.2 min\nSlack 2 frames ~ 0.1 min\nActivity Monitor 2 frames ~ 0.1 min\nFinder 1 frames ~ 0.1 min\n\n⌨️\u0000 ACTIVITY TYPE PER APP (clicks / keys / switches)\n───────────────────────────────────────\niTerm2 clicks:283 keys:122 switches:34 \nDia clicks:171 keys:56 switches:9 \nSafari clicks:56 keys:11 switches:3 \nClaude clicks:50 keys:6 switches:9 \nUserNotificationCenter clicks:8 keys:0 switches:4 \nSlack clicks:1 keys:0 switches:1 \n\n🌐\u0000 BROWSER URLS VISITED\n───────────────────────────────────────\n 13 frames https://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21\n 4 frames https://location-tracker.lakylak.xyz/dashboard\n 2 frames https://nas.lakylak.xyz/desktop/?os=ugospro#/\n 1 frames https://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b\n\n🪟\u0000 WINDOW TITLES (top 20)\n───────────────────────────────────────\niTerm2 93 -zsh\niTerm2 34 screenpipe\"\nSafari 13 Order Room Service • HBO Max\nClaude 12 Claude\niTerm2 8 ✳ Find cheapest WD Red Plus 6TB price\nDia 7 Personal: New Tab\niTerm2 7 ✳ Claude Code\niTerm2 7 ⠂ Find cheapest WD Red Plus 6TB price\niTerm2 7 ⠂ Research Western Digital Red Plus pricing\niTerm2 7 ⠐ Research Western Digital Red Plus pricing\nDia 6 Personal: GitHub - scree…\niTerm2 5 ✳ Research Western Digital Red Plus pricing\nSafari 4 Location Logger\nUserNotificationCenter 4 \niTerm2 4 nano\niTerm2 4 ⠐ Find cheapest WD Red Plus 6TB price\nControl Centre 3 Control Centre\nDia 3 Personal: Western Digita…\niTerm2 3 ✳ Check today's app usage\nActivity Monitor 2 Activity Monitor – All Processes\n\n🕐\u0000 HOURLY TIMELINE\n───────────────────────────────────────\n16:00 iTerm2 14 frames\n16:00 Safari 4 frames\n16:00 Dia 3 frames\n16:00 Control Centre 2 frames\n16:00 Activity Monitor 2 frames\n17:00 iTerm2 116 frames\n17:00 Dia 24 frames\n17:00 Safari 16 frames\n17:00 Claude 8 frames\n17:00 UserNotificationCenter 4 frames\n17:00 Finder 1 frames\n17:00 Control Centre 1 frames\n18:00 iTerm2 55 frames\n18:00 Dia 4 frames\n18:00 Claude 4 frames\n18:00 Slack 2 frames\n\n📋\u0000 CLIPBOARD ACTIVITY\n───────────────────────────────────────\niTerm2 claude mcp add screenpipe -- npx -y screenpipe-mcp\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\nDia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","depth":4,"value":")\n/* frames_fts(full_text,app_name,window_name,browser_url,id) */;\nCREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;\nCREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);\nCREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;\nCREATE TRIGGER frames_ai AFTER INSERT ON frames\nWHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''\nBEGIN\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n VALUES (\n NEW.id,\n NEW.full_text,\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n );\nEND;\nCREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n SELECT\n NEW.id,\n COALESCE(NEW.full_text, ''),\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';\nEND;\nCREATE TRIGGER frames_ad AFTER DELETE ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\nEND;\nCREATE INDEX idx_memories_frame_id ON memories(frame_id);\nCREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL;\nCREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);\"\n2026-04-09|523\n2026-04-11|197\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name\nORDER BY frames DESC;\n\"\niTerm2|185|13.9\nDia|31|2.3\nSafari|20|1.5\nClaude|12|0.9\nUserNotificationCenter|4|0.3\nControl Centre|3|0.2\nSlack|2|0.1\nActivity Monitor|2|0.1\nFinder|1|0.1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT browser_url, COUNT(*) as frames\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND browser_url IS NOT NULL\nGROUP BY browser_url\nORDER BY frames DESC\nLIMIT 20;\n\"\nhttps://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21|13\nhttps://location-tracker.lakylak.xyz/dashboard|4\nhttps://nas.lakylak.xyz/desktop/?os=ugospro#/|2\nhttps://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, event_type, COUNT(*) as events\nFROM ui_events\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name, event_type\nORDER BY events DESC\nLIMIT 30;\n\"\niTerm2|click|283\nDia|click|171\niTerm2|key|122\nDia|key|56\nSafari|click|56\nClaude|click|50\niTerm2|app_switch|34\nDia|clipboard|17\nSafari|key|11\nClaude|app_switch|9\nDia|app_switch|9\nUserNotificationCenter|click|8\nClaude|key|6\niTerm2|clipboard|6\nUserNotificationCenter|app_switch|4\nSafari|app_switch|3\nSlack|app_switch|1\nSlack|click|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >.... \nWHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL\nGROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho \"\\n🕐\u0000 HOURLY TIMELINE\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY strftime('%H', timestamp), app_name\nORDER BY strftime('%H', timestamp), COUNT(*) DESC;\"\n\necho \"\\n📋\u0000 CLIPBOARD ACTIVITY\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL\nORDER BY timestamp LIMIT 20;\"\n\necho \"\\n💬\u0000 OCR TEXT SAMPLES PER APP\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))\nFROM ocr_text o\nJOIN frames f ON o.frame_id = f.id\nWHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''\nGROUP BY o.app_name\nORDER BY o.app_name LIMIT 15;\"\n\necho \"\\n🔢\u0000 TOTALS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT\n 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\n\"\nEOF\nchmod +x ~/screenpipe-day.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll \ntotal 162888\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 ..\n-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json\ndrwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data\n-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite\n-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal\ndrwxr-xr-x 8 lukas staff 256 9 Apr 19:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls\nApplications\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDocuments\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMovies\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPublic\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tjiminny\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe-day.sh\nCascadeProjects\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDownloads\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMusic\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUntitled 4.spf\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tnode_modules\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tyarn.lock\nDEV\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tKeychron_Screen\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPictures\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUsers\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traycast\nDesktop\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tLibrary\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPostman\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tiCloud Drive (Archive)\u0000\tresponse.bin\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll\ntotal 1272\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 .\ndrwxr-xr-x 5 root admin 160 23 Aug 2024 ..\n-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding\n-rw-r--r--@ 1 lukas staff 22532 11 Apr 11:15 .DS_Store\ndrwx------+ 2 lukas staff 64 11 Apr 11:15 .Trash\ndrwx------ 5 lukas staff 160 1 Nov 2021 .aws\n-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json\n-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .bashrc\ndrwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito\ndrwx------@ 6 lukas staff 192 9 Apr 19:53 .cache\ndrwxr-xr-x 20 lukas staff 640 9 Apr 21:21 .claude\n-rw------- 1 lukas staff 24973 9 Apr 21:24 .claude.json\ndrwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium\ndrwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer\ndrwx------ 16 lukas staff 512 21 May 2025 .config\ndrwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue\ndrwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot\ndrwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor\ndrwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor\ndrwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona\ndrwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb\ndrwx------ 24 lukas staff 768 9 Apr 18:24 .docker\ndrwx------ 15 lukas staff 480 6 Jun 2023 .dropbox\ndrwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak\n-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth\n-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig\n-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp\ndrwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon\ndrwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc\n-rw------- 1 lukas staff 20 31 Mar 18:32 .lesshst\ndrwx------ 5 lukas staff 160 23 Dec 2024 .local\n-rw------- 1 lukas staff 204 16 Mar 2024 .netrc\ndrwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp\n-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history\n-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer\ndrwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py\ndrwx------ 9 lukas staff 288 11 Apr 14:52 .npm\n-rw------- 1 lukas staff 74 20 May 2024 .npmrc\ndrwx------ 32 lukas staff 1024 25 Jul 2025 .nvm\ndrwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile\n-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history\ndrwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode\ndrwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .screenpipe\ndrwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint\ndrwx------ 15 lukas staff 480 8 Aug 2025 .ssh\ndrwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit\ndrwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm\n-rw------- 1 lukas staff 12183 8 Apr 19:14 .viminfo\ndrwx------ 5 lukas staff 160 19 Jun 2023 .vscode\ndrwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp\ndrwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm\ndrwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf\ndrwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn\n-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc\n-rw-r--r--@ 1 lukas staff 49518 6 Apr 14:31 .zcompdump\n-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381\n-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .zprofile\n-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy\n-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave\n-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save\n-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees\n-rw------- 1 lukas staff 28813 11 Apr 11:12 .zsh_history\ndrwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions\n-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc\ndrwx------@ 9 lukas staff 288 9 Apr 20:08 Applications\ndrwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects\ndrwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV\ndrwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop\ndrwx------@ 7 lukas staff 224 26 Mar 14:40 Documents\ndrwx------@ 41 lukas staff 1312 8 Apr 20:46 Downloads\ndrwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen\ndrwx------@ 112 lukas staff 3584 2 Dec 09:19 Library\ndrwx------ 7 lukas staff 224 12 Feb 2024 Movies\ndrwx------+ 5 lukas staff 160 25 Sep 2023 Music\ndrwx------+ 9 lukas staff 288 25 Sep 2023 Pictures\ndrwx------ 3 lukas staff 96 8 Nov 2021 Postman\ndrwx------+ 4 lukas staff 128 28 Oct 2021 Public\n-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf\ndrwx------ 4 lukas staff 128 2 Jul 2023 Users\ndrwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)\ndrwx------ 16 lukas staff 512 3 Nov 11:35 jiminny\ndrwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules\ndrwxr-xr-x 4 lukas staff 128 21 Oct 18:15 raycast\n-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin\n-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh\n-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ~/screenpipe-day.sh 2026-04-09\n═══════════════════════════════════════\n SCREENPIPE REPORT — 2026-04-09\n═══════════════════════════════════════\n\n📱\u0000 APP USAGE (frames + estimated time)\n───────────────────────────────────────\niTerm2 185 frames ~ 13.9 min\nDia 31 frames ~ 2.3 min\nSafari 20 frames ~ 1.5 min\nClaude 12 frames ~ 0.9 min\nUserNotificationCenter 4 frames ~ 0.3 min\nControl Centre 3 frames ~ 0.2 min\nSlack 2 frames ~ 0.1 min\nActivity Monitor 2 frames ~ 0.1 min\nFinder 1 frames ~ 0.1 min\n\n⌨️\u0000 ACTIVITY TYPE PER APP (clicks / keys / switches)\n───────────────────────────────────────\niTerm2 clicks:283 keys:122 switches:34 \nDia clicks:171 keys:56 switches:9 \nSafari clicks:56 keys:11 switches:3 \nClaude clicks:50 keys:6 switches:9 \nUserNotificationCenter clicks:8 keys:0 switches:4 \nSlack clicks:1 keys:0 switches:1 \n\n🌐\u0000 BROWSER URLS VISITED\n───────────────────────────────────────\n 13 frames https://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21\n 4 frames https://location-tracker.lakylak.xyz/dashboard\n 2 frames https://nas.lakylak.xyz/desktop/?os=ugospro#/\n 1 frames https://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b\n\n🪟\u0000 WINDOW TITLES (top 20)\n───────────────────────────────────────\niTerm2 93 -zsh\niTerm2 34 screenpipe\"\nSafari 13 Order Room Service • HBO Max\nClaude 12 Claude\niTerm2 8 ✳ Find cheapest WD Red Plus 6TB price\nDia 7 Personal: New Tab\niTerm2 7 ✳ Claude Code\niTerm2 7 ⠂ Find cheapest WD Red Plus 6TB price\niTerm2 7 ⠂ Research Western Digital Red Plus pricing\niTerm2 7 ⠐ Research Western Digital Red Plus pricing\nDia 6 Personal: GitHub - scree…\niTerm2 5 ✳ Research Western Digital Red Plus pricing\nSafari 4 Location Logger\nUserNotificationCenter 4 \niTerm2 4 nano\niTerm2 4 ⠐ Find cheapest WD Red Plus 6TB price\nControl Centre 3 Control Centre\nDia 3 Personal: Western Digita…\niTerm2 3 ✳ Check today's app usage\nActivity Monitor 2 Activity Monitor – All Processes\n\n🕐\u0000 HOURLY TIMELINE\n───────────────────────────────────────\n16:00 iTerm2 14 frames\n16:00 Safari 4 frames\n16:00 Dia 3 frames\n16:00 Control Centre 2 frames\n16:00 Activity Monitor 2 frames\n17:00 iTerm2 116 frames\n17:00 Dia 24 frames\n17:00 Safari 16 frames\n17:00 Claude 8 frames\n17:00 UserNotificationCenter 4 frames\n17:00 Finder 1 frames\n17:00 Control Centre 1 frames\n18:00 iTerm2 55 frames\n18:00 Dia 4 frames\n18:00 Claude 4 frames\n18:00 Slack 2 frames\n\n📋\u0000 CLIPBOARD ACTIVITY\n───────────────────────────────────────\niTerm2 claude mcp add screenpipe -- npx -y screenpipe-mcp\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\nDia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
-8513446901278255071
|
5648665612363427492
|
visual_change
|
accessibility
|
NULL
|
)
/* frames_fts(full_text,app_name,window_name,bro )
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);"
2026-04-09|523
2026-04-11|197
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name
ORDER BY frames DESC;
"
iTerm2|185|13.9
Dia|31|2.3
Safari|20|1.5
Claude|12|0.9
UserNotificationCenter|4|0.3
Control Centre|3|0.2
Slack|2|0.1
Activity Monitor|2|0.1
Finder|1|0.1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT browser_url, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND browser_url IS NOT NULL
GROUP BY browser_url
ORDER BY frames DESC
LIMIT 20;
"
[URL_WITH_CREDENTIALS] ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, event_type, COUNT(*) as events
FROM ui_events
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name, event_type
ORDER BY events DESC
LIMIT 30;
"
iTerm2|click|283
Dia|click|171
iTerm2|key|122
Dia|key|56
Safari|click|56
Claude|click|50
iTerm2|app_switch|34
Dia|clipboard|17
Safari|key|11
Claude|app_switch|9
Dia|app_switch|9
UserNotificationCenter|click|8
Claude|key|6
iTerm2|clipboard|6
UserNotificationCenter|app_switch|4
Safari|app_switch|3
Slack|app_switch|1
Slack|click|1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >....
WHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL
GROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;"
echo "\n🕐 HOURLY TIMELINE"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY strftime('%H', timestamp), app_name
ORDER BY strftime('%H', timestamp), COUNT(*) DESC;"
echo "\n📋 CLIPBOARD ACTIVITY"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL
ORDER BY timestamp LIMIT 20;"
echo "\n💬 OCR TEXT SAMPLES PER APP"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))
FROM ocr_text o
JOIN frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''
GROUP BY o.app_name
ORDER BY o.app_name LIMIT 15;"
echo "\n🔢 TOTALS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT
'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
"
EOF
chmod +x ~/screenpipe-day.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 162888
drwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .
drwx------+ 89 lukas staff 2848 11 Apr 15:16 ..
-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite
-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256 9 Apr 19: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 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls
Applications Documents Movies Public jiminny screenpipe-day.sh
CascadeProjects Downloads Music Untitled 4.spf node_modules yarn.lock
DEV Keychron_Screen Pictures Users raycast
Desktop Library Postman iCloud Drive (Archive) response.bin
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 1272
drwx------+ 89 lukas staff 2848 11 Apr 15:16 .
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 22532 11 Apr 11:15 .DS_Store
drwx------+ 2 lukas staff 64 11 Apr 11:15 .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 77 9 Feb 2023 .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 9 Apr 21:21 .claude
-rw------- 1 lukas staff 24973 9 Apr 21:24 .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 9 Apr 18:24 .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 31 Mar 18:32 .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------ 9 lukas staff 288 11 Apr 14:52 .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 10 lukas staff 320 11 Apr 14:52 .screenpipe
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 12183 8 Apr 19:14 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
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 6 Apr 14:31 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .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 28813 11 Apr 11:12 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc
drwx------@ 9 lukas staff 288 9 Apr 20:08 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV
drwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 41 lukas staff 1312 8 Apr 20:46 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
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 11:35 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 18:15 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 ~ $ ~/screenpipe-day.sh 2026-04-09
═══════════════════════════════════════
SCREENPIPE REPORT — 2026-04-09
═══════════════════════════════════════
📱 APP USAGE (frames + estimated time)
───────────────────────────────────────
iTerm2 185 frames ~ 13.9 min
Dia 31 frames ~ 2.3 min
Safari 20 frames ~ 1.5 min
Claude 12 frames ~ 0.9 min
UserNotificationCenter 4 frames ~ 0.3 min
Control Centre 3 frames ~ 0.2 min
Slack 2 frames ~ 0.1 min
Activity Monitor 2 frames ~ 0.1 min
Finder 1 frames ~ 0.1 min
⌨️ ACTIVITY TYPE PER APP (clicks / keys / switches)
───────────────────────────────────────
iTerm2 clicks:283 keys:122 switches:34
Dia clicks:171 keys:56 switches:9
Safari clicks:56 keys:11 switches:3
Claude clicks:50 keys:6 switches:9
UserNotificationCenter clicks:8 keys:0 switches:4
Slack clicks:1 keys:0 switches:1
🌐 BROWSER URLS VISITED
───────────────────────────────────────
13 frames [URL_WITH_CREDENTIALS] ~ $ claude mcp add screenpipe -- npx -y
Dia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
NULL
|
|
774
|
19
|
5
|
2026-04-11T12:19:59.593870+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775909999593_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% <7-zsh17:0017:0017:0017:0018:0018:0018:0018:00DOCKERO ₴1ClaudeUserNotificationCenterFinderControl CentreiTerm2DiaClaudeSlackCLIPBOARD ACTIVITYiTerm2DiaDEV (-zsh)8 frames4 frames1 frames1 frames55 frames4 frames4 frames2 framesO $2APP (-zsh)• ₴з-zsh• 84-zsh• ₴5-zshO ₴6Sat 11 Apr 15:19:59-zsh181X7DiaDiaDiaDiaDiaDiaiTerm2{claude mcp addscreenpipe -- npx-y screenpipe-mcplukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe-- прх -уlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уnpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codenpm install-g @anthropic-ai/claude-codelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npх -уclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mclukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npх -уnpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codeclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mccurl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ S sqlite3~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
3457003340597606923
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% <7-zsh17:0017:0017:0017:0018:0018:0018:0018:00DOCKERO ₴1ClaudeUserNotificationCenterFinderControl CentreiTerm2DiaClaudeSlackCLIPBOARD ACTIVITYiTerm2DiaDEV (-zsh)8 frames4 frames1 frames1 frames55 frames4 frames4 frames2 framesO $2APP (-zsh)• ₴з-zsh• 84-zsh• ₴5-zshO ₴6Sat 11 Apr 15:19:59-zsh181X7DiaDiaDiaDiaDiaDiaiTerm2{claude mcp addscreenpipe -- npx-y screenpipe-mcplukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe-- прх -уlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уnpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codenpm install-g @anthropic-ai/claude-codelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npх -уclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mclukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npх -уnpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codeclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mccurl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ S sqlite3~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
|
780
|
19
|
11
|
2026-04-11T12:20:09.703496+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910009703_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zsh(ahl• ₴5100% <7Sat 11 Apr 15:20:09-zsh181*717:0017:0017:0018:0018:0018:0018:00DOCKERO ₴1UserNotificationCenterFinderControlCentreiTerm2DiaClaudeSlackCLIPBOARD ACTIVITYiTerm2DiaDEV (-zsh)4 frames1 frames1 frames55 frames4 frames4 frames2 framesО 882APP (-zsh)• ₴з-zsh• 84-zsh-zsh• ₴6DiaDiaDiaDiaDiaDiaiTerm2claude mcp addscreenpipe-- nрх-Yscreenpipe-mcplukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npх -уnpm install -g @anthropic-ai/claude-codenpm install -g ®anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уclaude mcp add screenpipe--transport stdio --scope user-- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mclukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уnpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codeclaude mcp add screenpipe--transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mccurl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ § sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ S sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $||...
|
NULL
|
7361914754182480844
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zsh(ahl• ₴5100% <7Sat 11 Apr 15:20:09-zsh181*717:0017:0017:0018:0018:0018:0018:00DOCKERO ₴1UserNotificationCenterFinderControlCentreiTerm2DiaClaudeSlackCLIPBOARD ACTIVITYiTerm2DiaDEV (-zsh)4 frames1 frames1 frames55 frames4 frames4 frames2 framesО 882APP (-zsh)• ₴з-zsh• 84-zsh-zsh• ₴6DiaDiaDiaDiaDiaDiaiTerm2claude mcp addscreenpipe-- nрх-Yscreenpipe-mcplukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npх -уnpm install -g @anthropic-ai/claude-codenpm install -g ®anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уclaude mcp add screenpipe--transport stdio --scope user-- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mclukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уnpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codeclaude mcp add screenpipe--transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mccurl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ § sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ S sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $||...
|
NULL
|
|
785
|
19
|
16
|
2026-04-11T12:20:25.340983+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910025340_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% <7-zsh18:00DOCKERSlackCLIPBOARD ACTIVITYiTerm2DiaO ₴1DEV (-zsh)2 framesO $2APP (-zsh)• ₴з-zsh• 84-zsh• ₴5-zshO ₴6Sat 11 Apr 15:20:24-zsh181X7DiaDiaDiaDiaDiaDiaiTerm2claude mcp addscreenpipe -- npx-y screenpipe-mcplukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уnpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уclaude mcp addscreenpipe--transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user-- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcpaddscreenpipe --transport stdio --scope user -- npx -y screenpipe-mclukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npх -уnpm install-g @anthropic-ai/claude-codenpm install-g @anthropic-ai/claude-codeclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mccurl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ S sqlite3~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"1/1locr|blockliTerm21|010.03633720919248210.0069767446842882210.033430231942070910.[CREDIT_CARD]|1.0101211locr|block|Shell||010.082848837470976810.006976744800567210.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|1l311locr|blocklEdit|1010.11773255890768610.0069767444129703610.017441859510209810.[CREDIT_CARD]|1.01214|1locr|blocklViewl 1010.14825581445741110.006976744800567210.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0131511locr|blocklSession|1010.18157913831779510.00625754295475710.035097538100348610.[CREDIT_CARD]|1.0141lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ U...
|
NULL
|
6877536316968894114
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% <7-zsh18:00DOCKERSlackCLIPBOARD ACTIVITYiTerm2DiaO ₴1DEV (-zsh)2 framesO $2APP (-zsh)• ₴з-zsh• 84-zsh• ₴5-zshO ₴6Sat 11 Apr 15:20:24-zsh181X7DiaDiaDiaDiaDiaDiaiTerm2claude mcp addscreenpipe -- npx-y screenpipe-mcplukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уnpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уclaude mcp addscreenpipe--transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user-- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcpaddscreenpipe --transport stdio --scope user -- npx -y screenpipe-mclukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npх -уnpm install-g @anthropic-ai/claude-codenpm install-g @anthropic-ai/claude-codeclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mccurl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ S sqlite3~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"1/1locr|blockliTerm21|010.03633720919248210.0069767446842882210.033430231942070910.[CREDIT_CARD]|1.0101211locr|block|Shell||010.082848837470976810.006976744800567210.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|1l311locr|blocklEdit|1010.11773255890768610.0069767444129703610.017441859510209810.[CREDIT_CARD]|1.01214|1locr|blocklViewl 1010.14825581445741110.006976744800567210.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0131511locr|blocklSession|1010.18157913831779510.00625754295475710.035097538100348610.[CREDIT_CARD]|1.0141lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ U...
|
784
|
|
791
|
19
|
22
|
2026-04-11T12:20:46.992158+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910046992_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% <7-zshDOCKERDiaDiaDiaDiaDiaDiaiTerm2{O ₴1DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84npm install-g@anthropic-ai/claude-codelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -yclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mclukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уnpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codeclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transportstdio --scope user -- npx -y screenpipe-mccurl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl http://localhost:3030/health-zsh• ₴5-zsh• ₴6Sat 11 Apr 15:20:46-zsh181*7@ OCR TEXT SAMPLES PER APPiTerm2ShellEditViewSessionScriptsProfilesWindowHelp(10]100% C8Thu 9 Apr 19:53:14TOTALSFrames:523UI Events: 1305OCR texts: 271lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"1|1locr|block|iTerm2l1010.03633720919248210.0069767446842882210.033430231942070910.[CREDIT_CARD]|1.0101211locr|block|Shell||010.082848837470976810.006976744800567210.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|113|1locr|blocklEditl1010.11773255890768610.0069767444129703610.017441859510209810.[CREDIT_CARD]|1.0|214|1locr|block|Viewl|010.14825581445741110.006976744800567210.021802324718899210.[CREDIT_CARD]|1.0131511locrIblock|Session 1010.18157913831779510.00625754295475710.035097538100348610.[CREDIT_CARD]|1.0141lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT 'memories'as tbl, COUNT(*) FROM memoriesUNION ALL SELECT 'meetings', COUNT(*) FROM meetingsUNION ALL SELECT 'elements', COUNT(*) FROM elementsUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"memorieslomeetings10elementsI34220ocr_text|448lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
-8593343564963741519
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% <7-zshDOCKERDiaDiaDiaDiaDiaDiaiTerm2{O ₴1DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84npm install-g@anthropic-ai/claude-codelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -yclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mclukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уnpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codeclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transportstdio --scope user -- npx -y screenpipe-mccurl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl http://localhost:3030/health-zsh• ₴5-zsh• ₴6Sat 11 Apr 15:20:46-zsh181*7@ OCR TEXT SAMPLES PER APPiTerm2ShellEditViewSessionScriptsProfilesWindowHelp(10]100% C8Thu 9 Apr 19:53:14TOTALSFrames:523UI Events: 1305OCR texts: 271lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"1|1locr|block|iTerm2l1010.03633720919248210.0069767446842882210.033430231942070910.[CREDIT_CARD]|1.0101211locr|block|Shell||010.082848837470976810.006976744800567210.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|113|1locr|blocklEditl1010.11773255890768610.0069767444129703610.017441859510209810.[CREDIT_CARD]|1.0|214|1locr|block|Viewl|010.14825581445741110.006976744800567210.021802324718899210.[CREDIT_CARD]|1.0131511locrIblock|Session 1010.18157913831779510.00625754295475710.035097538100348610.[CREDIT_CARD]|1.0141lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT 'memories'as tbl, COUNT(*) FROM memoriesUNION ALL SELECT 'meetings', COUNT(*) FROM meetingsUNION ALL SELECT 'elements', COUNT(*) FROM elementsUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"memorieslomeetings10elementsI34220ocr_text|448lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
790
|
|
792
|
19
|
23
|
2026-04-11T12:20:49.999915+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910049999_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% <7-zshDOCKERDiaDiaDiaDiaDiaDiaiTerm2{O ₴1DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84npm install-g@anthropic-ai/claude-codelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -yclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mclukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уnpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codeclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transportstdio --scope user -- npx -y screenpipe-mccurl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl http://localhost:3030/health-zsh• ₴5-zsh• *6Sat 11 Apr 15:20:49-zsh181*7@ OCR TEXT SAMPLES PER APPiTerm2ShellEditViewSessionScriptsProfilesWindowHelp(10]100% C8Thu 9 Apr 19:53:14TOTALSFrames:523UI Events: 1305OCR texts: 271lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"1|1locr|block|iTerm2l1010.03633720919248210.0069767446842882210.033430231942070910.[CREDIT_CARD]|1.0101211locr|block|Shell||010.082848837470976810.006976744800567210.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|113|1locr|blocklEditl1010.11773255890768610.0069767444129703610.017441859510209810.[CREDIT_CARD]|1.0|214|1locr|block|Viewl|010.14825581445741110.006976744800567210.021802324718899210.[CREDIT_CARD]|1.0131511locrIblock|Session 1010.18157913831779510.00625754295475710.035097538100348610.[CREDIT_CARD]|1.0141lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT 'memories'as tbl, COUNT(*) FROM memoriesUNION ALL SELECT 'meetings', COUNT(*) FROM meetingsUNION ALL SELECT 'elements', COUNT(*) FROM elementsUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"memorieslomeetings10elementsI34220ocr_text|448lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
-340860306090487745
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% <7-zshDOCKERDiaDiaDiaDiaDiaDiaiTerm2{O ₴1DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84npm install-g@anthropic-ai/claude-codelukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -yclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transport stdio --scope user -- npx -y screenpipe-mclukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- пpх -уnpm install -g @anthropic-ai/claude-codenpm install -g @anthropic-ai/claude-codeclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mcclaude mcp addscreenpipe --transportstdio --scope user -- npx -y screenpipe-mccurl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl http://localhost:3030/health-zsh• ₴5-zsh• *6Sat 11 Apr 15:20:49-zsh181*7@ OCR TEXT SAMPLES PER APPiTerm2ShellEditViewSessionScriptsProfilesWindowHelp(10]100% C8Thu 9 Apr 19:53:14TOTALSFrames:523UI Events: 1305OCR texts: 271lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"1|1locr|block|iTerm2l1010.03633720919248210.0069767446842882210.033430231942070910.[CREDIT_CARD]|1.0101211locr|block|Shell||010.082848837470976810.006976744800567210.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|113|1locr|blocklEditl1010.11773255890768610.0069767444129703610.017441859510209810.[CREDIT_CARD]|1.0|214|1locr|block|Viewl|010.14825581445741110.006976744800567210.021802324718899210.[CREDIT_CARD]|1.0131511locrIblock|Session 1010.18157913831779510.00625754295475710.035097538100348610.[CREDIT_CARD]|1.0141lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT 'memories'as tbl, COUNT(*) FROM memoriesUNION ALL SELECT 'meetings', COUNT(*) FROM meetingsUNION ALL SELECT 'elements', COUNT(*) FROM elementsUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"memorieslomeetings10elementsI34220ocr_text|448lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
|
795
|
19
|
26
|
2026-04-11T12:21:11.195152+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910071195_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
)
/* frames_fts(full_text,app_name,window_name,bro )
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);"
2026-04-09|523
2026-04-11|197
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name
ORDER BY frames DESC;
"
iTerm2|185|13.9
Dia|31|2.3
Safari|20|1.5
Claude|12|0.9
UserNotificationCenter|4|0.3
Control Centre|3|0.2
Slack|2|0.1
Activity Monitor|2|0.1
Finder|1|0.1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT browser_url, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND browser_url IS NOT NULL
GROUP BY browser_url
ORDER BY frames DESC
LIMIT 20;
"
[URL_WITH_CREDENTIALS] ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, event_type, COUNT(*) as events
FROM ui_events
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name, event_type
ORDER BY events DESC
LIMIT 30;
"
iTerm2|click|283
Dia|click|171
iTerm2|key|122
Dia|key|56
Safari|click|56
Claude|click|50
iTerm2|app_switch|34
Dia|clipboard|17
Safari|key|11
Claude|app_switch|9
Dia|app_switch|9
UserNotificationCenter|click|8
Claude|key|6
iTerm2|clipboard|6
UserNotificationCenter|app_switch|4
Safari|app_switch|3
Slack|app_switch|1
Slack|click|1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >....
WHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL
GROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;"
echo "\n🕐 HOURLY TIMELINE"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY strftime('%H', timestamp), app_name
ORDER BY strftime('%H', timestamp), COUNT(*) DESC;"
echo "\n📋 CLIPBOARD ACTIVITY"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL
ORDER BY timestamp LIMIT 20;"
echo "\n💬 OCR TEXT SAMPLES PER APP"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))
FROM ocr_text o
JOIN frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''
GROUP BY o.app_name
ORDER BY o.app_name LIMIT 15;"
echo "\n🔢 TOTALS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT
'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
"
EOF
chmod +x ~/screenpipe-day.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 162888
drwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .
drwx------+ 89 lukas staff 2848 11 Apr 15:16 ..
-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite
-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256 9 Apr 19: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 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls
Applications Documents Movies Public jiminny screenpipe-day.sh
CascadeProjects Downloads Music Untitled 4.spf node_modules yarn.lock
DEV Keychron_Screen Pictures Users raycast
Desktop Library Postman iCloud Drive (Archive) response.bin
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 1272
drwx------+ 89 lukas staff 2848 11 Apr 15:16 .
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 22532 11 Apr 11:15 .DS_Store
drwx------+ 2 lukas staff 64 11 Apr 11:15 .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 77 9 Feb 2023 .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 9 Apr 21:21 .claude
-rw------- 1 lukas staff 24973 9 Apr 21:24 .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 9 Apr 18:24 .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 31 Mar 18:32 .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------ 9 lukas staff 288 11 Apr 14:52 .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 10 lukas staff 320 11 Apr 14:52 .screenpipe
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 12183 8 Apr 19:14 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
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 6 Apr 14:31 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .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 28813 11 Apr 11:12 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc
drwx------@ 9 lukas staff 288 9 Apr 20:08 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV
drwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 41 lukas staff 1312 8 Apr 20:46 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
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 11:35 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 18:15 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 ~ $ ~/screenpipe-day.sh 2026-04-09
═══════════════════════════════════════
SCREENPIPE REPORT — 2026-04-09
═══════════════════════════════════════
📱 APP USAGE (frames + estimated time)
───────────────────────────────────────
iTerm2 185 frames ~ 13.9 min
Dia 31 frames ~ 2.3 min
Safari 20 frames ~ 1.5 min
Claude 12 frames ~ 0.9 min
UserNotificationCenter 4 frames ~ 0.3 min
Control Centre 3 frames ~ 0.2 min
Slack 2 frames ~ 0.1 min
Activity Monitor 2 frames ~ 0.1 min
Finder 1 frames ~ 0.1 min
⌨️ ACTIVITY TYPE PER APP (clicks / keys / switches)
───────────────────────────────────────
iTerm2 clicks:283 keys:122 switches:34
Dia clicks:171 keys:56 switches:9
Safari clicks:56 keys:11 switches:3
Claude clicks:50 keys:6 switches:9
UserNotificationCenter clicks:8 keys:0 switches:4
Slack clicks:1 keys:0 switches:1
🌐 BROWSER URLS VISITED
───────────────────────────────────────
13 frames [URL_WITH_CREDENTIALS] ~ $ claude mcp add screenpipe -- npx -y
Dia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"
1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|0|
2|1|ocr|block|Shell||0|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|1|
3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|2|
4|1|ocr|block|View||0|0.148255814457411|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|3|
5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|4|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT 'memories' as tbl, COUNT(*) FROM memories
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"
memories|0
meetings|0
elements|34220
ocr_text|448
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":")\n/* frames_fts(full_text,app_name,window_name,browser_url,id) */;\nCREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;\nCREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);\nCREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;\nCREATE TRIGGER frames_ai AFTER INSERT ON frames\nWHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''\nBEGIN\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n VALUES (\n NEW.id,\n NEW.full_text,\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n );\nEND;\nCREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n SELECT\n NEW.id,\n COALESCE(NEW.full_text, ''),\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';\nEND;\nCREATE TRIGGER frames_ad AFTER DELETE ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\nEND;\nCREATE INDEX idx_memories_frame_id ON memories(frame_id);\nCREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL;\nCREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);\"\n2026-04-09|523\n2026-04-11|197\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name\nORDER BY frames DESC;\n\"\niTerm2|185|13.9\nDia|31|2.3\nSafari|20|1.5\nClaude|12|0.9\nUserNotificationCenter|4|0.3\nControl Centre|3|0.2\nSlack|2|0.1\nActivity Monitor|2|0.1\nFinder|1|0.1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT browser_url, COUNT(*) as frames\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND browser_url IS NOT NULL\nGROUP BY browser_url\nORDER BY frames DESC\nLIMIT 20;\n\"\nhttps://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21|13\nhttps://location-tracker.lakylak.xyz/dashboard|4\nhttps://nas.lakylak.xyz/desktop/?os=ugospro#/|2\nhttps://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, event_type, COUNT(*) as events\nFROM ui_events\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name, event_type\nORDER BY events DESC\nLIMIT 30;\n\"\niTerm2|click|283\nDia|click|171\niTerm2|key|122\nDia|key|56\nSafari|click|56\nClaude|click|50\niTerm2|app_switch|34\nDia|clipboard|17\nSafari|key|11\nClaude|app_switch|9\nDia|app_switch|9\nUserNotificationCenter|click|8\nClaude|key|6\niTerm2|clipboard|6\nUserNotificationCenter|app_switch|4\nSafari|app_switch|3\nSlack|app_switch|1\nSlack|click|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >.... \nWHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL\nGROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho \"\\n🕐\u0000 HOURLY TIMELINE\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY strftime('%H', timestamp), app_name\nORDER BY strftime('%H', timestamp), COUNT(*) DESC;\"\n\necho \"\\n📋\u0000 CLIPBOARD ACTIVITY\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL\nORDER BY timestamp LIMIT 20;\"\n\necho \"\\n💬\u0000 OCR TEXT SAMPLES PER APP\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))\nFROM ocr_text o\nJOIN frames f ON o.frame_id = f.id\nWHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''\nGROUP BY o.app_name\nORDER BY o.app_name LIMIT 15;\"\n\necho \"\\n🔢\u0000 TOTALS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT\n 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\n\"\nEOF\nchmod +x ~/screenpipe-day.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll \ntotal 162888\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 ..\n-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json\ndrwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data\n-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite\n-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal\ndrwxr-xr-x 8 lukas staff 256 9 Apr 19:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls\nApplications\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDocuments\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMovies\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPublic\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tjiminny\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe-day.sh\nCascadeProjects\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDownloads\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMusic\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUntitled 4.spf\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tnode_modules\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tyarn.lock\nDEV\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tKeychron_Screen\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPictures\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUsers\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traycast\nDesktop\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tLibrary\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPostman\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tiCloud Drive (Archive)\u0000\tresponse.bin\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll\ntotal 1272\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 .\ndrwxr-xr-x 5 root admin 160 23 Aug 2024 ..\n-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding\n-rw-r--r--@ 1 lukas staff 22532 11 Apr 11:15 .DS_Store\ndrwx------+ 2 lukas staff 64 11 Apr 11:15 .Trash\ndrwx------ 5 lukas staff 160 1 Nov 2021 .aws\n-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json\n-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .bashrc\ndrwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito\ndrwx------@ 6 lukas staff 192 9 Apr 19:53 .cache\ndrwxr-xr-x 20 lukas staff 640 9 Apr 21:21 .claude\n-rw------- 1 lukas staff 24973 9 Apr 21:24 .claude.json\ndrwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium\ndrwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer\ndrwx------ 16 lukas staff 512 21 May 2025 .config\ndrwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue\ndrwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot\ndrwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor\ndrwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor\ndrwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona\ndrwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb\ndrwx------ 24 lukas staff 768 9 Apr 18:24 .docker\ndrwx------ 15 lukas staff 480 6 Jun 2023 .dropbox\ndrwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak\n-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth\n-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig\n-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp\ndrwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon\ndrwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc\n-rw------- 1 lukas staff 20 31 Mar 18:32 .lesshst\ndrwx------ 5 lukas staff 160 23 Dec 2024 .local\n-rw------- 1 lukas staff 204 16 Mar 2024 .netrc\ndrwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp\n-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history\n-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer\ndrwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py\ndrwx------ 9 lukas staff 288 11 Apr 14:52 .npm\n-rw------- 1 lukas staff 74 20 May 2024 .npmrc\ndrwx------ 32 lukas staff 1024 25 Jul 2025 .nvm\ndrwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile\n-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history\ndrwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode\ndrwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .screenpipe\ndrwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint\ndrwx------ 15 lukas staff 480 8 Aug 2025 .ssh\ndrwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit\ndrwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm\n-rw------- 1 lukas staff 12183 8 Apr 19:14 .viminfo\ndrwx------ 5 lukas staff 160 19 Jun 2023 .vscode\ndrwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp\ndrwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm\ndrwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf\ndrwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn\n-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc\n-rw-r--r--@ 1 lukas staff 49518 6 Apr 14:31 .zcompdump\n-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381\n-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .zprofile\n-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy\n-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave\n-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save\n-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees\n-rw------- 1 lukas staff 28813 11 Apr 11:12 .zsh_history\ndrwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions\n-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc\ndrwx------@ 9 lukas staff 288 9 Apr 20:08 Applications\ndrwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects\ndrwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV\ndrwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop\ndrwx------@ 7 lukas staff 224 26 Mar 14:40 Documents\ndrwx------@ 41 lukas staff 1312 8 Apr 20:46 Downloads\ndrwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen\ndrwx------@ 112 lukas staff 3584 2 Dec 09:19 Library\ndrwx------ 7 lukas staff 224 12 Feb 2024 Movies\ndrwx------+ 5 lukas staff 160 25 Sep 2023 Music\ndrwx------+ 9 lukas staff 288 25 Sep 2023 Pictures\ndrwx------ 3 lukas staff 96 8 Nov 2021 Postman\ndrwx------+ 4 lukas staff 128 28 Oct 2021 Public\n-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf\ndrwx------ 4 lukas staff 128 2 Jul 2023 Users\ndrwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)\ndrwx------ 16 lukas staff 512 3 Nov 11:35 jiminny\ndrwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules\ndrwxr-xr-x 4 lukas staff 128 21 Oct 18:15 raycast\n-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin\n-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh\n-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ~/screenpipe-day.sh 2026-04-09\n═══════════════════════════════════════\n SCREENPIPE REPORT — 2026-04-09\n═══════════════════════════════════════\n\n📱\u0000 APP USAGE (frames + estimated time)\n───────────────────────────────────────\niTerm2 185 frames ~ 13.9 min\nDia 31 frames ~ 2.3 min\nSafari 20 frames ~ 1.5 min\nClaude 12 frames ~ 0.9 min\nUserNotificationCenter 4 frames ~ 0.3 min\nControl Centre 3 frames ~ 0.2 min\nSlack 2 frames ~ 0.1 min\nActivity Monitor 2 frames ~ 0.1 min\nFinder 1 frames ~ 0.1 min\n\n⌨️\u0000 ACTIVITY TYPE PER APP (clicks / keys / switches)\n───────────────────────────────────────\niTerm2 clicks:283 keys:122 switches:34 \nDia clicks:171 keys:56 switches:9 \nSafari clicks:56 keys:11 switches:3 \nClaude clicks:50 keys:6 switches:9 \nUserNotificationCenter clicks:8 keys:0 switches:4 \nSlack clicks:1 keys:0 switches:1 \n\n🌐\u0000 BROWSER URLS VISITED\n───────────────────────────────────────\n 13 frames https://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21\n 4 frames https://location-tracker.lakylak.xyz/dashboard\n 2 frames https://nas.lakylak.xyz/desktop/?os=ugospro#/\n 1 frames https://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b\n\n🪟\u0000 WINDOW TITLES (top 20)\n───────────────────────────────────────\niTerm2 93 -zsh\niTerm2 34 screenpipe\"\nSafari 13 Order Room Service • HBO Max\nClaude 12 Claude\niTerm2 8 ✳ Find cheapest WD Red Plus 6TB price\nDia 7 Personal: New Tab\niTerm2 7 ✳ Claude Code\niTerm2 7 ⠂ Find cheapest WD Red Plus 6TB price\niTerm2 7 ⠂ Research Western Digital Red Plus pricing\niTerm2 7 ⠐ Research Western Digital Red Plus pricing\nDia 6 Personal: GitHub - scree…\niTerm2 5 ✳ Research Western Digital Red Plus pricing\nSafari 4 Location Logger\nUserNotificationCenter 4 \niTerm2 4 nano\niTerm2 4 ⠐ Find cheapest WD Red Plus 6TB price\nControl Centre 3 Control Centre\nDia 3 Personal: Western Digita…\niTerm2 3 ✳ Check today's app usage\nActivity Monitor 2 Activity Monitor – All Processes\n\n🕐\u0000 HOURLY TIMELINE\n───────────────────────────────────────\n16:00 iTerm2 14 frames\n16:00 Safari 4 frames\n16:00 Dia 3 frames\n16:00 Control Centre 2 frames\n16:00 Activity Monitor 2 frames\n17:00 iTerm2 116 frames\n17:00 Dia 24 frames\n17:00 Safari 16 frames\n17:00 Claude 8 frames\n17:00 UserNotificationCenter 4 frames\n17:00 Finder 1 frames\n17:00 Control Centre 1 frames\n18:00 iTerm2 55 frames\n18:00 Dia 4 frames\n18:00 Claude 4 frames\n18:00 Slack 2 frames\n\n📋\u0000 CLIPBOARD ACTIVITY\n───────────────────────────────────────\niTerm2 claude mcp add screenpipe -- npx -y screenpipe-mcp\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\nDia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM memories LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM meetings LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM elements LIMIT 5;\"\n1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.0334302319420709|0.0139534876081678|1.0|0|\n2|1|ocr|block|Shell||0|0.0828488374709768|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|1|\n3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.0174418595102098|0.0139534876081678|1.0|2|\n4|1|ocr|block|View||0|0.148255814457411|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|3|\n5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.0350975381003486|0.0153918912675646|1.0|4|\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT 'memories' as tbl, COUNT(*) FROM memories\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;\"\nmemories|0\nmeetings|0\nelements|34220\nocr_text|448\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear","depth":4,"value":")\n/* frames_fts(full_text,app_name,window_name,browser_url,id) */;\nCREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;\nCREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);\nCREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);\nCREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;\nCREATE TRIGGER frames_ai AFTER INSERT ON frames\nWHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''\nBEGIN\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n VALUES (\n NEW.id,\n NEW.full_text,\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n );\nEND;\nCREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\n INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)\n SELECT\n NEW.id,\n COALESCE(NEW.full_text, ''),\n COALESCE(NEW.app_name, ''),\n COALESCE(NEW.window_name, ''),\n COALESCE(NEW.browser_url, '')\n WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';\nEND;\nCREATE TRIGGER frames_ad AFTER DELETE ON frames\nBEGIN\n DELETE FROM frames_fts WHERE id = OLD.id;\nEND;\nCREATE INDEX idx_memories_frame_id ON memories(frame_id);\nCREATE INDEX idx_elements_source_role_text\n ON elements(source, role, frame_id)\n WHERE text IS NOT NULL;\nCREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;\nCREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);\"\n2026-04-09|523\n2026-04-11|197\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name\nORDER BY frames DESC;\n\"\niTerm2|185|13.9\nDia|31|2.3\nSafari|20|1.5\nClaude|12|0.9\nUserNotificationCenter|4|0.3\nControl Centre|3|0.2\nSlack|2|0.1\nActivity Monitor|2|0.1\nFinder|1|0.1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT browser_url, COUNT(*) as frames\nFROM frames\nWHERE date(timestamp) = date('now', '-2 day')\nAND browser_url IS NOT NULL\nGROUP BY browser_url\nORDER BY frames DESC\nLIMIT 20;\n\"\nhttps://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21|13\nhttps://location-tracker.lakylak.xyz/dashboard|4\nhttps://nas.lakylak.xyz/desktop/?os=ugospro#/|2\nhttps://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT app_name, event_type, COUNT(*) as events\nFROM ui_events\nWHERE date(timestamp) = date('now', '-2 day')\nAND app_name IS NOT NULL\nGROUP BY app_name, event_type\nORDER BY events DESC\nLIMIT 30;\n\"\niTerm2|click|283\nDia|click|171\niTerm2|key|122\nDia|key|56\nSafari|click|56\nClaude|click|50\niTerm2|app_switch|34\nDia|clipboard|17\nSafari|key|11\nClaude|app_switch|9\nDia|app_switch|9\nUserNotificationCenter|click|8\nClaude|key|6\niTerm2|clipboard|6\nUserNotificationCenter|app_switch|4\nSafari|app_switch|3\nSlack|app_switch|1\nSlack|click|1\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >.... \nWHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL\nGROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;\"\n\necho \"\\n🕐\u0000 HOURLY TIMELINE\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))\nFROM frames\nWHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL\nGROUP BY strftime('%H', timestamp), app_name\nORDER BY strftime('%H', timestamp), COUNT(*) DESC;\"\n\necho \"\\n📋\u0000 CLIPBOARD ACTIVITY\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))\nFROM ui_events\nWHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL\nORDER BY timestamp LIMIT 20;\"\n\necho \"\\n💬\u0000 OCR TEXT SAMPLES PER APP\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))\nFROM ocr_text o\nJOIN frames f ON o.frame_id = f.id\nWHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''\nGROUP BY o.app_name\nORDER BY o.app_name LIMIT 15;\"\n\necho \"\\n🔢\u0000 TOTALS\"\necho \"───────────────────────────────────────\"\nsqlite3 \"$DB\" \"\nSELECT\n 'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';\n\"\nsqlite3 \"$DB\" \"\nSELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';\n\"\nEOF\nchmod +x ~/screenpipe-day.sh\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll \ntotal 162888\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 ..\n-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json\ndrwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data\n-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite\n-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm\n-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal\ndrwxr-xr-x 8 lukas staff 256 9 Apr 19:53 pipes\n-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log\n-rw-r--r-- 1 lukas staff 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls\nApplications\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDocuments\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMovies\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPublic\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tjiminny\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tscreenpipe-day.sh\nCascadeProjects\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tDownloads\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tMusic\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUntitled 4.spf\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tnode_modules\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tyarn.lock\nDEV\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tKeychron_Screen\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPictures\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tUsers\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traycast\nDesktop\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tLibrary\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPostman\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tiCloud Drive (Archive)\u0000\tresponse.bin\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll\ntotal 1272\ndrwx------+ 89 lukas staff 2848 11 Apr 15:16 .\ndrwxr-xr-x 5 root admin 160 23 Aug 2024 ..\n-r-------- 1 lukas staff 7 18 Nov 2021 .CFUserTextEncoding\n-rw-r--r--@ 1 lukas staff 22532 11 Apr 11:15 .DS_Store\ndrwx------+ 2 lukas staff 64 11 Apr 11:15 .Trash\ndrwx------ 5 lukas staff 160 1 Nov 2021 .aws\n-rw-r--r-- 1 lukas staff 341470 29 Sep 2022 .babel.json\n-rw-------@ 1 lukas staff 388 25 Jul 2025 .bash_history\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .bashrc\ndrwxr-xr-x 5 lukas staff 160 11 Mar 2023 .bito\ndrwx------@ 6 lukas staff 192 9 Apr 19:53 .cache\ndrwxr-xr-x 20 lukas staff 640 9 Apr 21:21 .claude\n-rw------- 1 lukas staff 24973 9 Apr 21:24 .claude.json\ndrwxr-xr-x@ 20 lukas staff 640 12 Mar 09:12 .codeium\ndrwxrwxrwx@ 3 lukas staff 96 2 Mar 2023 .composer\ndrwx------ 16 lukas staff 512 21 May 2025 .config\ndrwxr-xr-x 15 lukas staff 480 23 Dec 2024 .continue\ndrwx------@ 3 lukas staff 96 16 Feb 19:13 .copilot\ndrwxr-xr-x@ 5 lukas staff 160 9 Apr 2025 .cursor\ndrwxr-xr-x@ 5 lukas staff 160 17 Aug 2024 .cursor-tutor\ndrwxr-xr-x 3 lukas staff 96 8 Sep 2024 .daytona\ndrwxr-xr-x@ 4 lukas staff 128 18 Feb 10:52 .devdb\ndrwx------ 24 lukas staff 768 9 Apr 18:24 .docker\ndrwx------ 15 lukas staff 480 6 Jun 2023 .dropbox\ndrwxr-xr-x@ 3 lukas staff 96 20 Nov 2022 .fig.dotfiles.bak\n-rw-r--r-- 1 lukas staff 138 5 Mar 2022 .gauth\n-rw-r--r-- 1 lukas staff 220 25 Nov 2021 .gitconfig\n-rw-r--r-- 1 lukas staff 12288 25 Nov 2021 .gitconfig.swp\ndrwx------ 5 lukas staff 160 18 Nov 2021 .hammerspoon\ndrwxr-xr-x 3 lukas staff 96 21 Mar 2025 .idlerc\n-rw------- 1 lukas staff 20 31 Mar 18:32 .lesshst\ndrwx------ 5 lukas staff 160 23 Dec 2024 .local\n-rw------- 1 lukas staff 204 16 Mar 2024 .netrc\ndrwx------ 3 lukas staff 96 1 Nov 2021 .node-gyp\n-rw------- 1 lukas staff 4 6 Feb 2024 .node_repl_history\n-rw-r--r-- 1 lukas staff 17 24 Dec 2023 .notion-enhancer\ndrwxr-xr-x 4 lukas staff 128 12 Jul 2024 .notion-py\ndrwx------ 9 lukas staff 288 11 Apr 14:52 .npm\n-rw------- 1 lukas staff 74 20 May 2024 .npmrc\ndrwx------ 32 lukas staff 1024 25 Jul 2025 .nvm\ndrwxr-xr-x 4 lukas staff 128 5 Aug 2023 .postman\n-rw-r--r--@ 1 lukas staff 77 9 Feb 2023 .profile\n-rw-------@ 1 lukas staff 3153 21 Mar 2025 .python_history\ndrwx------ 2 lukas staff 64 15 Nov 2021 .quicktype-vscode\ndrwxr-xr-x@ 8 lukas staff 256 16 Feb 08:48 .redis-insight\ndrwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .screenpipe\ndrwxr-xr-x 4 lukas staff 128 4 Feb 09:35 .sonarlint\ndrwx------ 15 lukas staff 480 8 Aug 2025 .ssh\ndrwxr-xr-x@ 3 lukas staff 96 15 Aug 2025 .streamlit\ndrwx------ 6 lukas staff 192 17 Oct 2022 .swiftpm\n-rw------- 1 lukas staff 12183 8 Apr 19:14 .viminfo\ndrwx------ 5 lukas staff 160 19 Jun 2023 .vscode\ndrwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp\ndrwxr-xr-x 4 lukas staff 128 29 Apr 2023 .wdm\ndrwxr-xr-x@ 5 lukas staff 160 26 Jan 13:03 .windsurf\ndrwxr-xr-x 4 lukas staff 128 24 Mar 12:03 .yarn\n-rw-r--r-- 1 lukas staff 116 30 Mar 10:12 .yarnrc\n-rw-r--r--@ 1 lukas staff 49518 6 Apr 14:31 .zcompdump\n-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381\n-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .zprofile\n-rw-r--r-- 1 lukas staff 1468 8 Apr 2022 .zprofile-copy\n-rw-r--r--@ 1 lukas staff 2900 15 Mar 2023 .zprofile.pysave\n-rw------- 1 lukas staff 1731 29 Jun 2022 .zprofile.save\n-rw-r--r-- 1 lukas staff 1569 8 Apr 2022 .zprofilees\n-rw------- 1 lukas staff 28813 11 Apr 11:12 .zsh_history\ndrwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions\n-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc\ndrwx------@ 9 lukas staff 288 9 Apr 20:08 Applications\ndrwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects\ndrwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV\ndrwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop\ndrwx------@ 7 lukas staff 224 26 Mar 14:40 Documents\ndrwx------@ 41 lukas staff 1312 8 Apr 20:46 Downloads\ndrwxr-xr-x@ 4 lukas staff 128 17 Mar 20:27 Keychron_Screen\ndrwx------@ 112 lukas staff 3584 2 Dec 09:19 Library\ndrwx------ 7 lukas staff 224 12 Feb 2024 Movies\ndrwx------+ 5 lukas staff 160 25 Sep 2023 Music\ndrwx------+ 9 lukas staff 288 25 Sep 2023 Pictures\ndrwx------ 3 lukas staff 96 8 Nov 2021 Postman\ndrwx------+ 4 lukas staff 128 28 Oct 2021 Public\n-rw-r--r--@ 1 lukas staff 3950 15 Dec 09:16 Untitled 4.spf\ndrwx------ 4 lukas staff 128 2 Jul 2023 Users\ndrwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)\ndrwx------ 16 lukas staff 512 3 Nov 11:35 jiminny\ndrwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules\ndrwxr-xr-x 4 lukas staff 128 21 Oct 18:15 raycast\n-rw-r--r-- 1 lukas staff 0 1 Mar 14:26 response.bin\n-rwxr-xr-x 1 lukas staff 3824 11 Apr 15:16 screenpipe-day.sh\n-rw-r--r-- 1 lukas staff 86 20 Mar 18:47 yarn.lock\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ~/screenpipe-day.sh 2026-04-09\n═══════════════════════════════════════\n SCREENPIPE REPORT — 2026-04-09\n═══════════════════════════════════════\n\n📱\u0000 APP USAGE (frames + estimated time)\n───────────────────────────────────────\niTerm2 185 frames ~ 13.9 min\nDia 31 frames ~ 2.3 min\nSafari 20 frames ~ 1.5 min\nClaude 12 frames ~ 0.9 min\nUserNotificationCenter 4 frames ~ 0.3 min\nControl Centre 3 frames ~ 0.2 min\nSlack 2 frames ~ 0.1 min\nActivity Monitor 2 frames ~ 0.1 min\nFinder 1 frames ~ 0.1 min\n\n⌨️\u0000 ACTIVITY TYPE PER APP (clicks / keys / switches)\n───────────────────────────────────────\niTerm2 clicks:283 keys:122 switches:34 \nDia clicks:171 keys:56 switches:9 \nSafari clicks:56 keys:11 switches:3 \nClaude clicks:50 keys:6 switches:9 \nUserNotificationCenter clicks:8 keys:0 switches:4 \nSlack clicks:1 keys:0 switches:1 \n\n🌐\u0000 BROWSER URLS VISITED\n───────────────────────────────────────\n 13 frames https://play.hbomax.com/video/watch/16b35e6c-e745-4416-bc16-0ef5092ba4e0/07b58730-24cb-419c-b5a0-1e258a77cd21\n 4 frames https://location-tracker.lakylak.xyz/dashboard\n 2 frames https://nas.lakylak.xyz/desktop/?os=ugospro#/\n 1 frames https://play.hbomax.com/show/06f986dd-dd6a-4596-9a0a-f473ef99c64b\n\n🪟\u0000 WINDOW TITLES (top 20)\n───────────────────────────────────────\niTerm2 93 -zsh\niTerm2 34 screenpipe\"\nSafari 13 Order Room Service • HBO Max\nClaude 12 Claude\niTerm2 8 ✳ Find cheapest WD Red Plus 6TB price\nDia 7 Personal: New Tab\niTerm2 7 ✳ Claude Code\niTerm2 7 ⠂ Find cheapest WD Red Plus 6TB price\niTerm2 7 ⠂ Research Western Digital Red Plus pricing\niTerm2 7 ⠐ Research Western Digital Red Plus pricing\nDia 6 Personal: GitHub - scree…\niTerm2 5 ✳ Research Western Digital Red Plus pricing\nSafari 4 Location Logger\nUserNotificationCenter 4 \niTerm2 4 nano\niTerm2 4 ⠐ Find cheapest WD Red Plus 6TB price\nControl Centre 3 Control Centre\nDia 3 Personal: Western Digita…\niTerm2 3 ✳ Check today's app usage\nActivity Monitor 2 Activity Monitor – All Processes\n\n🕐\u0000 HOURLY TIMELINE\n───────────────────────────────────────\n16:00 iTerm2 14 frames\n16:00 Safari 4 frames\n16:00 Dia 3 frames\n16:00 Control Centre 2 frames\n16:00 Activity Monitor 2 frames\n17:00 iTerm2 116 frames\n17:00 Dia 24 frames\n17:00 Safari 16 frames\n17:00 Claude 8 frames\n17:00 UserNotificationCenter 4 frames\n17:00 Finder 1 frames\n17:00 Control Centre 1 frames\n18:00 iTerm2 55 frames\n18:00 Dia 4 frames\n18:00 Claude 4 frames\n18:00 Slack 2 frames\n\n📋\u0000 CLIPBOARD ACTIVITY\n───────────────────────────────────────\niTerm2 claude mcp add screenpipe -- npx -y screenpipe-mcp\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\nDia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM memories LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM meetings LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM elements LIMIT 5;\"\n1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.0334302319420709|0.0139534876081678|1.0|0|\n2|1|ocr|block|Shell||0|0.0828488374709768|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|1|\n3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.0174418595102098|0.0139534876081678|1.0|2|\n4|1|ocr|block|View||0|0.148255814457411|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|3|\n5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.0350975381003486|0.0153918912675646|1.0|4|\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT 'memories' as tbl, COUNT(*) FROM memories\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;\"\nmemories|0\nmeetings|0\nelements|34220\nocr_text|448\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
-6883981401558721013
|
5648665543644016292
|
visual_change
|
accessibility
|
NULL
|
)
/* frames_fts(full_text,app_name,window_name,bro )
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);"
2026-04-09|523
2026-04-11|197
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, COUNT(*) as frames, ROUND(COUNT(*) * 4.5 / 60.0, 1) as est_minutes
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name
ORDER BY frames DESC;
"
iTerm2|185|13.9
Dia|31|2.3
Safari|20|1.5
Claude|12|0.9
UserNotificationCenter|4|0.3
Control Centre|3|0.2
Slack|2|0.1
Activity Monitor|2|0.1
Finder|1|0.1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT browser_url, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-2 day')
AND browser_url IS NOT NULL
GROUP BY browser_url
ORDER BY frames DESC
LIMIT 20;
"
[URL_WITH_CREDENTIALS] ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, event_type, COUNT(*) as events
FROM ui_events
WHERE date(timestamp) = date('now', '-2 day')
AND app_name IS NOT NULL
GROUP BY app_name, event_type
ORDER BY events DESC
LIMIT 30;
"
iTerm2|click|283
Dia|click|171
iTerm2|key|122
Dia|key|56
Safari|click|56
Claude|click|50
iTerm2|app_switch|34
Dia|clipboard|17
Safari|key|11
Claude|app_switch|9
Dia|app_switch|9
UserNotificationCenter|click|8
Claude|key|6
iTerm2|clipboard|6
UserNotificationCenter|app_switch|4
Safari|app_switch|3
Slack|app_switch|1
Slack|click|1
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ >....
WHERE date(timestamp) = '$DATE' AND window_name IS NOT NULL AND app_name IS NOT NULL
GROUP BY app_name, window_name ORDER BY COUNT(*) DESC LIMIT 20;"
echo "\n🕐 HOURLY TIMELINE"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%s %-20s %3d frames', strftime('%H:00', timestamp), app_name, COUNT(*))
FROM frames
WHERE date(timestamp) = '$DATE' AND app_name IS NOT NULL
GROUP BY strftime('%H', timestamp), app_name
ORDER BY strftime('%H', timestamp), COUNT(*) DESC;"
echo "\n📋 CLIPBOARD ACTIVITY"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-20s %s', app_name, SUBSTR(text_content, 1, 80))
FROM ui_events
WHERE date(timestamp) = '$DATE' AND event_type = 'clipboard' AND text_content IS NOT NULL
ORDER BY timestamp LIMIT 20;"
echo "\n💬 OCR TEXT SAMPLES PER APP"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT printf('%-15s %s', o.app_name, SUBSTR(o.text, 1, 80))
FROM ocr_text o
JOIN frames f ON o.frame_id = f.id
WHERE date(f.timestamp) = '$DATE' AND o.app_name IS NOT NULL AND o.text != ''
GROUP BY o.app_name
ORDER BY o.app_name LIMIT 15;"
echo "\n🔢 TOTALS"
echo "───────────────────────────────────────"
sqlite3 "$DB" "
SELECT
'Frames: ' || COUNT(*) FROM frames WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'UI Events: ' || COUNT(*) FROM ui_events WHERE date(timestamp) = '$DATE';
"
sqlite3 "$DB" "
SELECT 'OCR texts: ' || COUNT(*) FROM ocr_text o JOIN frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
"
EOF
chmod +x ~/screenpipe-day.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 162888
drwxr-xr-x 10 lukas staff 320 11 Apr 14:52 .
drwx------+ 89 lukas staff 2848 11 Apr 15:16 ..
-rw-r--r-- 1 lukas staff 270 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 73764864 11 Apr 15:12 db.sqlite
-rw-r--r-- 1 lukas staff 32768 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 8742672 11 Apr 15:16 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256 9 Apr 19: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 17246 11 Apr 15:16 screenpipe.2026-04-11.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cd ..
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls
Applications Documents Movies Public jiminny screenpipe-day.sh
CascadeProjects Downloads Music Untitled 4.spf node_modules yarn.lock
DEV Keychron_Screen Pictures Users raycast
Desktop Library Postman iCloud Drive (Archive) response.bin
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ll
total 1272
drwx------+ 89 lukas staff 2848 11 Apr 15:16 .
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 22532 11 Apr 11:15 .DS_Store
drwx------+ 2 lukas staff 64 11 Apr 11:15 .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 77 9 Feb 2023 .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 9 Apr 21:21 .claude
-rw------- 1 lukas staff 24973 9 Apr 21:24 .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 9 Apr 18:24 .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 31 Mar 18:32 .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------ 9 lukas staff 288 11 Apr 14:52 .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 10 lukas staff 320 11 Apr 14:52 .screenpipe
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 12183 8 Apr 19:14 .viminfo
drwx------ 5 lukas staff 160 19 Jun 2023 .vscode
drwxr-xr-x@ 3 lukas staff 96 20 Jan 2025 .warp
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 6 Apr 14:31 .zcompdump
-rw-r--r--@ 1 lukas staff 46758 2 Nov 20:34 .zcompdump.Lukas-Kovaliks-MacBook-Pro-Jiminny.23381
-rw-r--r--@ 1 lukas staff 5641 9 Apr 20:30 .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 28813 11 Apr 11:12 .zsh_history
drwx------ 9 lukas staff 288 6 May 2025 .zsh_sessions
-rw-r--r--@ 1 lukas staff 362 25 Jul 2025 .zshrc
drwx------@ 9 lukas staff 288 9 Apr 20:08 Applications
drwxr-xr-x@ 2 lukas staff 64 22 Oct 09:35 CascadeProjects
drwxr-xr-x 4 lukas staff 128 27 Oct 09:24 DEV
drwx------@ 5 lukas staff 160 11 Apr 14:53 Desktop
drwx------@ 7 lukas staff 224 26 Mar 14:40 Documents
drwx------@ 41 lukas staff 1312 8 Apr 20:46 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
drwx------ 3 lukas staff 96 30 Sep 2022 iCloud Drive (Archive)
drwx------ 16 lukas staff 512 3 Nov 11:35 jiminny
drwxr-xr-x 3 lukas staff 96 20 Mar 18:47 node_modules
drwxr-xr-x 4 lukas staff 128 21 Oct 18:15 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 ~ $ ~/screenpipe-day.sh 2026-04-09
═══════════════════════════════════════
SCREENPIPE REPORT — 2026-04-09
═══════════════════════════════════════
📱 APP USAGE (frames + estimated time)
───────────────────────────────────────
iTerm2 185 frames ~ 13.9 min
Dia 31 frames ~ 2.3 min
Safari 20 frames ~ 1.5 min
Claude 12 frames ~ 0.9 min
UserNotificationCenter 4 frames ~ 0.3 min
Control Centre 3 frames ~ 0.2 min
Slack 2 frames ~ 0.1 min
Activity Monitor 2 frames ~ 0.1 min
Finder 1 frames ~ 0.1 min
⌨️ ACTIVITY TYPE PER APP (clicks / keys / switches)
───────────────────────────────────────
iTerm2 clicks:283 keys:122 switches:34
Dia clicks:171 keys:56 switches:9
Safari clicks:56 keys:11 switches:3
Claude clicks:50 keys:6 switches:9
UserNotificationCenter clicks:8 keys:0 switches:4
Slack clicks:1 keys:0 switches:1
🌐 BROWSER URLS VISITED
───────────────────────────────────────
13 frames [URL_WITH_CREDENTIALS] ~ $ claude mcp add screenpipe -- npx -y
Dia lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"
1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|0|
2|1|ocr|block|Shell||0|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|1|
3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|2|
4|1|ocr|block|View||0|0.148255814457411|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|3|
5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|4|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT 'memories' as tbl, COUNT(*) FROM memories
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"
memories|0
meetings|0
elements|34220
ocr_text|448
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
794
|
|
797
|
19
|
28
|
2026-04-11T12:21:14.241026+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910074241_m1.jpg...
|
iTerm2
|
sqlite3
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claud lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"
1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|0|
2|1|ocr|block|Shell||0|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|1|
3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|2|
4|1|ocr|block|View||0|0.148255814457411|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|3|
5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|4|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT 'memories' as tbl, COUNT(*) FROM memories
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"
memories|0
meetings|0
elements|34220
ocr_text|448
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE e.text IS NOT NULL
GROUP BY f.app_name
ORDER BY elements DESC;"
|24604|206
Dia|2884|17
iTerm2|2087|136
Claude|2040|8
Safari|1248|10
Firefox|454|1
Activity Monitor|380|2
Slack|234|1
Control Centre|178|1
UserNotificationCenter|20|4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
sqlite3
Close Tab
⌥⌘1
sqlite3...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM memories LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM meetings LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM elements LIMIT 5;\"\n1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.0334302319420709|0.0139534876081678|1.0|0|\n2|1|ocr|block|Shell||0|0.0828488374709768|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|1|\n3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.0174418595102098|0.0139534876081678|1.0|2|\n4|1|ocr|block|View||0|0.148255814457411|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|3|\n5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.0350975381003486|0.0153918912675646|1.0|4|\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT 'memories' as tbl, COUNT(*) FROM memories\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;\"\nmemories|0\nmeetings|0\nelements|34220\nocr_text|448\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE e.text IS NOT NULL\nGROUP BY f.app_name\nORDER BY elements DESC;\"\n|24604|206\nDia|2884|17\niTerm2|2087|136\nClaude|2040|8\nSafari|1248|10\nFirefox|454|1\nActivity Monitor|380|2\nSlack|234|1\nControl Centre|178|1\nUserNotificationCenter|20|4\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","depth":4,"value":"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM memories LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM meetings LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM elements LIMIT 5;\"\n1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.0334302319420709|0.0139534876081678|1.0|0|\n2|1|ocr|block|Shell||0|0.0828488374709768|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|1|\n3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.0174418595102098|0.0139534876081678|1.0|2|\n4|1|ocr|block|View||0|0.148255814457411|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|3|\n5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.0350975381003486|0.0153918912675646|1.0|4|\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT 'memories' as tbl, COUNT(*) FROM memories\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;\"\nmemories|0\nmeetings|0\nelements|34220\nocr_text|448\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE e.text IS NOT NULL\nGROUP BY f.app_name\nORDER BY elements DESC;\"\n|24604|206\nDia|2884|17\niTerm2|2087|136\nClaude|2040|8\nSafari|1248|10\nFirefox|454|1\nActivity Monitor|380|2\nSlack|234|1\nControl Centre|178|1\nUserNotificationCenter|20|4\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"sqlite3","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"sqlite3","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
8315006965312361648
|
6730654965363223212
|
visual_change
|
accessibility
|
NULL
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claud lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"
1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|0|
2|1|ocr|block|Shell||0|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|1|
3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|2|
4|1|ocr|block|View||0|0.148255814457411|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|3|
5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|4|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT 'memories' as tbl, COUNT(*) FROM memories
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"
memories|0
meetings|0
elements|34220
ocr_text|448
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE e.text IS NOT NULL
GROUP BY f.app_name
ORDER BY elements DESC;"
|24604|206
Dia|2884|17
iTerm2|2087|136
Claude|2040|8
Safari|1248|10
Firefox|454|1
Activity Monitor|380|2
Slack|234|1
Control Centre|178|1
UserNotificationCenter|20|4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
sqlite3
Close Tab
⌥⌘1
sqlite3...
|
796
|
|
799
|
19
|
30
|
2026-04-11T12:21:20.305435+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910080305_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionlScriptsProfilesWindowHe iTerm2ShellEditViewSessionlScriptsProfilesWindowHelpDOCKERO ₴1DEV (-zsh)О 882APP (-zsh)• ₴зlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ S sqlite3~/.screenpipe/db.sqlite"SELECTf.app_name,COUNT(*) as elements, COUNT(DISTINCT e.frame_id) asframesFROMelementsJOINframes f ONe.frame_id = f.idWHEREe.text IS NOT NULLGROUP BY f.app_nameORDER BY elements DESC;"124604|206Dial2884117iTerm2120871136CLaude|204018Safaril1248110Firefox|45411Activity Monitor|38012Slack|23411Control Centrel17811UserNotificationCenter|2014lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ U-zsh-zsh• 84$0(ahl-zsh• ₴5-zsh100% <7Sat 11 Apr 15:21:19181O 886-zsh*7...
|
NULL
|
-5640477703785582694
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionlScriptsProfilesWindowHe iTerm2ShellEditViewSessionlScriptsProfilesWindowHelpDOCKERO ₴1DEV (-zsh)О 882APP (-zsh)• ₴зlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ S sqlite3~/.screenpipe/db.sqlite"SELECTf.app_name,COUNT(*) as elements, COUNT(DISTINCT e.frame_id) asframesFROMelementsJOINframes f ONe.frame_id = f.idWHEREe.text IS NOT NULLGROUP BY f.app_nameORDER BY elements DESC;"124604|206Dial2884117iTerm2120871136CLaude|204018Safaril1248110Firefox|45411Activity Monitor|38012Slack|23411Control Centrel17811UserNotificationCenter|2014lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ U-zsh-zsh• 84$0(ahl-zsh• ₴5-zsh100% <7Sat 11 Apr 15:21:19181O 886-zsh*7...
|
798
|
|
803
|
19
|
34
|
2026-04-11T12:21:26.336012+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910086336_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelp$0(ahl100% <7•• 0-zsh|DOCKERO ₴1DEV (-zsh)-О 882APP (-zsh)|• *3lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~Ssqlite3~/.screenpipe/db.sqlite"SELECTf.app_name,COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as framesFROMelementsJOINframes f ONe.frame_id = f.idWHEREe.text IS NOT NULLGROUPBY f.app_nameORDER BYelements DESC;"124604|206Dial 2884|17iTerm2120871136Claude|204018Safaril1248110Firefox|45411Activity Monitor|38012Slack|23411Control Centrel17811UserNotificationCenter|2014lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ S sqlite3~/.screenpipe/db.sqlite"SELECT e.textFROM elementseJOIN frames f ON e. frame_id = f.idWHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULLLIMIT 30;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ П-zsh• 84-zsh• ₴5-zshO 886Sat 11 Apr 15:21:25-zsh181X7...
|
NULL
|
2221855361542388760
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit|ViewSessionScriptsProfilesWindowHelp$0(ahl100% <7•• 0-zsh|DOCKERO ₴1DEV (-zsh)-О 882APP (-zsh)|• *3lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~Ssqlite3~/.screenpipe/db.sqlite"SELECTf.app_name,COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as framesFROMelementsJOINframes f ONe.frame_id = f.idWHEREe.text IS NOT NULLGROUPBY f.app_nameORDER BYelements DESC;"124604|206Dial 2884|17iTerm2120871136Claude|204018Safaril1248110Firefox|45411Activity Monitor|38012Slack|23411Control Centrel17811UserNotificationCenter|2014lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ S sqlite3~/.screenpipe/db.sqlite"SELECT e.textFROM elementseJOIN frames f ON e. frame_id = f.idWHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULLLIMIT 30;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ П-zsh• 84-zsh• ₴5-zshO 886Sat 11 Apr 15:21:25-zsh181X7...
|
802
|
|
807
|
19
|
38
|
2026-04-11T12:21:29.374019+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910089374_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claud lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"
1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|0|
2|1|ocr|block|Shell||0|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|1|
3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|2|
4|1|ocr|block|View||0|0.148255814457411|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|3|
5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|4|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT 'memories' as tbl, COUNT(*) FROM memories
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"
memories|0
meetings|0
elements|34220
ocr_text|448
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE e.text IS NOT NULL
GROUP BY f.app_name
ORDER BY elements DESC;"
|24604|206
Dia|2884|17
iTerm2|2087|136
Claude|2040|8
Safari|1248|10
Firefox|454|1
Activity Monitor|380|2
Slack|234|1
Control Centre|178|1
UserNotificationCenter|20|4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL
LIMIT 30;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.window_name, e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'Safari' AND e.text IS NOT NULL
LIMIT 20;"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM memories LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM meetings LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM elements LIMIT 5;\"\n1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.0334302319420709|0.0139534876081678|1.0|0|\n2|1|ocr|block|Shell||0|0.0828488374709768|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|1|\n3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.0174418595102098|0.0139534876081678|1.0|2|\n4|1|ocr|block|View||0|0.148255814457411|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|3|\n5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.0350975381003486|0.0153918912675646|1.0|4|\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT 'memories' as tbl, COUNT(*) FROM memories\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;\"\nmemories|0\nmeetings|0\nelements|34220\nocr_text|448\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE e.text IS NOT NULL\nGROUP BY f.app_name\nORDER BY elements DESC;\"\n|24604|206\nDia|2884|17\niTerm2|2087|136\nClaude|2040|8\nSafari|1248|10\nFirefox|454|1\nActivity Monitor|380|2\nSlack|234|1\nControl Centre|178|1\nUserNotificationCenter|20|4\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL\nLIMIT 30;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.window_name, e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'Safari' AND e.text IS NOT NULL\nLIMIT 20;\"","depth":4,"value":"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM memories LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM meetings LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM elements LIMIT 5;\"\n1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.0334302319420709|0.0139534876081678|1.0|0|\n2|1|ocr|block|Shell||0|0.0828488374709768|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|1|\n3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.0174418595102098|0.0139534876081678|1.0|2|\n4|1|ocr|block|View||0|0.148255814457411|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|3|\n5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.0350975381003486|0.0153918912675646|1.0|4|\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT 'memories' as tbl, COUNT(*) FROM memories\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;\"\nmemories|0\nmeetings|0\nelements|34220\nocr_text|448\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE e.text IS NOT NULL\nGROUP BY f.app_name\nORDER BY elements DESC;\"\n|24604|206\nDia|2884|17\niTerm2|2087|136\nClaude|2040|8\nSafari|1248|10\nFirefox|454|1\nActivity Monitor|380|2\nSlack|234|1\nControl Centre|178|1\nUserNotificationCenter|20|4\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL\nLIMIT 30;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.window_name, e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'Safari' AND e.text IS NOT NULL\nLIMIT 20;\"","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
-1610790630866244402
|
6730725469397822378
|
visual_change
|
accessibility
|
NULL
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claud lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"
1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|0|
2|1|ocr|block|Shell||0|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|1|
3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|2|
4|1|ocr|block|View||0|0.148255814457411|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|3|
5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|4|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT 'memories' as tbl, COUNT(*) FROM memories
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"
memories|0
meetings|0
elements|34220
ocr_text|448
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE e.text IS NOT NULL
GROUP BY f.app_name
ORDER BY elements DESC;"
|24604|206
Dia|2884|17
iTerm2|2087|136
Claude|2040|8
Safari|1248|10
Firefox|454|1
Activity Monitor|380|2
Slack|234|1
Control Centre|178|1
UserNotificationCenter|20|4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL
LIMIT 30;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.window_name, e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'Safari' AND e.text IS NOT NULL
LIMIT 20;"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
806
|
|
808
|
19
|
39
|
2026-04-11T12:21:32.409072+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910092409_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claud lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"
1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|0|
2|1|ocr|block|Shell||0|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|1|
3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|2|
4|1|ocr|block|View||0|0.148255814457411|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|3|
5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|4|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT 'memories' as tbl, COUNT(*) FROM memories
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"
memories|0
meetings|0
elements|34220
ocr_text|448
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE e.text IS NOT NULL
GROUP BY f.app_name
ORDER BY elements DESC;"
|24604|206
Dia|2884|17
iTerm2|2087|136
Claude|2040|8
Safari|1248|10
Firefox|454|1
Activity Monitor|380|2
Slack|234|1
Control Centre|178|1
UserNotificationCenter|20|4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL
LIMIT 30;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.window_name, e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'Safari' AND e.text IS NOT NULL
LIMIT 20;"
Order Room Service • HBO Max|Back
Order Room Service • HBO Max|Search
Order Room Service • HBO Max|Ukončiť prehrávanie
Order Room Service • HBO Max|Rozbaliť Epizód, 1 z 2
Order Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2
Order Room Service • HBO Max|Preskočiť dozadu o 10 s
Order Room Service • HBO Max|Pozastaviť
Order Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd
Order Room Service • HBO Max|Hlasitosť 100 %
Order Room Service • HBO Max|Nastavenia zvuku a titulkov
Order Room Service • HBO Max|Celá obrazovka
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|Favourites
Order Room Service • HBO Max|Tab Group Favourites
Order Room Service • HBO Max|NAS
Order Room Service • HBO Max|Home
Order Room Service • HBO Max|Portainer
Order Room Service • HBO Max|Nginx Proxy Manager
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM memories LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM meetings LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM elements LIMIT 5;\"\n1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.0334302319420709|0.0139534876081678|1.0|0|\n2|1|ocr|block|Shell||0|0.0828488374709768|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|1|\n3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.0174418595102098|0.0139534876081678|1.0|2|\n4|1|ocr|block|View||0|0.148255814457411|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|3|\n5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.0350975381003486|0.0153918912675646|1.0|4|\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT 'memories' as tbl, COUNT(*) FROM memories\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;\"\nmemories|0\nmeetings|0\nelements|34220\nocr_text|448\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE e.text IS NOT NULL\nGROUP BY f.app_name\nORDER BY elements DESC;\"\n|24604|206\nDia|2884|17\niTerm2|2087|136\nClaude|2040|8\nSafari|1248|10\nFirefox|454|1\nActivity Monitor|380|2\nSlack|234|1\nControl Centre|178|1\nUserNotificationCenter|20|4\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL\nLIMIT 30;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.window_name, e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'Safari' AND e.text IS NOT NULL\nLIMIT 20;\"\nOrder Room Service • HBO Max|Back\nOrder Room Service • HBO Max|Search\nOrder Room Service • HBO Max|Ukončiť prehrávanie\nOrder Room Service • HBO Max|Rozbaliť Epizód, 1 z 2\nOrder Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2\nOrder Room Service • HBO Max|Preskočiť dozadu o 10 s\nOrder Room Service • HBO Max|Pozastaviť\nOrder Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd\nOrder Room Service • HBO Max|Hlasitosť 100 %\nOrder Room Service • HBO Max|Nastavenia zvuku a titulkov\nOrder Room Service • HBO Max|Celá obrazovka\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|Favourites\nOrder Room Service • HBO Max|Tab Group Favourites\nOrder Room Service • HBO Max|NAS\nOrder Room Service • HBO Max|Home\nOrder Room Service • HBO Max|Portainer\nOrder Room Service • HBO Max|Nginx Proxy Manager\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","depth":4,"value":"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM memories LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM meetings LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM elements LIMIT 5;\"\n1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.0334302319420709|0.0139534876081678|1.0|0|\n2|1|ocr|block|Shell||0|0.0828488374709768|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|1|\n3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.0174418595102098|0.0139534876081678|1.0|2|\n4|1|ocr|block|View||0|0.148255814457411|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|3|\n5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.0350975381003486|0.0153918912675646|1.0|4|\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT 'memories' as tbl, COUNT(*) FROM memories\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;\"\nmemories|0\nmeetings|0\nelements|34220\nocr_text|448\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE e.text IS NOT NULL\nGROUP BY f.app_name\nORDER BY elements DESC;\"\n|24604|206\nDia|2884|17\niTerm2|2087|136\nClaude|2040|8\nSafari|1248|10\nFirefox|454|1\nActivity Monitor|380|2\nSlack|234|1\nControl Centre|178|1\nUserNotificationCenter|20|4\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL\nLIMIT 30;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.window_name, e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'Safari' AND e.text IS NOT NULL\nLIMIT 20;\"\nOrder Room Service • HBO Max|Back\nOrder Room Service • HBO Max|Search\nOrder Room Service • HBO Max|Ukončiť prehrávanie\nOrder Room Service • HBO Max|Rozbaliť Epizód, 1 z 2\nOrder Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2\nOrder Room Service • HBO Max|Preskočiť dozadu o 10 s\nOrder Room Service • HBO Max|Pozastaviť\nOrder Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd\nOrder Room Service • HBO Max|Hlasitosť 100 %\nOrder Room Service • HBO Max|Nastavenia zvuku a titulkov\nOrder Room Service • HBO Max|Celá obrazovka\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|Favourites\nOrder Room Service • HBO Max|Tab Group Favourites\nOrder Room Service • HBO Max|NAS\nOrder Room Service • HBO Max|Home\nOrder Room Service • HBO Max|Portainer\nOrder Room Service • HBO Max|Nginx Proxy Manager\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
-2155183469395643749
|
5693765216978349033
|
visual_change
|
accessibility
|
NULL
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claud lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"
1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|0|
2|1|ocr|block|Shell||0|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|1|
3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|2|
4|1|ocr|block|View||0|0.148255814457411|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|3|
5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|4|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT 'memories' as tbl, COUNT(*) FROM memories
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"
memories|0
meetings|0
elements|34220
ocr_text|448
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE e.text IS NOT NULL
GROUP BY f.app_name
ORDER BY elements DESC;"
|24604|206
Dia|2884|17
iTerm2|2087|136
Claude|2040|8
Safari|1248|10
Firefox|454|1
Activity Monitor|380|2
Slack|234|1
Control Centre|178|1
UserNotificationCenter|20|4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL
LIMIT 30;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.window_name, e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'Safari' AND e.text IS NOT NULL
LIMIT 20;"
Order Room Service • HBO Max|Back
Order Room Service • HBO Max|Search
Order Room Service • HBO Max|Ukončiť prehrávanie
Order Room Service • HBO Max|Rozbaliť Epizód, 1 z 2
Order Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2
Order Room Service • HBO Max|Preskočiť dozadu o 10 s
Order Room Service • HBO Max|Pozastaviť
Order Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd
Order Room Service • HBO Max|Hlasitosť 100 %
Order Room Service • HBO Max|Nastavenia zvuku a titulkov
Order Room Service • HBO Max|Celá obrazovka
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|Favourites
Order Room Service • HBO Max|Tab Group Favourites
Order Room Service • HBO Max|NAS
Order Room Service • HBO Max|Home
Order Room Service • HBO Max|Portainer
Order Room Service • HBO Max|Nginx Proxy Manager
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
NULL
|
|
815
|
19
|
46
|
2026-04-11T12:22:45.189738+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910165189_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp• 0DOCKER0 ₴1DEV (-zsh)О 882APP (-zsh)• *3GROUP BY f.app_nameORDER BY elements DESC;"124604|206Dial2884|17iTerm2120871136Claude|204018Safari |1248|10Firefox|45411Activity Monitor|38012Slack|23411Control Centrel178|1UserNotificationCenter|2014Lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT e.textFROM elements eJOIN frames f ON e.frame_id = f.idWHERE f.app_name = 'iTerm2'AND e.role = 'block' AND e.text NOT NULLLIMIT 30;"lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT f.window_name, e.textFROM elements eJOIN frames f ON e. frame_id = f.idWHERE f.app_name = 'Safari' AND e.text IS NOT NULLLIMIT 20;"Order Room Service • HBO Max |BackOrder Room Service • HBO Max | SearchOrder Room Service • HBO Max|Ukoncit prehrávanieOrder Room Service • HBO Max|Rozbalit Epizód, 1 z 2Order Room Service • HBO Max|Rozbalit Tiez by sa vám mohlo pácit, 2 z 2Order Room Service • HBO Max|Preskocit dozadu o 10 sOrder Room Service • HBO Max|PozastavitOrder Room Service • HBO Max|Preskocit dopredu o 10 sekúndOrder Room Service • HBO Max|Hlasitost 100 %Order Room Service • HBO Max|Nastavenia zvuku a titulkovOrder Room Service • HBO MaxICelá obrazovkaOrder Room Service • HBO Max|close tabOrder Room Service • HBO Max|close tabOrder Room Service • HBO Max|close tabOrder Room Service • HBO Max|FavouritesOrder Room Service • HBO Max|Tab Group FavouritesOrder Room Service • HBO Max | NASOrder Room Service • HBO Max | HomeOrder Room Service • HBO Max|PortainerOrder Room Service • HBO Max|Nginx Proxy Managerlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $100% C-zshSat 11 Apr 15:22:45T81-zsh• *4-zsh• 25-zshO 886-zshX7...
|
NULL
|
3631139111191140805
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp• 0DOCKER0 ₴1DEV (-zsh)О 882APP (-zsh)• *3GROUP BY f.app_nameORDER BY elements DESC;"124604|206Dial2884|17iTerm2120871136Claude|204018Safari |1248|10Firefox|45411Activity Monitor|38012Slack|23411Control Centrel178|1UserNotificationCenter|2014Lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT e.textFROM elements eJOIN frames f ON e.frame_id = f.idWHERE f.app_name = 'iTerm2'AND e.role = 'block' AND e.text NOT NULLLIMIT 30;"lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT f.window_name, e.textFROM elements eJOIN frames f ON e. frame_id = f.idWHERE f.app_name = 'Safari' AND e.text IS NOT NULLLIMIT 20;"Order Room Service • HBO Max |BackOrder Room Service • HBO Max | SearchOrder Room Service • HBO Max|Ukoncit prehrávanieOrder Room Service • HBO Max|Rozbalit Epizód, 1 z 2Order Room Service • HBO Max|Rozbalit Tiez by sa vám mohlo pácit, 2 z 2Order Room Service • HBO Max|Preskocit dozadu o 10 sOrder Room Service • HBO Max|PozastavitOrder Room Service • HBO Max|Preskocit dopredu o 10 sekúndOrder Room Service • HBO Max|Hlasitost 100 %Order Room Service • HBO Max|Nastavenia zvuku a titulkovOrder Room Service • HBO MaxICelá obrazovkaOrder Room Service • HBO Max|close tabOrder Room Service • HBO Max|close tabOrder Room Service • HBO Max|close tabOrder Room Service • HBO Max|FavouritesOrder Room Service • HBO Max|Tab Group FavouritesOrder Room Service • HBO Max | NASOrder Room Service • HBO Max | HomeOrder Room Service • HBO Max|PortainerOrder Room Service • HBO Max|Nginx Proxy Managerlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $100% C-zshSat 11 Apr 15:22:45T81-zsh• *4-zsh• 25-zshO 886-zshX7...
|
814
|
|
816
|
19
|
47
|
2026-04-11T12:22:48.227825+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910168227_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp• 0DOCKER0 ₴1DEV (-zsh)О 882APP (-zsh)• *3GROUP BY f.app_nameORDER BY elements DESC;"124604|206Dial2884|17iTerm2120871136Claude|204018Safari |1248|10Firefox|45411Activity Monitor|38012Slack|23411Control Centrel178|1UserNotificationCenter|2014Lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT e.textFROM elements eJOIN frames f ON e.frame_id = f.idWHERE f.app_name = 'iTerm2'AND e.role = 'block' AND e.text NOT NULLLIMIT 30;"Lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT f.window_name, e.textFROM elements eJOIN frames f ON e. frame_id = f.idWHERE f.app_name = 'Safari' AND e.text IS NOT NULLLIMIT 20;"Order Room Service • HBO Max |BackOrder Room Service • HBO Max | SearchOrder Room Service • HBO Max|Ukoncit prehrávanieOrder Room Service • HBO Max|Rozbalit Epizód, 1 z 2Order Room Service • HBO Max|Rozbalit Tiez by sa vám mohlo pácit, 2 z 2Order Room Service • HBO Max|Preskocit dozadu o 10 sOrder Room Service • HBO Max|PozastavitOrder Room Service • HBO Max|Preskocit dopredu o 10 sekúndOrder Room Service • HBO Max|Hlasitost 100 %Order Room Service • HBO Max|Nastavenia zvuku a titulkovOrder Room Service • HBO MaxICelá obrazovkaOrder Room Service • HBO Max|close tabOrder Room Service • HBO Max|close tabOrder Room Service • HBO Max|close tabOrder Room Service • HBO Max|FavouritesOrder Room Service • HBO Max|Tab Group FavouritesOrder Room Service • HBO Max | NASOrder Room Service • HBO Max | HomeOrder Room Service • HBO Max|PortainerOrder Room Service • HBO Max|Nginx Proxy Managerlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $C$Ш OOA100% C-zsh-zsh• *4-zsh• 25-zshO 886Sat 11 Apr 15:22:48-zshT81X7...
|
NULL
|
5153973352737788875
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp• 0DOCKER0 ₴1DEV (-zsh)О 882APP (-zsh)• *3GROUP BY f.app_nameORDER BY elements DESC;"124604|206Dial2884|17iTerm2120871136Claude|204018Safari |1248|10Firefox|45411Activity Monitor|38012Slack|23411Control Centrel178|1UserNotificationCenter|2014Lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT e.textFROM elements eJOIN frames f ON e.frame_id = f.idWHERE f.app_name = 'iTerm2'AND e.role = 'block' AND e.text NOT NULLLIMIT 30;"Lukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT f.window_name, e.textFROM elements eJOIN frames f ON e. frame_id = f.idWHERE f.app_name = 'Safari' AND e.text IS NOT NULLLIMIT 20;"Order Room Service • HBO Max |BackOrder Room Service • HBO Max | SearchOrder Room Service • HBO Max|Ukoncit prehrávanieOrder Room Service • HBO Max|Rozbalit Epizód, 1 z 2Order Room Service • HBO Max|Rozbalit Tiez by sa vám mohlo pácit, 2 z 2Order Room Service • HBO Max|Preskocit dozadu o 10 sOrder Room Service • HBO Max|PozastavitOrder Room Service • HBO Max|Preskocit dopredu o 10 sekúndOrder Room Service • HBO Max|Hlasitost 100 %Order Room Service • HBO Max|Nastavenia zvuku a titulkovOrder Room Service • HBO MaxICelá obrazovkaOrder Room Service • HBO Max|close tabOrder Room Service • HBO Max|close tabOrder Room Service • HBO Max|close tabOrder Room Service • HBO Max|FavouritesOrder Room Service • HBO Max|Tab Group FavouritesOrder Room Service • HBO Max | NASOrder Room Service • HBO Max | HomeOrder Room Service • HBO Max|PortainerOrder Room Service • HBO Max|Nginx Proxy Managerlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $C$Ш OOA100% C-zsh-zsh• *4-zsh• 25-zshO 886Sat 11 Apr 15:22:48-zshT81X7...
|
NULL
|
|
821
|
19
|
52
|
2026-04-11T12:23:24.548795+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910204548_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claud lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"
1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|0|
2|1|ocr|block|Shell||0|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|1|
3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|2|
4|1|ocr|block|View||0|0.148255814457411|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|3|
5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|4|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT 'memories' as tbl, COUNT(*) FROM memories
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"
memories|0
meetings|0
elements|34220
ocr_text|448
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE e.text IS NOT NULL
GROUP BY f.app_name
ORDER BY elements DESC;"
|24604|206
Dia|2884|17
iTerm2|2087|136
Claude|2040|8
Safari|1248|10
Firefox|454|1
Activity Monitor|380|2
Slack|234|1
Control Centre|178|1
UserNotificationCenter|20|4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL
LIMIT 30;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.window_name, e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'Safari' AND e.text IS NOT NULL
LIMIT 20;"
Order Room Service • HBO Max|Back
Order Room Service • HBO Max|Search
Order Room Service • HBO Max|Ukončiť prehrávanie
Order Room Service • HBO Max|Rozbaliť Epizód, 1 z 2
Order Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2
Order Room Service • HBO Max|Preskočiť dozadu o 10 s
Order Room Service • HBO Max|Pozastaviť
Order Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd
Order Room Service • HBO Max|Hlasitosť 100 %
Order Room Service • HBO Max|Nastavenia zvuku a titulkov
Order Room Service • HBO Max|Celá obrazovka
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|Favourites
Order Room Service • HBO Max|Tab Group Favourites
Order Room Service • HBO Max|NAS
Order Room Service • HBO Max|Home
Order Room Service • HBO Max|Portainer
Order Room Service • HBO Max|Nginx Proxy Manager
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clea
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM memories LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM meetings LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM elements LIMIT 5;\"\n1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.0334302319420709|0.0139534876081678|1.0|0|\n2|1|ocr|block|Shell||0|0.0828488374709768|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|1|\n3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.0174418595102098|0.0139534876081678|1.0|2|\n4|1|ocr|block|View||0|0.148255814457411|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|3|\n5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.0350975381003486|0.0153918912675646|1.0|4|\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT 'memories' as tbl, COUNT(*) FROM memories\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;\"\nmemories|0\nmeetings|0\nelements|34220\nocr_text|448\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE e.text IS NOT NULL\nGROUP BY f.app_name\nORDER BY elements DESC;\"\n|24604|206\nDia|2884|17\niTerm2|2087|136\nClaude|2040|8\nSafari|1248|10\nFirefox|454|1\nActivity Monitor|380|2\nSlack|234|1\nControl Centre|178|1\nUserNotificationCenter|20|4\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL\nLIMIT 30;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.window_name, e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'Safari' AND e.text IS NOT NULL\nLIMIT 20;\"\nOrder Room Service • HBO Max|Back\nOrder Room Service • HBO Max|Search\nOrder Room Service • HBO Max|Ukončiť prehrávanie\nOrder Room Service • HBO Max|Rozbaliť Epizód, 1 z 2\nOrder Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2\nOrder Room Service • HBO Max|Preskočiť dozadu o 10 s\nOrder Room Service • HBO Max|Pozastaviť\nOrder Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd\nOrder Room Service • HBO Max|Hlasitosť 100 %\nOrder Room Service • HBO Max|Nastavenia zvuku a titulkov\nOrder Room Service • HBO Max|Celá obrazovka\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|Favourites\nOrder Room Service • HBO Max|Tab Group Favourites\nOrder Room Service • HBO Max|NAS\nOrder Room Service • HBO Max|Home\nOrder Room Service • HBO Max|Portainer\nOrder Room Service • HBO Max|Nginx Proxy Manager\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clea","depth":4,"value":"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y\n npm install -g @anthropic-ai/claude-code\nDia npm install -g @anthropic-ai/claude-code\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\n claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\nDia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc\niTerm2 curl http://localhost:3030/health\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/health\n{\n\n💬\u0000 OCR TEXT SAMPLES PER APP\n───────────────────────────────────────\n iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(io]100% C8Thu 9 Apr 19:53:14\n\n🔢\u0000 TOTALS\n───────────────────────────────────────\nFrames: 523\nUI Events: 1305\nOCR texts: 271\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM memories LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM meetings LIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"SELECT * FROM elements LIMIT 5;\"\n1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.0334302319420709|0.0139534876081678|1.0|0|\n2|1|ocr|block|Shell||0|0.0828488374709768|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|1|\n3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.0174418595102098|0.0139534876081678|1.0|2|\n4|1|ocr|block|View||0|0.148255814457411|0.0069767448005672|0.0218023247188992|0.0139534876081678|1.0|3|\n5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.0350975381003486|0.0153918912675646|1.0|4|\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT 'memories' as tbl, COUNT(*) FROM memories\nUNION ALL SELECT 'meetings', COUNT(*) FROM meetings\nUNION ALL SELECT 'elements', COUNT(*) FROM elements\nUNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;\"\nmemories|0\nmeetings|0\nelements|34220\nocr_text|448\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE e.text IS NOT NULL\nGROUP BY f.app_name\nORDER BY elements DESC;\"\n|24604|206\nDia|2884|17\niTerm2|2087|136\nClaude|2040|8\nSafari|1248|10\nFirefox|454|1\nActivity Monitor|380|2\nSlack|234|1\nControl Centre|178|1\nUserNotificationCenter|20|4\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL\nLIMIT 30;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.window_name, e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'Safari' AND e.text IS NOT NULL\nLIMIT 20;\"\nOrder Room Service • HBO Max|Back\nOrder Room Service • HBO Max|Search\nOrder Room Service • HBO Max|Ukončiť prehrávanie\nOrder Room Service • HBO Max|Rozbaliť Epizód, 1 z 2\nOrder Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2\nOrder Room Service • HBO Max|Preskočiť dozadu o 10 s\nOrder Room Service • HBO Max|Pozastaviť\nOrder Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd\nOrder Room Service • HBO Max|Hlasitosť 100 %\nOrder Room Service • HBO Max|Nastavenia zvuku a titulkov\nOrder Room Service • HBO Max|Celá obrazovka\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|Favourites\nOrder Room Service • HBO Max|Tab Group Favourites\nOrder Room Service • HBO Max|NAS\nOrder Room Service • HBO Max|Home\nOrder Room Service • HBO Max|Portainer\nOrder Room Service • HBO Max|Nginx Proxy Manager\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clea","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
2774038436661058009
|
5693765216978349033
|
visual_change
|
accessibility
|
NULL
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claud lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ claude mcp add screenpipe -- npx -y
npm install -g @anthropic-ai/claude-code
Dia npm install -g @anthropic-ai/claude-code
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
Dia claude mcp add screenpipe --transport stdio --scope user -- npx -y screenpipe-mc
iTerm2 curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM memories LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM elements LIMIT 5;"
1|1|ocr|block|iTerm2||0|0.036337209192482|0.00697674468428822|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|0|
2|1|ocr|block|Shell||0|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|1|
3|1|ocr|block|Edit||0|0.117732558907686|0.00697674441297036|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|2|
4|1|ocr|block|View||0|0.148255814457411|0.[CREDIT_CARD]|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|3|
5|1|ocr|block|Session||0|0.181579138317795|0.006257542954757|0.[CREDIT_CARD]|0.[CREDIT_CARD]|1.0|4|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT 'memories' as tbl, COUNT(*) FROM memories
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text;"
memories|0
meetings|0
elements|34220
ocr_text|448
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.app_name, COUNT(*) as elements, COUNT(DISTINCT e.frame_id) as frames
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE e.text IS NOT NULL
GROUP BY f.app_name
ORDER BY elements DESC;"
|24604|206
Dia|2884|17
iTerm2|2087|136
Claude|2040|8
Safari|1248|10
Firefox|454|1
Activity Monitor|380|2
Slack|234|1
Control Centre|178|1
UserNotificationCenter|20|4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL
LIMIT 30;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.window_name, e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'Safari' AND e.text IS NOT NULL
LIMIT 20;"
Order Room Service • HBO Max|Back
Order Room Service • HBO Max|Search
Order Room Service • HBO Max|Ukončiť prehrávanie
Order Room Service • HBO Max|Rozbaliť Epizód, 1 z 2
Order Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2
Order Room Service • HBO Max|Preskočiť dozadu o 10 s
Order Room Service • HBO Max|Pozastaviť
Order Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd
Order Room Service • HBO Max|Hlasitosť 100 %
Order Room Service • HBO Max|Nastavenia zvuku a titulkov
Order Room Service • HBO Max|Celá obrazovka
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|Favourites
Order Room Service • HBO Max|Tab Group Favourites
Order Room Service • HBO Max|NAS
Order Room Service • HBO Max|Home
Order Room Service • HBO Max|Portainer
Order Room Service • HBO Max|Nginx Proxy Manager
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clea
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
820
|
|
823
|
19
|
54
|
2026-04-11T12:23:27.586697+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910207586_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
ORDER BY elements DESC;"
|24604|206
Dia|2884|1 ORDER BY elements DESC;"
|24604|206
Dia|2884|17
iTerm2|2087|136
Claude|2040|8
Safari|1248|10
Firefox|454|1
Activity Monitor|380|2
Slack|234|1
Control Centre|178|1
UserNotificationCenter|20|4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL
LIMIT 30;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.window_name, e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'Safari' AND e.text IS NOT NULL
LIMIT 20;"
Order Room Service • HBO Max|Back
Order Room Service • HBO Max|Search
Order Room Service • HBO Max|Ukončiť prehrávanie
Order Room Service • HBO Max|Rozbaliť Epizód, 1 z 2
Order Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2
Order Room Service • HBO Max|Preskočiť dozadu o 10 s
Order Room Service • HBO Max|Pozastaviť
Order Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd
Order Room Service • HBO Max|Hlasitosť 100 %
Order Room Service • HBO Max|Nastavenia zvuku a titulkov
Order Room Service • HBO Max|Celá obrazovka
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|Favourites
Order Room Service • HBO Max|Tab Group Favourites
Order Room Service • HBO Max|NAS
Order Room Service • HBO Max|Home
Order Room Service • HBO Max|Portainer
Order Room Service • HBO Max|Nginx Proxy Manager
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ # What roles exist in elements?
sqlite3 ~/.screenpipe/db.sqlite "SELECT role, COUNT(*) FROM elements GROUP BY role ORDER BY COUNT(*) DESC;"
# What are those 24k elements with no app_name?
sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.window_name, COUNT(*) as cnt
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name IS NULL AND e.text IS NOT NULL
GROUP BY f.window_name
ORDER BY cnt DESC
LIMIT 10;"
# iTerm2 elements with any role
sqlite3 ~/.screenpipe/db.sqlite "
SELECT e.role, e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'iTerm2' AND e.text IS NOT NULL
LIMIT 20;"
zsh: no matches found: elements?
block|25522
AXStaticText|4681
AXButton|1364
AXLink|1123
AXRadioButton|1017
AXTextField|607
AXCell|297
AXHeading|166
AXTextArea|151
AXPopUpButton|83
AXCheckBox|59
AXComboBox|7
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"ORDER BY elements DESC;\"\n|24604|206\nDia|2884|17\niTerm2|2087|136\nClaude|2040|8\nSafari|1248|10\nFirefox|454|1\nActivity Monitor|380|2\nSlack|234|1\nControl Centre|178|1\nUserNotificationCenter|20|4\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL\nLIMIT 30;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.window_name, e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'Safari' AND e.text IS NOT NULL\nLIMIT 20;\"\nOrder Room Service • HBO Max|Back\nOrder Room Service • HBO Max|Search\nOrder Room Service • HBO Max|Ukončiť prehrávanie\nOrder Room Service • HBO Max|Rozbaliť Epizód, 1 z 2\nOrder Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2\nOrder Room Service • HBO Max|Preskočiť dozadu o 10 s\nOrder Room Service • HBO Max|Pozastaviť\nOrder Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd\nOrder Room Service • HBO Max|Hlasitosť 100 %\nOrder Room Service • HBO Max|Nastavenia zvuku a titulkov\nOrder Room Service • HBO Max|Celá obrazovka\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|Favourites\nOrder Room Service • HBO Max|Tab Group Favourites\nOrder Room Service • HBO Max|NAS\nOrder Room Service • HBO Max|Home\nOrder Room Service • HBO Max|Portainer\nOrder Room Service • HBO Max|Nginx Proxy Manager\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ # What roles exist in elements?\nsqlite3 ~/.screenpipe/db.sqlite \"SELECT role, COUNT(*) FROM elements GROUP BY role ORDER BY COUNT(*) DESC;\"\n\n# What are those 24k elements with no app_name?\nsqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.window_name, COUNT(*) as cnt\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name IS NULL AND e.text IS NOT NULL\nGROUP BY f.window_name\nORDER BY cnt DESC\nLIMIT 10;\"\n\n# iTerm2 elements with any role\nsqlite3 ~/.screenpipe/db.sqlite \"\nSELECT e.role, e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'iTerm2' AND e.text IS NOT NULL\nLIMIT 20;\"\nzsh: no matches found: elements?\nblock|25522\nAXStaticText|4681\nAXButton|1364\nAXLink|1123\nAXRadioButton|1017\nAXTextField|607\nAXCell|297\nAXHeading|166\nAXTextArea|151\nAXPopUpButton|83\nAXCheckBox|59\nAXComboBox|7","depth":4,"value":"ORDER BY elements DESC;\"\n|24604|206\nDia|2884|17\niTerm2|2087|136\nClaude|2040|8\nSafari|1248|10\nFirefox|454|1\nActivity Monitor|380|2\nSlack|234|1\nControl Centre|178|1\nUserNotificationCenter|20|4\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL\nLIMIT 30;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.window_name, e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'Safari' AND e.text IS NOT NULL\nLIMIT 20;\"\nOrder Room Service • HBO Max|Back\nOrder Room Service • HBO Max|Search\nOrder Room Service • HBO Max|Ukončiť prehrávanie\nOrder Room Service • HBO Max|Rozbaliť Epizód, 1 z 2\nOrder Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2\nOrder Room Service • HBO Max|Preskočiť dozadu o 10 s\nOrder Room Service • HBO Max|Pozastaviť\nOrder Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd\nOrder Room Service • HBO Max|Hlasitosť 100 %\nOrder Room Service • HBO Max|Nastavenia zvuku a titulkov\nOrder Room Service • HBO Max|Celá obrazovka\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|Favourites\nOrder Room Service • HBO Max|Tab Group Favourites\nOrder Room Service • HBO Max|NAS\nOrder Room Service • HBO Max|Home\nOrder Room Service • HBO Max|Portainer\nOrder Room Service • HBO Max|Nginx Proxy Manager\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ # What roles exist in elements?\nsqlite3 ~/.screenpipe/db.sqlite \"SELECT role, COUNT(*) FROM elements GROUP BY role ORDER BY COUNT(*) DESC;\"\n\n# What are those 24k elements with no app_name?\nsqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.window_name, COUNT(*) as cnt\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name IS NULL AND e.text IS NOT NULL\nGROUP BY f.window_name\nORDER BY cnt DESC\nLIMIT 10;\"\n\n# iTerm2 elements with any role\nsqlite3 ~/.screenpipe/db.sqlite \"\nSELECT e.role, e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'iTerm2' AND e.text IS NOT NULL\nLIMIT 20;\"\nzsh: no matches found: elements?\nblock|25522\nAXStaticText|4681\nAXButton|1364\nAXLink|1123\nAXRadioButton|1017\nAXTextField|607\nAXCell|297\nAXHeading|166\nAXTextArea|151\nAXPopUpButton|83\nAXCheckBox|59\nAXComboBox|7","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
-5907118204318333059
|
5694749881180760553
|
visual_change
|
accessibility
|
NULL
|
ORDER BY elements DESC;"
|24604|206
Dia|2884|1 ORDER BY elements DESC;"
|24604|206
Dia|2884|17
iTerm2|2087|136
Claude|2040|8
Safari|1248|10
Firefox|454|1
Activity Monitor|380|2
Slack|234|1
Control Centre|178|1
UserNotificationCenter|20|4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL
LIMIT 30;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.window_name, e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'Safari' AND e.text IS NOT NULL
LIMIT 20;"
Order Room Service • HBO Max|Back
Order Room Service • HBO Max|Search
Order Room Service • HBO Max|Ukončiť prehrávanie
Order Room Service • HBO Max|Rozbaliť Epizód, 1 z 2
Order Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2
Order Room Service • HBO Max|Preskočiť dozadu o 10 s
Order Room Service • HBO Max|Pozastaviť
Order Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd
Order Room Service • HBO Max|Hlasitosť 100 %
Order Room Service • HBO Max|Nastavenia zvuku a titulkov
Order Room Service • HBO Max|Celá obrazovka
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|Favourites
Order Room Service • HBO Max|Tab Group Favourites
Order Room Service • HBO Max|NAS
Order Room Service • HBO Max|Home
Order Room Service • HBO Max|Portainer
Order Room Service • HBO Max|Nginx Proxy Manager
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ # What roles exist in elements?
sqlite3 ~/.screenpipe/db.sqlite "SELECT role, COUNT(*) FROM elements GROUP BY role ORDER BY COUNT(*) DESC;"
# What are those 24k elements with no app_name?
sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.window_name, COUNT(*) as cnt
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name IS NULL AND e.text IS NOT NULL
GROUP BY f.window_name
ORDER BY cnt DESC
LIMIT 10;"
# iTerm2 elements with any role
sqlite3 ~/.screenpipe/db.sqlite "
SELECT e.role, e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'iTerm2' AND e.text IS NOT NULL
LIMIT 20;"
zsh: no matches found: elements?
block|25522
AXStaticText|4681
AXButton|1364
AXLink|1123
AXRadioButton|1017
AXTextField|607
AXCell|297
AXHeading|166
AXTextArea|151
AXPopUpButton|83
AXCheckBox|59
AXComboBox|7
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
822
|
|
824
|
19
|
55
|
2026-04-11T12:23:30.599060+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910210599_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
ORDER BY elements DESC;"
|24604|206
Dia|2884|1 ORDER BY elements DESC;"
|24604|206
Dia|2884|17
iTerm2|2087|136
Claude|2040|8
Safari|1248|10
Firefox|454|1
Activity Monitor|380|2
Slack|234|1
Control Centre|178|1
UserNotificationCenter|20|4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL
LIMIT 30;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.window_name, e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'Safari' AND e.text IS NOT NULL
LIMIT 20;"
Order Room Service • HBO Max|Back
Order Room Service • HBO Max|Search
Order Room Service • HBO Max|Ukončiť prehrávanie
Order Room Service • HBO Max|Rozbaliť Epizód, 1 z 2
Order Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2
Order Room Service • HBO Max|Preskočiť dozadu o 10 s
Order Room Service • HBO Max|Pozastaviť
Order Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd
Order Room Service • HBO Max|Hlasitosť 100 %
Order Room Service • HBO Max|Nastavenia zvuku a titulkov
Order Room Service • HBO Max|Celá obrazovka
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|Favourites
Order Room Service • HBO Max|Tab Group Favourites
Order Room Service • HBO Max|NAS
Order Room Service • HBO Max|Home
Order Room Service • HBO Max|Portainer
Order Room Service • HBO Max|Nginx Proxy Manager
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ # What roles exist in elements?
sqlite3 ~/.screenpipe/db.sqlite "SELECT role, COUNT(*) FROM elements GROUP BY role ORDER BY COUNT(*) DESC;"
# What are those 24k elements with no app_name?
sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.window_name, COUNT(*) as cnt
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name IS NULL AND e.text IS NOT NULL
GROUP BY f.window_name
ORDER BY cnt DESC
LIMIT 10;"
# iTerm2 elements with any role
sqlite3 ~/.screenpipe/db.sqlite "
SELECT e.role, e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'iTerm2' AND e.text IS NOT NULL
LIMIT 20;"
zsh: no matches found: elements?
block|25522
AXStaticText|4681
AXButton|1364
AXLink|1123
AXRadioButton|1017
AXTextField|607
AXCell|297
AXHeading|166
AXTextArea|151
AXPopUpButton|83
AXCheckBox|59
AXComboBox|7
zsh: no matches found: app_name?
|25079
zsh: command not found: #
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXRadioButton|DOCKER
AXRadioButton|DEV (-zsh)
AXRadioButton|APP (-zsh)
AXRadioButton|screenpipe"
AXRadioButton|Python"
AXStaticText|⌥⌘1
AXStaticText|screenpipe"
AXTextArea|Last login: Thu Apr 9 19:52:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ cd
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ npx screenpipe@latest record
detected hardware tier: Mid
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-04-09T19:53:07.212588Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-09T19:53:08.176294Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-09T19:53:08.180179Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-09T19:53:08.180172Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-09T19:53:08.180644Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-09T19:53:08.181079Z INFO screenpipe_audio::speaker::models: initiating wespeaker_en_voxceleb_CAM++.onnx model download...
2026-04-09T19:53:08.181124Z WARN screenpipe_audio::segmentation::segmentation_manager: embedding model unavailable at startup: wespeaker_en_voxceleb_CAM++.onnx model not available yet; download started in background
2026-04-09T19:53:08.181175Z INFO screenpipe_audio::speaker::models: initiating segmentation-3.0.onnx model download...
2026-04-09T19:53:08.181183Z WARN screenpipe_audio::segmentation::segmentation_manager: segmentation model unavailable at startup: segmentation-3.0.onnx model not available yet; download started in background
2026-04-09T19:53:08.181157Z INFO screenpipe_audio::speaker::models: wespeaker_en_voxceleb_CAM++.onnx model download attempt 1/3
2026-04-09T19:53:08.181223Z WARN screenpipe_audio::audio_manager::manager: silero vad unavailable, falling back to webrtc: silero vad model not available yet; download started in background
2026-04-09T19:53:08.181225Z INFO screenpipe_audio::speaker::models: downloading wespeaker_en_voxceleb_CAM++.onnx model from [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"ORDER BY elements DESC;\"\n|24604|206\nDia|2884|17\niTerm2|2087|136\nClaude|2040|8\nSafari|1248|10\nFirefox|454|1\nActivity Monitor|380|2\nSlack|234|1\nControl Centre|178|1\nUserNotificationCenter|20|4\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL\nLIMIT 30;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.window_name, e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'Safari' AND e.text IS NOT NULL\nLIMIT 20;\"\nOrder Room Service • HBO Max|Back\nOrder Room Service • HBO Max|Search\nOrder Room Service • HBO Max|Ukončiť prehrávanie\nOrder Room Service • HBO Max|Rozbaliť Epizód, 1 z 2\nOrder Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2\nOrder Room Service • HBO Max|Preskočiť dozadu o 10 s\nOrder Room Service • HBO Max|Pozastaviť\nOrder Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd\nOrder Room Service • HBO Max|Hlasitosť 100 %\nOrder Room Service • HBO Max|Nastavenia zvuku a titulkov\nOrder Room Service • HBO Max|Celá obrazovka\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|Favourites\nOrder Room Service • HBO Max|Tab Group Favourites\nOrder Room Service • HBO Max|NAS\nOrder Room Service • HBO Max|Home\nOrder Room Service • HBO Max|Portainer\nOrder Room Service • HBO Max|Nginx Proxy Manager\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ # What roles exist in elements?\nsqlite3 ~/.screenpipe/db.sqlite \"SELECT role, COUNT(*) FROM elements GROUP BY role ORDER BY COUNT(*) DESC;\"\n\n# What are those 24k elements with no app_name?\nsqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.window_name, COUNT(*) as cnt\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name IS NULL AND e.text IS NOT NULL\nGROUP BY f.window_name\nORDER BY cnt DESC\nLIMIT 10;\"\n\n# iTerm2 elements with any role\nsqlite3 ~/.screenpipe/db.sqlite \"\nSELECT e.role, e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'iTerm2' AND e.text IS NOT NULL\nLIMIT 20;\"\nzsh: no matches found: elements?\nblock|25522\nAXStaticText|4681\nAXButton|1364\nAXLink|1123\nAXRadioButton|1017\nAXTextField|607\nAXCell|297\nAXHeading|166\nAXTextArea|151\nAXPopUpButton|83\nAXCheckBox|59\nAXComboBox|7\nzsh: no matches found: app_name?\n|25079\nzsh: command not found: #\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXRadioButton|DOCKER\nAXRadioButton|DEV (-zsh)\nAXRadioButton|APP (-zsh)\nAXRadioButton|screenpipe\"\nAXRadioButton|Python\"\nAXStaticText|⌥⌘1\nAXStaticText|screenpipe\"\nAXTextArea|Last login: Thu Apr 9 19:52:08 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ cd\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ npx screenpipe@latest record\ndetected hardware tier: Mid\nchecking permissions...\n screen recording: ok\n microphone: ok\n accessibility: ok\n2026-04-09T19:53:07.212588Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-09T19:53:08.176294Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-09T19:53:08.180179Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-09T19:53:08.180172Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-09T19:53:08.180644Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-09T19:53:08.181079Z INFO screenpipe_audio::speaker::models: initiating wespeaker_en_voxceleb_CAM++.onnx model download...\n2026-04-09T19:53:08.181124Z WARN screenpipe_audio::segmentation::segmentation_manager: embedding model unavailable at startup: wespeaker_en_voxceleb_CAM++.onnx model not available yet; download started in background\n2026-04-09T19:53:08.181175Z INFO screenpipe_audio::speaker::models: initiating segmentation-3.0.onnx model download...\n2026-04-09T19:53:08.181183Z WARN screenpipe_audio::segmentation::segmentation_manager: segmentation model unavailable at startup: segmentation-3.0.onnx model not available yet; download started in background\n2026-04-09T19:53:08.181157Z INFO screenpipe_audio::speaker::models: wespeaker_en_voxceleb_CAM++.onnx model download attempt 1/3\n2026-04-09T19:53:08.181223Z WARN screenpipe_audio::audio_manager::manager: silero vad unavailable, falling back to webrtc: silero vad model not available yet; download started in background\n2026-04-09T19:53:08.181225Z INFO screenpipe_audio::speaker::models: downloading wespeaker_en_voxceleb_CAM++.onnx model from https://github.com/screenpipe/screenpipe/raw/refs/heads/main/crates/screenpipe-audio/models/pyannote/wespeaker_en_voxceleb_CAM++.onnx\n2026-04-09T19:53:08.181212Z INFO screenpipe_audio::speaker::models: segmentation-3.0.onnx model download attempt 1/3\n2026-04-09T19:53:08.181526Z INFO screenpipe_audio::speaker::models: downloading segmentation-3.0.onnx model from https://github.com/screenpipe/screenpipe/raw/refs/heads/main/crates/screenpipe-audio/models/pyannote/segmentation-3.0.onnx\n2026-04-09T19:53:08.181252Z INFO screenpipe_audio::vad::silero: downloading Silero VAD v5 model...\n2026-04-09T19:53:08.181607Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-09T19:53:08.181646Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-09T19:53:08.181366Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-09T19:53:08.181759Z INFO screenpipe_core::pipes: installed built-in pipe: day-recap\n2026-04-09T19:53:08.181952Z INFO screenpipe_core::pipes: installed built-in pipe: standup-update\n2026-04-09T19:53:08.182315Z INFO screenpipe_core::pipes: installed built-in pipe: ai-habits\n2026-04-09T19:53:08.182501Z INFO screenpipe_core::pipes: installed built-in pipe: time-breakdown\n2026-04-09T19:53:08.182680Z INFO screenpipe_core::pipes: installed built-in pipe: video-export\n2026-04-09T19:53:08.182875Z INFO screenpipe_core::pipes: installed built-in pipe: meeting-summary\n2026-04-09T19:53:08.183091Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-09T19:53:08.183146Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-09T19:53:08.183187Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-09T19:53:08.183237Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-09T19:53:08.183306Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-09T19:53:08.183363Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-09T19:53:08.183380Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ false │\n│ vision disabled │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ no monitors available │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ soundcore AeroClip (input) │\n│ │ System Audio (output) │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-09T19:53:08.185865Z INFO screenpipe: starting UI event capture\n2026-04-09T19:53:08.185586Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-09T19:53:08.188922Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n2026-04-09T19:53:08.194461Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-09T19:53:08.201212Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-09T19:53:08.217633Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-09T19:53:08.217794Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-08 16:53:08.217792 UTC to 2026-04-09 16:53:08.217792 UTC)\n2026-04-09T19:53:08.217649Z INFO screenpipe_engine::ui_recorder: UI recording session started: 3b59b1d1-d80e-4689-8c72-6476af4571df\n2026-04-09T19:53:08.220368Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-09T19:53:08.222489Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 0 frame entries, coverage from 2026-04-08 16:53:08.217792 UTC\n2026-04-09T19:53:08.227257Z INFO screenpipe_engine::server: Server listening on 0.0.0.0:3030\n2026-04-09T19:53:08.232250Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-09T19:53:08.543211Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-09T19:53:08.543241Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-09T19:53:08.543253Z INFO screenpipe_engine::vision_manager::manager: Skipping monitor 2 (Display 2_3008x1253_-813,-1253) — not in allowed list\n2026-04-09T19:53:08.543262Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (polling every 5 seconds)\n2026-04-09T19:53:08.543299Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-09T19:53:09.210453Z INFO screenpipe_audio::vad::silero: Silero VAD v5 model downloaded and saved to: \"/Users/lukas/Library/Caches/screenpipe/vad/silero_vad_v5.onnx\"\n2026-04-09T19:53:09.352790Z INFO screenpipe_audio::speaker::models: saving segmentation-3.0.onnx model (5983836 bytes) to \"/Users/lukas/Library/Caches/screenpipe/models/segmentation-3.0.onnx\"\n2026-04-09T19:53:09.355799Z INFO screenpipe_audio::speaker::models: segmentation-3.0.onnx model successfully downloaded and saved\n2026-04-09T19:53:09.367746Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps)\n2026-04-09T19:53:10.102366Z INFO screenpipe_audio::speaker::models: saving wespeaker_en_voxceleb_CAM++.onnx model (29292684 bytes) to \"/Users/lukas/Library/Caches/screenpipe/models/wespeaker_en_voxceleb_CAM++.onnx\"\n2026-04-09T19:53:10.112264Z INFO screenpipe_audio::speaker::models: wespeaker_en_voxceleb_CAM++.onnx model successfully downloaded and saved\n2026-04-09T19:53:13.221908Z INFO screenpipe_engine::retention: retention: initialized with 14d retention\n2026-04-09T19:53:13.222855Z INFO screenpipe: local retention auto-enabled (14 days)\n2026-04-09T19:53:15.841867Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=1, dur=797ms\n2026-04-09T19:53:18.189478Z WARN screenpipe_audio::transcription::engine: whisper model is not available locally yet for WhisperTiny; audio transcription disabled until download completes\n2026-04-09T19:53:18.189794Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:53:18.190227Z INFO screenpipe_audio::transcription::whisper::model: downloading model \"ggml-tiny.bin\"\n2026-04-09T19:53:18.190847Z INFO screenpipe_audio::audio_manager::manager: audio manager started\n2026-04-09T19:53:18.190916Z INFO screenpipe_audio::audio_manager::manager: calendar-assisted speaker diarization: listening for meeting events\nggml-tiny.bin [00:00:01] [███████████████████████████████████████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 38.34 MiB/74.09 MiB 21.65 MiB/s (2s)2026-04-09T19:53:19.720503Z INFO screenpipe_audio::audio_manager::device_monitor: model capabilities changed after background download; restarting central handlers\n2026-04-09T19:53:19.720675Z WARN screenpipe_audio::transcription::engine: whisper model is not available locally yet for WhisperTiny; audio transcription disabled until download completes\n2026-04-09T19:53:19.720732Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:53:19.720787Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh\n2026-04-09T19:53:19.720795Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh\n2026-04-09T19:53:19.721204Z INFO screenpipe_audio::transcription::whisper::model: downloading model \"ggml-tiny.bin\"\nggml-tiny.bin [00:00:01] [██████████████████████████████████████████████████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 45.66 MiB/74.09 MiB 23.13 MiB/s (1s)\nggml-tiny.bin [00:00:00] [███░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 2.09 MiB/74.09 MiB 1.63 MiB/s (44s)2026-04-09T19:53:20.383627Z INFO screenpipe_audio::device::device_manager: starting recording for device: System Audio (output)\n2026-04-09T19:53:20.383837Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for System Audio (output) (30s segments)\nggml-tiny.bin [00:00:01] [██████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 9.22 MiB/74.09 MiB 4.95 MiB/s (13s)2026-04-09T19:53:20.972014Z INFO screenpipe_audio::device::device_manager: starting recording for device: soundcore AeroClip (input)\n2026-04-09T19:53:20.972101Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for soundcore AeroClip (input) (30s segments)\nggml-tiny.bin [00:00:02] [███████████████████████████████████████████████████████████████████████████████████████████████████████████████████] 74.09 MiB/74.09 MiB 28.28 MiB/s (0s)2026-04-09T19:53:21.047457Z INFO screenpipe_audio::transcription::whisper::model: model downloaded ggml-tiny.bin\n2026-04-09T19:53:21.047589Z INFO screenpipe_audio::transcription::engine: whisper model downloaded in background: \"/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin\"\nggml-tiny.bin [00:00:03] [███████████████████████████████████████████████████████████████████████████████████████████████████████████████████] 74.09 MiB/74.09 MiB 23.56 MiB/s (0s)2026-04-09T19:53:23.080110Z INFO screenpipe_audio::transcription::whisper::model: model downloaded ggml-tiny.bin\n2026-04-09T19:53:23.080240Z INFO screenpipe_audio::transcription::engine: whisper model downloaded in background: \"/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin\"\n2026-04-09T19:53:52.431282Z INFO screenpipe_audio::transcription::engine: whisper model available: \"/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin\"\n2026-04-09T19:53:52.431325Z INFO screenpipe_audio::transcription::whisper::model: whisper context: gpu acceleration enabled (Metal on macOS, Vulkan on Windows)\n2026-04-09T19:53:52.431330Z INFO screenpipe_audio::transcription::engine: loading whisper model with GPU acceleration...\nwhisper_init_from_file_with_params_no_state: loading model from '/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin'\nwhisper_init_with_params_no_state: use gpu = 1\nwhisper_init_with_params_no_state: flash attn = 0\nwhisper_init_with_params_no_state: gpu_device = 0\nwhisper_init_with_params_no_state: dtw = 0\nggml_metal_device_init: tensor API disabled for pre-M5 and pre-A19 devices\nggml_metal_library_init: using embedded metal library\nggml_metal_library_init: loaded in 14.652 sec\nggml_metal_rsets_init: creating a residency set collection (keep_alive = 180 s)\nggml_metal_device_init: GPU name: Apple M1\nggml_metal_device_init: GPU family: MTLGPUFamilyApple7 (1007)\nggml_metal_device_init: GPU family: MTLGPUFamilyCommon3 (3003)\nggml_metal_device_init: GPU family: MTLGPUFamilyMetal3 (5001)\nggml_metal_device_init: simdgroup reduction = true\nggml_metal_device_init: simdgroup matrix mul. = true\nggml_metal_device_init: has unified memory = true\nggml_metal_device_init: has bfloat = true\nggml_metal_device_init: has tensor = false\nggml_metal_device_init: use residency sets = true\nggml_metal_device_init: use shared buffers = true\nggml_metal_device_init: recommendedMaxWorkingSetSize = 11453.25 MB\nwhisper_init_with_params_no_state: devices = 3\nwhisper_init_with_params_no_state: backends = 3\nwhisper_model_load: loading model\nwhisper_model_load: n_vocab = 51865\nwhisper_model_load: n_audio_ctx = 1500\nwhisper_model_load: n_audio_state = 384\nwhisper_model_load: n_audio_head = 6\nwhisper_model_load: n_audio_layer = 4\nwhisper_model_load: n_text_ctx = 448\nwhisper_model_load: n_text_state = 384\nwhisper_model_load: n_text_head = 6\nwhisper_model_load: n_text_layer = 4\nwhisper_model_load: n_mels = 80\nwhisper_model_load: ftype = 1\nwhisper_model_load: qntvr = 0\nwhisper_model_load: type = 1 (tiny)\nwhisper_model_load: adding 1608 extra tokens\nwhisper_model_load: n_langs = 99\nwhisper_model_load: Metal total size = 77.11 MB\nwhisper_model_load: model size = 77.11 MB\n2026-04-09T19:54:07.178366Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully\n2026-04-09T19:54:07.178441Z INFO screenpipe_audio::audio_manager::device_monitor: model capabilities changed after background download; restarting central handlers\n2026-04-09T19:54:07.178636Z INFO screenpipe_audio::transcription::engine: whisper model available: \"/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin\"\n2026-04-09T19:54:07.178655Z INFO screenpipe_audio::transcription::whisper::model: whisper context: gpu acceleration enabled (Metal on macOS, Vulkan on Windows)\n2026-04-09T19:54:07.178661Z INFO screenpipe_audio::transcription::engine: loading whisper model with GPU acceleration...\nwhisper_init_from_file_with_params_no_state: loading model from '/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin'\nwhisper_init_with_params_no_state: use gpu = 1\nwhisper_init_with_params_no_state: flash attn = 0\nwhisper_init_with_params_no_state: gpu_device = 0\nwhisper_init_with_params_no_state: dtw = 0\nwhisper_init_with_params_no_state: devices = 3\nwhisper_init_with_params_no_state: backends = 3\nwhisper_model_load: loading model\nwhisper_model_load: n_vocab = 51865\nwhisper_model_load: n_audio_ctx = 1500\nwhisper_model_load: n_audio_state = 384\nwhisper_model_load: n_audio_head = 6\nwhisper_model_load: n_audio_layer = 4\nwhisper_model_load: n_text_ctx = 448\nwhisper_model_load: n_text_state = 384\nwhisper_model_load: n_text_head = 6\nwhisper_model_load: n_text_layer = 4\nwhisper_model_load: n_mels = 80\nwhisper_model_load: ftype = 1\nwhisper_model_load: qntvr = 0\nwhisper_model_load: type = 1 (tiny)\nwhisper_model_load: adding 1608 extra tokens\nwhisper_model_load: n_langs = 99\nwhisper_model_load: Metal total size = 77.11 MB\nwhisper_model_load: model size = 77.11 MB\n2026-04-09T19:54:07.242116Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully\nwhisper_backend_init_gpu: device 0: Metal (type: 1)\nwhisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)\nwhisper_backend_init_gpu: using Metal backend\nggml_metal_init: allocating\nggml_metal_init: found device: Apple M1\nggml_metal_init: picking default device: Apple M1\nggml_metal_init: use fusion = true\nggml_metal_init: use concurrency = true\nggml_metal_init: use graph optimize = true\nwhisper_backend_init: using BLAS backend\nwhisper_init_state: kv self size = 3.15 MB\nwhisper_init_state: kv cross size = 9.44 MB\nwhisper_init_state: kv pad size = 2.36 MB\nwhisper_init_state: compute buffer (conv) = 14.17 MB\nwhisper_init_state: compute buffer (encode) = 65.96 MB\nwhisper_init_state: compute buffer (cross) = 8.50 MB\nwhisper_init_state: compute buffer (decode) = 96.83 MB\n2026-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh\n2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh\n2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXRadioButton|DOCKER\nAXRadioButton|DEV (-zsh)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","depth":4,"value":"ORDER BY elements DESC;\"\n|24604|206\nDia|2884|17\niTerm2|2087|136\nClaude|2040|8\nSafari|1248|10\nFirefox|454|1\nActivity Monitor|380|2\nSlack|234|1\nControl Centre|178|1\nUserNotificationCenter|20|4\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL\nLIMIT 30;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.window_name, e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'Safari' AND e.text IS NOT NULL\nLIMIT 20;\"\nOrder Room Service • HBO Max|Back\nOrder Room Service • HBO Max|Search\nOrder Room Service • HBO Max|Ukončiť prehrávanie\nOrder Room Service • HBO Max|Rozbaliť Epizód, 1 z 2\nOrder Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2\nOrder Room Service • HBO Max|Preskočiť dozadu o 10 s\nOrder Room Service • HBO Max|Pozastaviť\nOrder Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd\nOrder Room Service • HBO Max|Hlasitosť 100 %\nOrder Room Service • HBO Max|Nastavenia zvuku a titulkov\nOrder Room Service • HBO Max|Celá obrazovka\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|close tab\nOrder Room Service • HBO Max|Favourites\nOrder Room Service • HBO Max|Tab Group Favourites\nOrder Room Service • HBO Max|NAS\nOrder Room Service • HBO Max|Home\nOrder Room Service • HBO Max|Portainer\nOrder Room Service • HBO Max|Nginx Proxy Manager\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ # What roles exist in elements?\nsqlite3 ~/.screenpipe/db.sqlite \"SELECT role, COUNT(*) FROM elements GROUP BY role ORDER BY COUNT(*) DESC;\"\n\n# What are those 24k elements with no app_name?\nsqlite3 ~/.screenpipe/db.sqlite \"\nSELECT f.window_name, COUNT(*) as cnt\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name IS NULL AND e.text IS NOT NULL\nGROUP BY f.window_name\nORDER BY cnt DESC\nLIMIT 10;\"\n\n# iTerm2 elements with any role\nsqlite3 ~/.screenpipe/db.sqlite \"\nSELECT e.role, e.text\nFROM elements e\nJOIN frames f ON e.frame_id = f.id\nWHERE f.app_name = 'iTerm2' AND e.text IS NOT NULL\nLIMIT 20;\"\nzsh: no matches found: elements?\nblock|25522\nAXStaticText|4681\nAXButton|1364\nAXLink|1123\nAXRadioButton|1017\nAXTextField|607\nAXCell|297\nAXHeading|166\nAXTextArea|151\nAXPopUpButton|83\nAXCheckBox|59\nAXComboBox|7\nzsh: no matches found: app_name?\n|25079\nzsh: command not found: #\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXRadioButton|DOCKER\nAXRadioButton|DEV (-zsh)\nAXRadioButton|APP (-zsh)\nAXRadioButton|screenpipe\"\nAXRadioButton|Python\"\nAXStaticText|⌥⌘1\nAXStaticText|screenpipe\"\nAXTextArea|Last login: Thu Apr 9 19:52:08 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ cd\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ npx screenpipe@latest record\ndetected hardware tier: Mid\nchecking permissions...\n screen recording: ok\n microphone: ok\n accessibility: ok\n2026-04-09T19:53:07.212588Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6\n2026-04-09T19:53:08.176294Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor\n2026-04-09T19:53:08.180179Z INFO screenpipe: meeting detector enabled — independent of transcription mode\n2026-04-09T19:53:08.180172Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)\n2026-04-09T19:53:08.180644Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)\n2026-04-09T19:53:08.181079Z INFO screenpipe_audio::speaker::models: initiating wespeaker_en_voxceleb_CAM++.onnx model download...\n2026-04-09T19:53:08.181124Z WARN screenpipe_audio::segmentation::segmentation_manager: embedding model unavailable at startup: wespeaker_en_voxceleb_CAM++.onnx model not available yet; download started in background\n2026-04-09T19:53:08.181175Z INFO screenpipe_audio::speaker::models: initiating segmentation-3.0.onnx model download...\n2026-04-09T19:53:08.181183Z WARN screenpipe_audio::segmentation::segmentation_manager: segmentation model unavailable at startup: segmentation-3.0.onnx model not available yet; download started in background\n2026-04-09T19:53:08.181157Z INFO screenpipe_audio::speaker::models: wespeaker_en_voxceleb_CAM++.onnx model download attempt 1/3\n2026-04-09T19:53:08.181223Z WARN screenpipe_audio::audio_manager::manager: silero vad unavailable, falling back to webrtc: silero vad model not available yet; download started in background\n2026-04-09T19:53:08.181225Z INFO screenpipe_audio::speaker::models: downloading wespeaker_en_voxceleb_CAM++.onnx model from https://github.com/screenpipe/screenpipe/raw/refs/heads/main/crates/screenpipe-audio/models/pyannote/wespeaker_en_voxceleb_CAM++.onnx\n2026-04-09T19:53:08.181212Z INFO screenpipe_audio::speaker::models: segmentation-3.0.onnx model download attempt 1/3\n2026-04-09T19:53:08.181526Z INFO screenpipe_audio::speaker::models: downloading segmentation-3.0.onnx model from https://github.com/screenpipe/screenpipe/raw/refs/heads/main/crates/screenpipe-audio/models/pyannote/segmentation-3.0.onnx\n2026-04-09T19:53:08.181252Z INFO screenpipe_audio::vad::silero: downloading Silero VAD v5 model...\n2026-04-09T19:53:08.181607Z INFO screenpipe_engine::snapshot_compaction: snapshot compaction worker started (min_age=600s, poll=300s)\n2026-04-09T19:53:08.181646Z INFO screenpipe_engine::vision_manager::manager: Starting VisionManager\n2026-04-09T19:53:08.181366Z INFO screenpipe_engine::power::manager: power manager started (poll interval: 10s)\n2026-04-09T19:53:08.181759Z INFO screenpipe_core::pipes: installed built-in pipe: day-recap\n2026-04-09T19:53:08.181952Z INFO screenpipe_core::pipes: installed built-in pipe: standup-update\n2026-04-09T19:53:08.182315Z INFO screenpipe_core::pipes: installed built-in pipe: ai-habits\n2026-04-09T19:53:08.182501Z INFO screenpipe_core::pipes: installed built-in pipe: time-breakdown\n2026-04-09T19:53:08.182680Z INFO screenpipe_core::pipes: installed built-in pipe: video-export\n2026-04-09T19:53:08.182875Z INFO screenpipe_core::pipes: installed built-in pipe: meeting-summary\n2026-04-09T19:53:08.183091Z INFO screenpipe_core::pipes: loaded pipe: day-recap\n2026-04-09T19:53:08.183146Z INFO screenpipe_core::pipes: loaded pipe: standup-update\n2026-04-09T19:53:08.183187Z INFO screenpipe_core::pipes: loaded pipe: ai-habits\n2026-04-09T19:53:08.183237Z INFO screenpipe_core::pipes: loaded pipe: time-breakdown\n2026-04-09T19:53:08.183306Z INFO screenpipe_core::pipes: loaded pipe: video-export\n2026-04-09T19:53:08.183363Z INFO screenpipe_core::pipes: loaded pipe: meeting-summary\n2026-04-09T19:53:08.183380Z INFO screenpipe_core::pipes: loaded 6 pipes from \"/Users/lukas/.screenpipe/pipes\"\n\n\n\n _ \n __________________ ___ ____ ____ (_____ ___ \n / ___/ ___/ ___/ _ \\/ _ \\/ __ \\ / __ \\/ / __ \\/ _ \\\n (__ / /__/ / / __/ __/ / / / / /_/ / / /_/ / __/\n/____/\\___/_/ \\___/\\___/_/ /_/ / .___/_/ .___/\\___/ \n /_/ /_/ \n\n\n\npower AI by everything you've seen, said or heard\nopen source | runs locally | developer friendly\n\n\n┌────────────────────────┬────────────────────────────────────┐\n│ setting │ value │\n├────────────────────────┼────────────────────────────────────┤\n│ audio chunk duration │ 30 seconds │\n│ port │ 3030 │\n│ audio disabled │ false │\n│ vision disabled │ false │\n│ audio engine │ Parakeet │\n│ vad engine │ Silero │\n│ data directory │ /Users/lukas/.screenpipe │\n│ debug mode │ false │\n│ telemetry │ true │\n│ use pii removal │ true │\n│ use all monitors │ true │\n│ ignored windows │ [] │\n│ included windows │ [] │\n│ cloud sync │ disabled │\n│ auto-destruct pid │ 0 │\n│ deepgram key │ not set │\n├────────────────────────┼────────────────────────────────────┤\n│ languages │ │\n│ │ all languages │\n├────────────────────────┼────────────────────────────────────┤\n│ monitors │ │\n│ │ no monitors available │\n├────────────────────────┼────────────────────────────────────┤\n│ audio devices │ │\n│ │ soundcore AeroClip (input) │\n│ │ System Audio (output) │\n└────────────────────────┴────────────────────────────────────┘\nyou are using local processing. all your data stays on your computer.\n\nwarning: telemetry is enabled. only error-level data will be sent.\nto disable, use the --disable-telemetry flag.\n\ncheck latest changes here: https://github.com/screenpipe/screenpipe/releases\n2026-04-09T19:53:08.185865Z INFO screenpipe: starting UI event capture\n2026-04-09T19:53:08.185586Z INFO screenpipe_core::pipes: pipe scheduler started (generation 2)\n2026-04-09T19:53:08.188922Z WARN screenpipe: pi agent install failed: bun not found — install from https://bun.sh\n2026-04-09T19:53:08.194461Z INFO screenpipe_engine::power::manager: initial power profile: Performance (on_ac=true, battery=Some(100))\n2026-04-09T19:53:08.201212Z INFO screenpipe_engine::ui_recorder: Starting UI event capture\n2026-04-09T19:53:08.217633Z INFO screenpipe_engine::calendar_speaker_id: speaker identification: started (user_name=<not set>)\n2026-04-09T19:53:08.217794Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warming from DB (2026-04-08 16:53:08.217792 UTC to 2026-04-09 16:53:08.217792 UTC)\n2026-04-09T19:53:08.217649Z INFO screenpipe_engine::ui_recorder: UI recording session started: 3b59b1d1-d80e-4689-8c72-6476af4571df\n2026-04-09T19:53:08.220368Z INFO screenpipe_engine::meeting_detector: meeting v2: detection loop started (base_interval=5s, profiles=12)\n2026-04-09T19:53:08.222489Z INFO screenpipe_engine::hot_frame_cache: hot_frame_cache: warmed with 0 frame entries, coverage from 2026-04-08 16:53:08.217792 UTC\n2026-04-09T19:53:08.227257Z INFO screenpipe_engine::server: Server listening on 0.0.0.0:3030\n2026-04-09T19:53:08.232250Z INFO screenpipe_connect::mdns: mdns: advertising screenpipe on port 3030\n2026-04-09T19:53:08.543211Z INFO screenpipe_engine::vision_manager::manager: Starting vision recording for monitor 1 (1440x900)\n2026-04-09T19:53:08.543241Z INFO screenpipe_engine::vision_manager::manager: Starting event-driven capture for monitor 1 (device: monitor_1)\n2026-04-09T19:53:08.543253Z INFO screenpipe_engine::vision_manager::manager: Skipping monitor 2 (Display 2_3008x1253_-813,-1253) — not in allowed list\n2026-04-09T19:53:08.543262Z INFO screenpipe_engine::vision_manager::monitor_watcher: Starting monitor watcher (polling every 5 seconds)\n2026-04-09T19:53:08.543299Z INFO screenpipe_engine::event_driven_capture: event-driven capture started for monitor 1 (device: monitor_1)\n2026-04-09T19:53:09.210453Z INFO screenpipe_audio::vad::silero: Silero VAD v5 model downloaded and saved to: \"/Users/lukas/Library/Caches/screenpipe/vad/silero_vad_v5.onnx\"\n2026-04-09T19:53:09.352790Z INFO screenpipe_audio::speaker::models: saving segmentation-3.0.onnx model (5983836 bytes) to \"/Users/lukas/Library/Caches/screenpipe/models/segmentation-3.0.onnx\"\n2026-04-09T19:53:09.355799Z INFO screenpipe_audio::speaker::models: segmentation-3.0.onnx model successfully downloaded and saved\n2026-04-09T19:53:09.367746Z INFO sck_rs::stream_manager: persistent SCK stream started for display 1 (1440x900, 2fps)\n2026-04-09T19:53:10.102366Z INFO screenpipe_audio::speaker::models: saving wespeaker_en_voxceleb_CAM++.onnx model (29292684 bytes) to \"/Users/lukas/Library/Caches/screenpipe/models/wespeaker_en_voxceleb_CAM++.onnx\"\n2026-04-09T19:53:10.112264Z INFO screenpipe_audio::speaker::models: wespeaker_en_voxceleb_CAM++.onnx model successfully downloaded and saved\n2026-04-09T19:53:13.221908Z INFO screenpipe_engine::retention: retention: initialized with 14d retention\n2026-04-09T19:53:13.222855Z INFO screenpipe: local retention auto-enabled (14 days)\n2026-04-09T19:53:15.841867Z INFO screenpipe_engine::event_driven_capture: startup capture for monitor 1: frame_id=1, dur=797ms\n2026-04-09T19:53:18.189478Z WARN screenpipe_audio::transcription::engine: whisper model is not available locally yet for WhisperTiny; audio transcription disabled until download completes\n2026-04-09T19:53:18.189794Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:53:18.190227Z INFO screenpipe_audio::transcription::whisper::model: downloading model \"ggml-tiny.bin\"\n2026-04-09T19:53:18.190847Z INFO screenpipe_audio::audio_manager::manager: audio manager started\n2026-04-09T19:53:18.190916Z INFO screenpipe_audio::audio_manager::manager: calendar-assisted speaker diarization: listening for meeting events\nggml-tiny.bin [00:00:01] [███████████████████████████████████████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 38.34 MiB/74.09 MiB 21.65 MiB/s (2s)2026-04-09T19:53:19.720503Z INFO screenpipe_audio::audio_manager::device_monitor: model capabilities changed after background download; restarting central handlers\n2026-04-09T19:53:19.720675Z WARN screenpipe_audio::transcription::engine: whisper model is not available locally yet for WhisperTiny; audio transcription disabled until download completes\n2026-04-09T19:53:19.720732Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:53:19.720787Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh\n2026-04-09T19:53:19.720795Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh\n2026-04-09T19:53:19.721204Z INFO screenpipe_audio::transcription::whisper::model: downloading model \"ggml-tiny.bin\"\nggml-tiny.bin [00:00:01] [██████████████████████████████████████████████████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 45.66 MiB/74.09 MiB 23.13 MiB/s (1s)\nggml-tiny.bin [00:00:00] [███░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 2.09 MiB/74.09 MiB 1.63 MiB/s (44s)2026-04-09T19:53:20.383627Z INFO screenpipe_audio::device::device_manager: starting recording for device: System Audio (output)\n2026-04-09T19:53:20.383837Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for System Audio (output) (30s segments)\nggml-tiny.bin [00:00:01] [██████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 9.22 MiB/74.09 MiB 4.95 MiB/s (13s)2026-04-09T19:53:20.972014Z INFO screenpipe_audio::device::device_manager: starting recording for device: soundcore AeroClip (input)\n2026-04-09T19:53:20.972101Z INFO screenpipe_audio::core::run_record_and_transcribe: starting continuous recording for soundcore AeroClip (input) (30s segments)\nggml-tiny.bin [00:00:02] [███████████████████████████████████████████████████████████████████████████████████████████████████████████████████] 74.09 MiB/74.09 MiB 28.28 MiB/s (0s)2026-04-09T19:53:21.047457Z INFO screenpipe_audio::transcription::whisper::model: model downloaded ggml-tiny.bin\n2026-04-09T19:53:21.047589Z INFO screenpipe_audio::transcription::engine: whisper model downloaded in background: \"/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin\"\nggml-tiny.bin [00:00:03] [███████████████████████████████████████████████████████████████████████████████████████████████████████████████████] 74.09 MiB/74.09 MiB 23.56 MiB/s (0s)2026-04-09T19:53:23.080110Z INFO screenpipe_audio::transcription::whisper::model: model downloaded ggml-tiny.bin\n2026-04-09T19:53:23.080240Z INFO screenpipe_audio::transcription::engine: whisper model downloaded in background: \"/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin\"\n2026-04-09T19:53:52.431282Z INFO screenpipe_audio::transcription::engine: whisper model available: \"/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin\"\n2026-04-09T19:53:52.431325Z INFO screenpipe_audio::transcription::whisper::model: whisper context: gpu acceleration enabled (Metal on macOS, Vulkan on Windows)\n2026-04-09T19:53:52.431330Z INFO screenpipe_audio::transcription::engine: loading whisper model with GPU acceleration...\nwhisper_init_from_file_with_params_no_state: loading model from '/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin'\nwhisper_init_with_params_no_state: use gpu = 1\nwhisper_init_with_params_no_state: flash attn = 0\nwhisper_init_with_params_no_state: gpu_device = 0\nwhisper_init_with_params_no_state: dtw = 0\nggml_metal_device_init: tensor API disabled for pre-M5 and pre-A19 devices\nggml_metal_library_init: using embedded metal library\nggml_metal_library_init: loaded in 14.652 sec\nggml_metal_rsets_init: creating a residency set collection (keep_alive = 180 s)\nggml_metal_device_init: GPU name: Apple M1\nggml_metal_device_init: GPU family: MTLGPUFamilyApple7 (1007)\nggml_metal_device_init: GPU family: MTLGPUFamilyCommon3 (3003)\nggml_metal_device_init: GPU family: MTLGPUFamilyMetal3 (5001)\nggml_metal_device_init: simdgroup reduction = true\nggml_metal_device_init: simdgroup matrix mul. = true\nggml_metal_device_init: has unified memory = true\nggml_metal_device_init: has bfloat = true\nggml_metal_device_init: has tensor = false\nggml_metal_device_init: use residency sets = true\nggml_metal_device_init: use shared buffers = true\nggml_metal_device_init: recommendedMaxWorkingSetSize = 11453.25 MB\nwhisper_init_with_params_no_state: devices = 3\nwhisper_init_with_params_no_state: backends = 3\nwhisper_model_load: loading model\nwhisper_model_load: n_vocab = 51865\nwhisper_model_load: n_audio_ctx = 1500\nwhisper_model_load: n_audio_state = 384\nwhisper_model_load: n_audio_head = 6\nwhisper_model_load: n_audio_layer = 4\nwhisper_model_load: n_text_ctx = 448\nwhisper_model_load: n_text_state = 384\nwhisper_model_load: n_text_head = 6\nwhisper_model_load: n_text_layer = 4\nwhisper_model_load: n_mels = 80\nwhisper_model_load: ftype = 1\nwhisper_model_load: qntvr = 0\nwhisper_model_load: type = 1 (tiny)\nwhisper_model_load: adding 1608 extra tokens\nwhisper_model_load: n_langs = 99\nwhisper_model_load: Metal total size = 77.11 MB\nwhisper_model_load: model size = 77.11 MB\n2026-04-09T19:54:07.178366Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully\n2026-04-09T19:54:07.178441Z INFO screenpipe_audio::audio_manager::device_monitor: model capabilities changed after background download; restarting central handlers\n2026-04-09T19:54:07.178636Z INFO screenpipe_audio::transcription::engine: whisper model available: \"/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin\"\n2026-04-09T19:54:07.178655Z INFO screenpipe_audio::transcription::whisper::model: whisper context: gpu acceleration enabled (Metal on macOS, Vulkan on Windows)\n2026-04-09T19:54:07.178661Z INFO screenpipe_audio::transcription::engine: loading whisper model with GPU acceleration...\nwhisper_init_from_file_with_params_no_state: loading model from '/Users/lukas/.cache/huggingface/hub/models--ggerganov--whisper.cpp/snapshots/5359861c739e955e79d9a303bcbc70fb988958b1/ggml-tiny.bin'\nwhisper_init_with_params_no_state: use gpu = 1\nwhisper_init_with_params_no_state: flash attn = 0\nwhisper_init_with_params_no_state: gpu_device = 0\nwhisper_init_with_params_no_state: dtw = 0\nwhisper_init_with_params_no_state: devices = 3\nwhisper_init_with_params_no_state: backends = 3\nwhisper_model_load: loading model\nwhisper_model_load: n_vocab = 51865\nwhisper_model_load: n_audio_ctx = 1500\nwhisper_model_load: n_audio_state = 384\nwhisper_model_load: n_audio_head = 6\nwhisper_model_load: n_audio_layer = 4\nwhisper_model_load: n_text_ctx = 448\nwhisper_model_load: n_text_state = 384\nwhisper_model_load: n_text_head = 6\nwhisper_model_load: n_text_layer = 4\nwhisper_model_load: n_mels = 80\nwhisper_model_load: ftype = 1\nwhisper_model_load: qntvr = 0\nwhisper_model_load: type = 1 (tiny)\nwhisper_model_load: adding 1608 extra tokens\nwhisper_model_load: n_langs = 99\nwhisper_model_load: Metal total size = 77.11 MB\nwhisper_model_load: model size = 77.11 MB\n2026-04-09T19:54:07.242116Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully\nwhisper_backend_init_gpu: device 0: Metal (type: 1)\nwhisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)\nwhisper_backend_init_gpu: using Metal backend\nggml_metal_init: allocating\nggml_metal_init: found device: Apple M1\nggml_metal_init: picking default device: Apple M1\nggml_metal_init: use fusion = true\nggml_metal_init: use concurrency = true\nggml_metal_init: use graph optimize = true\nwhisper_backend_init: using BLAS backend\nwhisper_init_state: kv self size = 3.15 MB\nwhisper_init_state: kv cross size = 9.44 MB\nwhisper_init_state: kv pad size = 2.36 MB\nwhisper_init_state: compute buffer (conv) = 14.17 MB\nwhisper_init_state: compute buffer (encode) = 65.96 MB\nwhisper_init_state: compute buffer (cross) = 8.50 MB\nwhisper_init_state: compute buffer (decode) = 96.83 MB\n2026-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh\n2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh\n2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXRadioButton|DOCKER\nAXRadioButton|DEV (-zsh)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
1614245617554003222
|
3100541190118501737
|
visual_change
|
accessibility
|
NULL
|
ORDER BY elements DESC;"
|24604|206
Dia|2884|1 ORDER BY elements DESC;"
|24604|206
Dia|2884|17
iTerm2|2087|136
Claude|2040|8
Safari|1248|10
Firefox|454|1
Activity Monitor|380|2
Slack|234|1
Control Centre|178|1
UserNotificationCenter|20|4
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'iTerm2' AND e.role = 'block' AND e.text NOT NULL
LIMIT 30;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.window_name, e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'Safari' AND e.text IS NOT NULL
LIMIT 20;"
Order Room Service • HBO Max|Back
Order Room Service • HBO Max|Search
Order Room Service • HBO Max|Ukončiť prehrávanie
Order Room Service • HBO Max|Rozbaliť Epizód, 1 z 2
Order Room Service • HBO Max|Rozbaliť Tiež by sa vám mohlo páčiť, 2 z 2
Order Room Service • HBO Max|Preskočiť dozadu o 10 s
Order Room Service • HBO Max|Pozastaviť
Order Room Service • HBO Max|Preskočiť dopredu o 10 sekúnd
Order Room Service • HBO Max|Hlasitosť 100 %
Order Room Service • HBO Max|Nastavenia zvuku a titulkov
Order Room Service • HBO Max|Celá obrazovka
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|close tab
Order Room Service • HBO Max|Favourites
Order Room Service • HBO Max|Tab Group Favourites
Order Room Service • HBO Max|NAS
Order Room Service • HBO Max|Home
Order Room Service • HBO Max|Portainer
Order Room Service • HBO Max|Nginx Proxy Manager
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ # What roles exist in elements?
sqlite3 ~/.screenpipe/db.sqlite "SELECT role, COUNT(*) FROM elements GROUP BY role ORDER BY COUNT(*) DESC;"
# What are those 24k elements with no app_name?
sqlite3 ~/.screenpipe/db.sqlite "
SELECT f.window_name, COUNT(*) as cnt
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name IS NULL AND e.text IS NOT NULL
GROUP BY f.window_name
ORDER BY cnt DESC
LIMIT 10;"
# iTerm2 elements with any role
sqlite3 ~/.screenpipe/db.sqlite "
SELECT e.role, e.text
FROM elements e
JOIN frames f ON e.frame_id = f.id
WHERE f.app_name = 'iTerm2' AND e.text IS NOT NULL
LIMIT 20;"
zsh: no matches found: elements?
block|25522
AXStaticText|4681
AXButton|1364
AXLink|1123
AXRadioButton|1017
AXTextField|607
AXCell|297
AXHeading|166
AXTextArea|151
AXPopUpButton|83
AXCheckBox|59
AXComboBox|7
zsh: no matches found: app_name?
|25079
zsh: command not found: #
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXRadioButton|DOCKER
AXRadioButton|DEV (-zsh)
AXRadioButton|APP (-zsh)
AXRadioButton|screenpipe"
AXRadioButton|Python"
AXStaticText|⌥⌘1
AXStaticText|screenpipe"
AXTextArea|Last login: Thu Apr 9 19:52:08 on ttys007
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
Poetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-18909-automated-reports-ask-jiminny) $ cd
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ npx screenpipe@latest record
detected hardware tier: Mid
checking permissions...
screen recording: ok
microphone: ok
accessibility: ok
2026-04-09T19:53:07.212588Z INFO screenpipe_screen::monitor::macos_version: Detected macOS version: 14.6
2026-04-09T19:53:08.176294Z INFO screenpipe_engine::sleep_monitor: Starting macOS sleep/wake monitor
2026-04-09T19:53:08.180179Z INFO screenpipe: meeting detector enabled — independent of transcription mode
2026-04-09T19:53:08.180172Z INFO screenpipe_engine::sleep_monitor: Screen lock/unlock observers registered (CFNotificationCenter)
2026-04-09T19:53:08.180644Z INFO screenpipe_engine::sleep_monitor: Display reconfiguration watcher registered (CGDisplayRegisterReconfigurationCallback)
2026-04-09T19:53:08.181079Z INFO screenpipe_audio::speaker::models: initiating wespeaker_en_voxceleb_CAM++.onnx model download...
2026-04-09T19:53:08.181124Z WARN screenpipe_audio::segmentation::segmentation_manager: embedding model unavailable at startup: wespeaker_en_voxceleb_CAM++.onnx model not available yet; download started in background
2026-04-09T19:53:08.181175Z INFO screenpipe_audio::speaker::models: initiating segmentation-3.0.onnx model download...
2026-04-09T19:53:08.181183Z WARN screenpipe_audio::segmentation::segmentation_manager: segmentation model unavailable at startup: segmentation-3.0.onnx model not available yet; download started in background
2026-04-09T19:53:08.181157Z INFO screenpipe_audio::speaker::models: wespeaker_en_voxceleb_CAM++.onnx model download attempt 1/3
2026-04-09T19:53:08.181223Z WARN screenpipe_audio::audio_manager::manager: silero vad unavailable, falling back to webrtc: silero vad model not available yet; download started in background
2026-04-09T19:53:08.181225Z INFO screenpipe_audio::speaker::models: downloading wespeaker_en_voxceleb_CAM++.onnx model from [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
NULL
|
|
830
|
20
|
2
|
2026-04-11T12:24:37.698435+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910277698_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA100% <7-zshDOCKERO ₴1DEV (-zsh)O $2APP (-zsh)|• ₴з-zsh• 84OrderRoom Service • HBO MaxIclose tabOrder Room Service • HBO MaxIclose tabOrder Room Service • HBO Max|closetabOrder Room Service • HBO Max|FavouritesOrder Room Service • HBO Max|Tab Group FavouritesOrder Room Service • HBO MaxINASOrder Room Service • HBO Max| HomeOrder Room Service • HBO Max|PortainerOrder Room Service • HBO Max|Nginx Proxy Managerlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clearlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ # What roles exist in elements?sqlite3 ~/.screenpipe/db.sqlite "SELECT role, COUNT(*) FROM elements GROUP BYrole ORDER BY COUNT(*) DESC;"# What are those 24k elements with no app_name?sqlite3~/.screenpipe/db.sqlite"SELECT f.window_name, COUNT(*) as cntFROMelements eJOINframes f ON e.frame_id = f.idWHERE f.app_name IS NULL AND e.text IS NOT NULLGROUP BY f.window_nameORDER BYcnt DESCLIMIT 10;"# iTerm2 elements with any rolesqlite3 ~/.screenpipe/db.sqlite"SELECT e.role, e.textFROM elements eJOIN frames f ON e.frame_id= f.idWHERE f.app_name = 'iTerm2' AND e.text IS NOT NULLLIMIT 20;"zsh: no matches found: elements?block|25522AXStaticText|4681AXButton|1364AXLink|1123AXRadioButton|1017AXTextFieldl607AXCell1297AXHeading|166AXTextArea|151AXPopUpButton| 83AXCheckBox|59AXComboBoxI7zsh: no matches found: app_name?125079-zsh• ₴5-zsh• *6Sat 11 Apr 15:24:37-zsh181*7...
|
NULL
|
3365329829377018937
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA100% <7-zshDOCKERO ₴1DEV (-zsh)O $2APP (-zsh)|• ₴з-zsh• 84OrderRoom Service • HBO MaxIclose tabOrder Room Service • HBO MaxIclose tabOrder Room Service • HBO Max|closetabOrder Room Service • HBO Max|FavouritesOrder Room Service • HBO Max|Tab Group FavouritesOrder Room Service • HBO MaxINASOrder Room Service • HBO Max| HomeOrder Room Service • HBO Max|PortainerOrder Room Service • HBO Max|Nginx Proxy Managerlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clearlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ # What roles exist in elements?sqlite3 ~/.screenpipe/db.sqlite "SELECT role, COUNT(*) FROM elements GROUP BYrole ORDER BY COUNT(*) DESC;"# What are those 24k elements with no app_name?sqlite3~/.screenpipe/db.sqlite"SELECT f.window_name, COUNT(*) as cntFROMelements eJOINframes f ON e.frame_id = f.idWHERE f.app_name IS NULL AND e.text IS NOT NULLGROUP BY f.window_nameORDER BYcnt DESCLIMIT 10;"# iTerm2 elements with any rolesqlite3 ~/.screenpipe/db.sqlite"SELECT e.role, e.textFROM elements eJOIN frames f ON e.frame_id= f.idWHERE f.app_name = 'iTerm2' AND e.text IS NOT NULLLIMIT 20;"zsh: no matches found: elements?block|25522AXStaticText|4681AXButton|1364AXLink|1123AXRadioButton|1017AXTextFieldl607AXCell1297AXHeading|166AXTextArea|151AXPopUpButton| 83AXCheckBox|59AXComboBoxI7zsh: no matches found: app_name?125079-zsh• ₴5-zsh• *6Sat 11 Apr 15:24:37-zsh181*7...
|
NULL
|
|
836
|
20
|
8
|
2026-04-11T12:26:36.063923+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910396063_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
whisper_model_load: n_audio_head = 6
whisper_mode 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-04-09T19:54:07.242116Z 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-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)
2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh
2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh
2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXRadioButton|DOCKER
AXRadioButton|DEV (-zsh)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"whisper_model_load: n_audio_head = 6\nwhisper_model_load: n_audio_layer = 4\nwhisper_model_load: n_text_ctx = 448\nwhisper_model_load: n_text_state = 384\nwhisper_model_load: n_text_head = 6\nwhisper_model_load: n_text_layer = 4\nwhisper_model_load: n_mels = 80\nwhisper_model_load: ftype = 1\nwhisper_model_load: qntvr = 0\nwhisper_model_load: type = 1 (tiny)\nwhisper_model_load: adding 1608 extra tokens\nwhisper_model_load: n_langs = 99\nwhisper_model_load: Metal total size = 77.11 MB\nwhisper_model_load: model size = 77.11 MB\n2026-04-09T19:54:07.242116Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully\nwhisper_backend_init_gpu: device 0: Metal (type: 1)\nwhisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)\nwhisper_backend_init_gpu: using Metal backend\nggml_metal_init: allocating\nggml_metal_init: found device: Apple M1\nggml_metal_init: picking default device: Apple M1\nggml_metal_init: use fusion = true\nggml_metal_init: use concurrency = true\nggml_metal_init: use graph optimize = true\nwhisper_backend_init: using BLAS backend\nwhisper_init_state: kv self size = 3.15 MB\nwhisper_init_state: kv cross size = 9.44 MB\nwhisper_init_state: kv pad size = 2.36 MB\nwhisper_init_state: compute buffer (conv) = 14.17 MB\nwhisper_init_state: compute buffer (encode) = 65.96 MB\nwhisper_init_state: compute buffer (cross) = 8.50 MB\nwhisper_init_state: compute buffer (decode) = 96.83 MB\n2026-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh\n2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh\n2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXRadioButton|DOCKER\nAXRadioButton|DEV (-zsh)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 10805 100 10805 0 0 1966k 0 --:--:-- --:--:-- --:--:-- 2110k\n{\n \"data\": [\n {\n \"config\": {\n \"description\": \"Summarize meeting transcript with key takeaways and action items\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🤝\u0000\",\n \"name\": \"meeting-summary\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Meeting Summary\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Meeting Summary\\ndescription: \\\"Summarize meeting transcript with key takeaways and action items\\\"\\nicon: \\\"🤝\u0000\\\"\\nfeatured: false\\n---\\n\\nSummarize 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\\n\"\n },\n {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"How you use AI tools — patterns and insights\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🤖\u0000\",\n \"name\": \"ai-habits\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"AI Habits\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: AI Habits\\ndescription: \\\"How you use AI tools — patterns and insights\\\"\\nicon: \\\"🤖\u0000\\\"\\nfeatured: true\\n---\\n\\nSearch 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Create a video of your recent screen activity\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🎬\u0000\",\n \"name\": \"video-export\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Export Video Clip\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Export a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Export Video Clip\\ndescription: \\\"Create a video of your recent screen activity\\\"\\nicon: \\\"🎬\u0000\\\"\\nfeatured: false\\n---\\n\\nExport a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\\n\"\n },\n {\n \"config\": {\n \"description\": \"What you did, what's next, and any blockers\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🏢\u0000\",\n \"name\": \"standup-update\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Standup Update\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Standup Update\\ndescription: \\\"What you did, what's next, and any blockers\\\"\\nicon: \\\"🏢\u0000\\\"\\nfeatured: true\\n---\\n\\nBased on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\\n\"\n }\n ],\n \"total\": 6\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","depth":4,"value":"whisper_model_load: n_audio_head = 6\nwhisper_model_load: n_audio_layer = 4\nwhisper_model_load: n_text_ctx = 448\nwhisper_model_load: n_text_state = 384\nwhisper_model_load: n_text_head = 6\nwhisper_model_load: n_text_layer = 4\nwhisper_model_load: n_mels = 80\nwhisper_model_load: ftype = 1\nwhisper_model_load: qntvr = 0\nwhisper_model_load: type = 1 (tiny)\nwhisper_model_load: adding 1608 extra tokens\nwhisper_model_load: n_langs = 99\nwhisper_model_load: Metal total size = 77.11 MB\nwhisper_model_load: model size = 77.11 MB\n2026-04-09T19:54:07.242116Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully\nwhisper_backend_init_gpu: device 0: Metal (type: 1)\nwhisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)\nwhisper_backend_init_gpu: using Metal backend\nggml_metal_init: allocating\nggml_metal_init: found device: Apple M1\nggml_metal_init: picking default device: Apple M1\nggml_metal_init: use fusion = true\nggml_metal_init: use concurrency = true\nggml_metal_init: use graph optimize = true\nwhisper_backend_init: using BLAS backend\nwhisper_init_state: kv self size = 3.15 MB\nwhisper_init_state: kv cross size = 9.44 MB\nwhisper_init_state: kv pad size = 2.36 MB\nwhisper_init_state: compute buffer (conv) = 14.17 MB\nwhisper_init_state: compute buffer (encode) = 65.96 MB\nwhisper_init_state: compute buffer (cross) = 8.50 MB\nwhisper_init_state: compute buffer (decode) = 96.83 MB\n2026-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh\n2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh\n2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXRadioButton|DOCKER\nAXRadioButton|DEV (-zsh)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 10805 100 10805 0 0 1966k 0 --:--:-- --:--:-- --:--:-- 2110k\n{\n \"data\": [\n {\n \"config\": {\n \"description\": \"Summarize meeting transcript with key takeaways and action items\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🤝\u0000\",\n \"name\": \"meeting-summary\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Meeting Summary\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Meeting Summary\\ndescription: \\\"Summarize meeting transcript with key takeaways and action items\\\"\\nicon: \\\"🤝\u0000\\\"\\nfeatured: false\\n---\\n\\nSummarize 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\\n\"\n },\n {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"How you use AI tools — patterns and insights\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🤖\u0000\",\n \"name\": \"ai-habits\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"AI Habits\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: AI Habits\\ndescription: \\\"How you use AI tools — patterns and insights\\\"\\nicon: \\\"🤖\u0000\\\"\\nfeatured: true\\n---\\n\\nSearch 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Create a video of your recent screen activity\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🎬\u0000\",\n \"name\": \"video-export\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Export Video Clip\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Export a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Export Video Clip\\ndescription: \\\"Create a video of your recent screen activity\\\"\\nicon: \\\"🎬\u0000\\\"\\nfeatured: false\\n---\\n\\nExport a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\\n\"\n },\n {\n \"config\": {\n \"description\": \"What you did, what's next, and any blockers\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🏢\u0000\",\n \"name\": \"standup-update\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Standup Update\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Standup Update\\ndescription: \\\"What you did, what's next, and any blockers\\\"\\nicon: \\\"🏢\u0000\\\"\\nfeatured: true\\n---\\n\\nBased on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\\n\"\n }\n ],\n \"total\": 6\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
-2710504821594427847
|
-8435208392465220115
|
visual_change
|
accessibility
|
NULL
|
whisper_model_load: n_audio_head = 6
whisper_mode 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-04-09T19:54:07.242116Z 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-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)
2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh
2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh
2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXRadioButton|DOCKER
AXRadioButton|DEV (-zsh)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
NULL
|
|
837
|
20
|
9
|
2026-04-11T12:27:06.342839+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910426342_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
whisper_model_load: n_audio_head = 6
whisper_mode 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-04-09T19:54:07.242116Z 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-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)
2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh
2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh
2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXRadioButton|DOCKER
AXRadioButton|DEV (-zsh)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"whisper_model_load: n_audio_head = 6\nwhisper_model_load: n_audio_layer = 4\nwhisper_model_load: n_text_ctx = 448\nwhisper_model_load: n_text_state = 384\nwhisper_model_load: n_text_head = 6\nwhisper_model_load: n_text_layer = 4\nwhisper_model_load: n_mels = 80\nwhisper_model_load: ftype = 1\nwhisper_model_load: qntvr = 0\nwhisper_model_load: type = 1 (tiny)\nwhisper_model_load: adding 1608 extra tokens\nwhisper_model_load: n_langs = 99\nwhisper_model_load: Metal total size = 77.11 MB\nwhisper_model_load: model size = 77.11 MB\n2026-04-09T19:54:07.242116Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully\nwhisper_backend_init_gpu: device 0: Metal (type: 1)\nwhisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)\nwhisper_backend_init_gpu: using Metal backend\nggml_metal_init: allocating\nggml_metal_init: found device: Apple M1\nggml_metal_init: picking default device: Apple M1\nggml_metal_init: use fusion = true\nggml_metal_init: use concurrency = true\nggml_metal_init: use graph optimize = true\nwhisper_backend_init: using BLAS backend\nwhisper_init_state: kv self size = 3.15 MB\nwhisper_init_state: kv cross size = 9.44 MB\nwhisper_init_state: kv pad size = 2.36 MB\nwhisper_init_state: compute buffer (conv) = 14.17 MB\nwhisper_init_state: compute buffer (encode) = 65.96 MB\nwhisper_init_state: compute buffer (cross) = 8.50 MB\nwhisper_init_state: compute buffer (decode) = 96.83 MB\n2026-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh\n2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh\n2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXRadioButton|DOCKER\nAXRadioButton|DEV (-zsh)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 10805 100 10805 0 0 1966k 0 --:--:-- --:--:-- --:--:-- 2110k\n{\n \"data\": [\n {\n \"config\": {\n \"description\": \"Summarize meeting transcript with key takeaways and action items\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🤝\u0000\",\n \"name\": \"meeting-summary\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Meeting Summary\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Meeting Summary\\ndescription: \\\"Summarize meeting transcript with key takeaways and action items\\\"\\nicon: \\\"🤝\u0000\\\"\\nfeatured: false\\n---\\n\\nSummarize 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\\n\"\n },\n {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"How you use AI tools — patterns and insights\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🤖\u0000\",\n \"name\": \"ai-habits\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"AI Habits\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: AI Habits\\ndescription: \\\"How you use AI tools — patterns and insights\\\"\\nicon: \\\"🤖\u0000\\\"\\nfeatured: true\\n---\\n\\nSearch 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Create a video of your recent screen activity\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🎬\u0000\",\n \"name\": \"video-export\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Export Video Clip\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Export a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Export Video Clip\\ndescription: \\\"Create a video of your recent screen activity\\\"\\nicon: \\\"🎬\u0000\\\"\\nfeatured: false\\n---\\n\\nExport a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\\n\"\n },\n {\n \"config\": {\n \"description\": \"What you did, what's next, and any blockers\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🏢\u0000\",\n \"name\": \"standup-update\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Standup Update\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Standup Update\\ndescription: \\\"What you did, what's next, and any blockers\\\"\\nicon: \\\"🏢\u0000\\\"\\nfeatured: true\\n---\\n\\nBased on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\\n\"\n }\n ],\n \"total\": 6\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","depth":4,"value":"whisper_model_load: n_audio_head = 6\nwhisper_model_load: n_audio_layer = 4\nwhisper_model_load: n_text_ctx = 448\nwhisper_model_load: n_text_state = 384\nwhisper_model_load: n_text_head = 6\nwhisper_model_load: n_text_layer = 4\nwhisper_model_load: n_mels = 80\nwhisper_model_load: ftype = 1\nwhisper_model_load: qntvr = 0\nwhisper_model_load: type = 1 (tiny)\nwhisper_model_load: adding 1608 extra tokens\nwhisper_model_load: n_langs = 99\nwhisper_model_load: Metal total size = 77.11 MB\nwhisper_model_load: model size = 77.11 MB\n2026-04-09T19:54:07.242116Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully\nwhisper_backend_init_gpu: device 0: Metal (type: 1)\nwhisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)\nwhisper_backend_init_gpu: using Metal backend\nggml_metal_init: allocating\nggml_metal_init: found device: Apple M1\nggml_metal_init: picking default device: Apple M1\nggml_metal_init: use fusion = true\nggml_metal_init: use concurrency = true\nggml_metal_init: use graph optimize = true\nwhisper_backend_init: using BLAS backend\nwhisper_init_state: kv self size = 3.15 MB\nwhisper_init_state: kv cross size = 9.44 MB\nwhisper_init_state: kv pad size = 2.36 MB\nwhisper_init_state: compute buffer (conv) = 14.17 MB\nwhisper_init_state: compute buffer (encode) = 65.96 MB\nwhisper_init_state: compute buffer (cross) = 8.50 MB\nwhisper_init_state: compute buffer (decode) = 96.83 MB\n2026-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh\n2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh\n2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXRadioButton|DOCKER\nAXRadioButton|DEV (-zsh)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 10805 100 10805 0 0 1966k 0 --:--:-- --:--:-- --:--:-- 2110k\n{\n \"data\": [\n {\n \"config\": {\n \"description\": \"Summarize meeting transcript with key takeaways and action items\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🤝\u0000\",\n \"name\": \"meeting-summary\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Meeting Summary\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Meeting Summary\\ndescription: \\\"Summarize meeting transcript with key takeaways and action items\\\"\\nicon: \\\"🤝\u0000\\\"\\nfeatured: false\\n---\\n\\nSummarize 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\\n\"\n },\n {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"How you use AI tools — patterns and insights\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🤖\u0000\",\n \"name\": \"ai-habits\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"AI Habits\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: AI Habits\\ndescription: \\\"How you use AI tools — patterns and insights\\\"\\nicon: \\\"🤖\u0000\\\"\\nfeatured: true\\n---\\n\\nSearch 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Create a video of your recent screen activity\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🎬\u0000\",\n \"name\": \"video-export\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Export Video Clip\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Export a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Export Video Clip\\ndescription: \\\"Create a video of your recent screen activity\\\"\\nicon: \\\"🎬\u0000\\\"\\nfeatured: false\\n---\\n\\nExport a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\\n\"\n },\n {\n \"config\": {\n \"description\": \"What you did, what's next, and any blockers\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🏢\u0000\",\n \"name\": \"standup-update\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Standup Update\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Standup Update\\ndescription: \\\"What you did, what's next, and any blockers\\\"\\nicon: \\\"🏢\u0000\\\"\\nfeatured: true\\n---\\n\\nBased on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\\n\"\n }\n ],\n \"total\": 6\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
-2710504821594427847
|
-8435208392465220115
|
visual_change
|
accessibility
|
NULL
|
whisper_model_load: n_audio_head = 6
whisper_mode 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-04-09T19:54:07.242116Z 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-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)
2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh
2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh
2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXRadioButton|DOCKER
AXRadioButton|DEV (-zsh)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
836
|
|
839
|
20
|
11
|
2026-04-11T12:27:40.070118+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910460070_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% C8Sat 11 Apr 15:27:39-zsh181DOCKERO ₴1DEV (-zsh)"title": "Export Video Clip"O $2APP (-zsh)|• ₴з-zsh• 84-zsh• *5-zshO 886-zshX7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Export a video of my screen activity from the last 5 minutes.In\nRead screenpipe skill first.\n\nUse the POST /frames/export endpoint with the time rangeand fps=1.0. Then show me the exported video file path as an inline code block so I can watch it. In\nlf the export is large,suggest a lower fps or shorter time range.""raw_content": "---\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Export Video Clip\ndescription: \"Create a video of your recent screen activity)"\nicon: \"E"\"Infeatured:falseln---In\nExport a video of myscreen activity from the last 5 minutes.\n\nRead screenpipe skill first.\n\nUse the POST /frames/export endpoint with the timerange and fps=1.0. Then show me the exported video file path as an inline code block so Ican watch it. In\nIf the export is large, suggest a lower fps or shorter time range.\n"3,"config": {"description": "What you did, what's next, and any blockers","enabled": true,"featured": true,"icon": "Ш","name": "standup-update","schedule": "manual","template": true,"title": "Standup Update"*consecutive-failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total. \n\nRead screenpipeskill first.\nInUse this exact format:\n\n## Yesterday\n- What I worked on (name specific projects, files, tools, PRs)\n\n## Today\n- What I will work on next (based on unfinished tasks andrecent activity)\n\n## Blockers\n- Issues I hit - errors, slow builds, waiting on someoneln- If no blockers, write \"Nonel"\n\nKeep it under 150 words. Copy-paste ready for a team standup.","raw_content": "---Inschedule: manual\nenabled: true\ntemplate: true\ntitle: Standup Update\ndescription: \"What you did, what's next, and any blockers\"\nicon: \"H"\nfeatured: trueln---In\nBased on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total. \n\nRead screenpipe skill first. \nInUse this exact format:\n\n## Yesterday\n- What I worked on (name specific projects, files, tools, PRs)\n\n## Today\n- What I will work on next (based on unfinished tasks andrecent activity)\n\n## Blockers\n- Issues I hit - errors, slow builds, waiting on someoneln- If no blockers, write \"Nonel"\n\nKeep it under 150 words. Copy-paste ready for a team standup.\n"],"total": 6}lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ D...
|
NULL
|
6836925978594908088
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% C8Sat 11 Apr 15:27:39-zsh181DOCKERO ₴1DEV (-zsh)"title": "Export Video Clip"O $2APP (-zsh)|• ₴з-zsh• 84-zsh• *5-zshO 886-zshX7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Export a video of my screen activity from the last 5 minutes.In\nRead screenpipe skill first.\n\nUse the POST /frames/export endpoint with the time rangeand fps=1.0. Then show me the exported video file path as an inline code block so I can watch it. In\nlf the export is large,suggest a lower fps or shorter time range.""raw_content": "---\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Export Video Clip\ndescription: \"Create a video of your recent screen activity)"\nicon: \"E"\"Infeatured:falseln---In\nExport a video of myscreen activity from the last 5 minutes.\n\nRead screenpipe skill first.\n\nUse the POST /frames/export endpoint with the timerange and fps=1.0. Then show me the exported video file path as an inline code block so Ican watch it. In\nIf the export is large, suggest a lower fps or shorter time range.\n"3,"config": {"description": "What you did, what's next, and any blockers","enabled": true,"featured": true,"icon": "Ш","name": "standup-update","schedule": "manual","template": true,"title": "Standup Update"*consecutive-failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total. \n\nRead screenpipeskill first.\nInUse this exact format:\n\n## Yesterday\n- What I worked on (name specific projects, files, tools, PRs)\n\n## Today\n- What I will work on next (based on unfinished tasks andrecent activity)\n\n## Blockers\n- Issues I hit - errors, slow builds, waiting on someoneln- If no blockers, write \"Nonel"\n\nKeep it under 150 words. Copy-paste ready for a team standup.","raw_content": "---Inschedule: manual\nenabled: true\ntemplate: true\ntitle: Standup Update\ndescription: \"What you did, what's next, and any blockers\"\nicon: \"H"\nfeatured: trueln---In\nBased on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total. \n\nRead screenpipe skill first. \nInUse this exact format:\n\n## Yesterday\n- What I worked on (name specific projects, files, tools, PRs)\n\n## Today\n- What I will work on next (based on unfinished tasks andrecent activity)\n\n## Blockers\n- Issues I hit - errors, slow builds, waiting on someoneln- If no blockers, write \"Nonel"\n\nKeep it under 150 words. Copy-paste ready for a team standup.\n"],"total": 6}lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ D...
|
NULL
|
|
843
|
20
|
15
|
2026-04-11T12:27:46.088214+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910466088_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
whisper_model_load: n_audio_head = 6
whisper_mode 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-04-09T19:54:07.242116Z 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-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)
2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh
2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh
2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXRadioButton|DOCKER
AXRadioButton|DEV (-zsh)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"whisper_model_load: n_audio_head = 6\nwhisper_model_load: n_audio_layer = 4\nwhisper_model_load: n_text_ctx = 448\nwhisper_model_load: n_text_state = 384\nwhisper_model_load: n_text_head = 6\nwhisper_model_load: n_text_layer = 4\nwhisper_model_load: n_mels = 80\nwhisper_model_load: ftype = 1\nwhisper_model_load: qntvr = 0\nwhisper_model_load: type = 1 (tiny)\nwhisper_model_load: adding 1608 extra tokens\nwhisper_model_load: n_langs = 99\nwhisper_model_load: Metal total size = 77.11 MB\nwhisper_model_load: model size = 77.11 MB\n2026-04-09T19:54:07.242116Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully\nwhisper_backend_init_gpu: device 0: Metal (type: 1)\nwhisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)\nwhisper_backend_init_gpu: using Metal backend\nggml_metal_init: allocating\nggml_metal_init: found device: Apple M1\nggml_metal_init: picking default device: Apple M1\nggml_metal_init: use fusion = true\nggml_metal_init: use concurrency = true\nggml_metal_init: use graph optimize = true\nwhisper_backend_init: using BLAS backend\nwhisper_init_state: kv self size = 3.15 MB\nwhisper_init_state: kv cross size = 9.44 MB\nwhisper_init_state: kv pad size = 2.36 MB\nwhisper_init_state: compute buffer (conv) = 14.17 MB\nwhisper_init_state: compute buffer (encode) = 65.96 MB\nwhisper_init_state: compute buffer (cross) = 8.50 MB\nwhisper_init_state: compute buffer (decode) = 96.83 MB\n2026-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh\n2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh\n2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXRadioButton|DOCKER\nAXRadioButton|DEV (-zsh)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 10805 100 10805 0 0 1966k 0 --:--:-- --:--:-- --:--:-- 2110k\n{\n \"data\": [\n {\n \"config\": {\n \"description\": \"Summarize meeting transcript with key takeaways and action items\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🤝\u0000\",\n \"name\": \"meeting-summary\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Meeting Summary\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Meeting Summary\\ndescription: \\\"Summarize meeting transcript with key takeaways and action items\\\"\\nicon: \\\"🤝\u0000\\\"\\nfeatured: false\\n---\\n\\nSummarize 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\\n\"\n },\n {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"How you use AI tools — patterns and insights\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🤖\u0000\",\n \"name\": \"ai-habits\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"AI Habits\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: AI Habits\\ndescription: \\\"How you use AI tools — patterns and insights\\\"\\nicon: \\\"🤖\u0000\\\"\\nfeatured: true\\n---\\n\\nSearch 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Create a video of your recent screen activity\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🎬\u0000\",\n \"name\": \"video-export\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Export Video Clip\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Export a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Export Video Clip\\ndescription: \\\"Create a video of your recent screen activity\\\"\\nicon: \\\"🎬\u0000\\\"\\nfeatured: false\\n---\\n\\nExport a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\\n\"\n },\n {\n \"config\": {\n \"description\": \"What you did, what's next, and any blockers\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🏢\u0000\",\n \"name\": \"standup-update\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Standup Update\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Standup Update\\ndescription: \\\"What you did, what's next, and any blockers\\\"\\nicon: \\\"🏢\u0000\\\"\\nfeatured: true\\n---\\n\\nBased on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\\n\"\n }\n ],\n \"total\": 6\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes/time-breakdown | jq .\ncurl http://localhost:3030/pipes/day-recap | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 2193 100 2193 0 0 643k 0 --:--:-- --:--:-- --:--:-- 713k\n{\n \"data\": {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n }\n}\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 1876 100 1876 0 0 1218k 0 --:--:-- --:--:-- --:--:-- 1832k\n{\n \"data\": {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n }\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","depth":4,"value":"whisper_model_load: n_audio_head = 6\nwhisper_model_load: n_audio_layer = 4\nwhisper_model_load: n_text_ctx = 448\nwhisper_model_load: n_text_state = 384\nwhisper_model_load: n_text_head = 6\nwhisper_model_load: n_text_layer = 4\nwhisper_model_load: n_mels = 80\nwhisper_model_load: ftype = 1\nwhisper_model_load: qntvr = 0\nwhisper_model_load: type = 1 (tiny)\nwhisper_model_load: adding 1608 extra tokens\nwhisper_model_load: n_langs = 99\nwhisper_model_load: Metal total size = 77.11 MB\nwhisper_model_load: model size = 77.11 MB\n2026-04-09T19:54:07.242116Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully\nwhisper_backend_init_gpu: device 0: Metal (type: 1)\nwhisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)\nwhisper_backend_init_gpu: using Metal backend\nggml_metal_init: allocating\nggml_metal_init: found device: Apple M1\nggml_metal_init: picking default device: Apple M1\nggml_metal_init: use fusion = true\nggml_metal_init: use concurrency = true\nggml_metal_init: use graph optimize = true\nwhisper_backend_init: using BLAS backend\nwhisper_init_state: kv self size = 3.15 MB\nwhisper_init_state: kv cross size = 9.44 MB\nwhisper_init_state: kv pad size = 2.36 MB\nwhisper_init_state: compute buffer (conv) = 14.17 MB\nwhisper_init_state: compute buffer (encode) = 65.96 MB\nwhisper_init_state: compute buffer (cross) = 8.50 MB\nwhisper_init_state: compute buffer (decode) = 96.83 MB\n2026-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh\n2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh\n2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXRadioButton|DOCKER\nAXRadioButton|DEV (-zsh)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 10805 100 10805 0 0 1966k 0 --:--:-- --:--:-- --:--:-- 2110k\n{\n \"data\": [\n {\n \"config\": {\n \"description\": \"Summarize meeting transcript with key takeaways and action items\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🤝\u0000\",\n \"name\": \"meeting-summary\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Meeting Summary\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Meeting Summary\\ndescription: \\\"Summarize meeting transcript with key takeaways and action items\\\"\\nicon: \\\"🤝\u0000\\\"\\nfeatured: false\\n---\\n\\nSummarize 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\\n\"\n },\n {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"How you use AI tools — patterns and insights\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🤖\u0000\",\n \"name\": \"ai-habits\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"AI Habits\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: AI Habits\\ndescription: \\\"How you use AI tools — patterns and insights\\\"\\nicon: \\\"🤖\u0000\\\"\\nfeatured: true\\n---\\n\\nSearch 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Create a video of your recent screen activity\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🎬\u0000\",\n \"name\": \"video-export\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Export Video Clip\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Export a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Export Video Clip\\ndescription: \\\"Create a video of your recent screen activity\\\"\\nicon: \\\"🎬\u0000\\\"\\nfeatured: false\\n---\\n\\nExport a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\\n\"\n },\n {\n \"config\": {\n \"description\": \"What you did, what's next, and any blockers\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🏢\u0000\",\n \"name\": \"standup-update\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Standup Update\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Standup Update\\ndescription: \\\"What you did, what's next, and any blockers\\\"\\nicon: \\\"🏢\u0000\\\"\\nfeatured: true\\n---\\n\\nBased on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\\n\"\n }\n ],\n \"total\": 6\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes/time-breakdown | jq .\ncurl http://localhost:3030/pipes/day-recap | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 2193 100 2193 0 0 643k 0 --:--:-- --:--:-- --:--:-- 713k\n{\n \"data\": {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n }\n}\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 1876 100 1876 0 0 1218k 0 --:--:-- --:--:-- --:--:-- 1832k\n{\n \"data\": {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n }\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
2383013018574745247
|
-8471237171767443987
|
visual_change
|
accessibility
|
NULL
|
whisper_model_load: n_audio_head = 6
whisper_mode 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-04-09T19:54:07.242116Z 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-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)
2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh
2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh
2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXRadioButton|DOCKER
AXRadioButton|DEV (-zsh)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
NULL
|
|
845
|
20
|
17
|
2026-04-11T12:28:10.252864+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910490252_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% CSat 11 Apr 15:28:10-zsh181DOCKERO ₴1DEV (-zsh)0 82APP (-zsh)|• ₴з-zsh• 84-zsh• ₴5-zshO 886-zsh*7ill first.In\nUse thisexactformatwith durationsand percentages:\n\n## By Application\n- Listeach app with duration and(28%)\")\n\n## By Category\n- Groupinto: coding, meetings, browsing,writing,percentage,sorted by timeCe.g. \"VSCode: 2h 15mincommunication, other\n-Show hours and percentage per category\n\n## By Project\n- Group relatedactivities by project/topic. Name specific reposor tasks.\n\n## Productivity Score\n- Calculate: focused_work_hours / total_hours as a percentage\n- Focused = coding + writing. Unfocused = browsing + switching.\n\nEnd with:\"**Suggestion:** [one specific change to improve tomorrow's productivity]\"","raw_content": "---Inschedule: manual\nenabled: true\ntemplate: true\ntitle: Time Breakdown\ndescription: \"Where your time went - by app, project,and category\"\nicon: \"ol "Infeatured: false\n---\n\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches.Prefer /raw_sql with COUNT/GROUP BY queries.\n\nRead screenpipe skill first.\n\nUse this exact format with durations and percentages:\n\n## By Application\n- List each app with duration and percentage, sorted by time (e.g. \"VS Code:2h 15min (28%)\")\n\n## By Category\n- Group into: coding, meetings, browsing, writing, communication, other\n- Show hours and percentage per category\n\n## By Project\n- Group related activities by project/topic. Name specific reposor tasks.\n\n## Productivity Score\n- Calculate: focused_work_hours / total_hours as a percentage\n- Focused = coding+ writing. Unfocused = browsing + switching.\n\nEnd with:|"**Suggestion:** [one specific change to improve tomorrow's productivity]\"\n"H% Total% Received % Xferd100{18761001876Average SpeedDloadUpload1218kTimeTotalTimeSpentTimeCurrentLeftSpeed--:--:-- 1832k"data": {"config": {"description": "Today's accomplishments, key moments, and unfinished work","enabled": true,"featured": true,"icon":"E""name": "day-recap""schedule":"manual""template": true,"title": "Day Recap"},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"Last_error": null,"last_run": null,"Last_success": null,"prompt_body": "Analyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first. In\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today.\n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM\")\n- Name specific apps, files, or projects\n\n## Key Moments\n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "---\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments,and unfinished work\"\nicon: \""Infeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). \n\nRead screenpipe skill first.In\nUse this exact format:\n\n## Summary\n0nesentence: what I mainly did today.\n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps 1 used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"}}lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ D...
|
NULL
|
3385663354685049799
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp(ahl100% CSat 11 Apr 15:28:10-zsh181DOCKERO ₴1DEV (-zsh)0 82APP (-zsh)|• ₴з-zsh• 84-zsh• ₴5-zshO 886-zsh*7ill first.In\nUse thisexactformatwith durationsand percentages:\n\n## By Application\n- Listeach app with duration and(28%)\")\n\n## By Category\n- Groupinto: coding, meetings, browsing,writing,percentage,sorted by timeCe.g. \"VSCode: 2h 15mincommunication, other\n-Show hours and percentage per category\n\n## By Project\n- Group relatedactivities by project/topic. Name specific reposor tasks.\n\n## Productivity Score\n- Calculate: focused_work_hours / total_hours as a percentage\n- Focused = coding + writing. Unfocused = browsing + switching.\n\nEnd with:\"**Suggestion:** [one specific change to improve tomorrow's productivity]\"","raw_content": "---Inschedule: manual\nenabled: true\ntemplate: true\ntitle: Time Breakdown\ndescription: \"Where your time went - by app, project,and category\"\nicon: \"ol "Infeatured: false\n---\n\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches.Prefer /raw_sql with COUNT/GROUP BY queries.\n\nRead screenpipe skill first.\n\nUse this exact format with durations and percentages:\n\n## By Application\n- List each app with duration and percentage, sorted by time (e.g. \"VS Code:2h 15min (28%)\")\n\n## By Category\n- Group into: coding, meetings, browsing, writing, communication, other\n- Show hours and percentage per category\n\n## By Project\n- Group related activities by project/topic. Name specific reposor tasks.\n\n## Productivity Score\n- Calculate: focused_work_hours / total_hours as a percentage\n- Focused = coding+ writing. Unfocused = browsing + switching.\n\nEnd with:|"**Suggestion:** [one specific change to improve tomorrow's productivity]\"\n"H% Total% Received % Xferd100{18761001876Average SpeedDloadUpload1218kTimeTotalTimeSpentTimeCurrentLeftSpeed--:--:-- 1832k"data": {"config": {"description": "Today's accomplishments, key moments, and unfinished work","enabled": true,"featured": true,"icon":"E""name": "day-recap""schedule":"manual""template": true,"title": "Day Recap"},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"Last_error": null,"last_run": null,"Last_success": null,"prompt_body": "Analyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first. In\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today.\n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM\")\n- Name specific apps, files, or projects\n\n## Key Moments\n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "---\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments,and unfinished work\"\nicon: \""Infeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). \n\nRead screenpipe skill first.In\nUse this exact format:\n\n## Summary\n0nesentence: what I mainly did today.\n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps 1 used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"}}lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ D...
|
NULL
|
|
849
|
20
|
21
|
2026-04-11T12:28:19.369279+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910499369_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
whisper_model_load: n_audio_head = 6
whisper_mode 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-04-09T19:54:07.242116Z 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-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)
2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh
2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh
2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXRadioButton|DOCKER
AXRadioButton|DEV (-zsh)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"whisper_model_load: n_audio_head = 6\nwhisper_model_load: n_audio_layer = 4\nwhisper_model_load: n_text_ctx = 448\nwhisper_model_load: n_text_state = 384\nwhisper_model_load: n_text_head = 6\nwhisper_model_load: n_text_layer = 4\nwhisper_model_load: n_mels = 80\nwhisper_model_load: ftype = 1\nwhisper_model_load: qntvr = 0\nwhisper_model_load: type = 1 (tiny)\nwhisper_model_load: adding 1608 extra tokens\nwhisper_model_load: n_langs = 99\nwhisper_model_load: Metal total size = 77.11 MB\nwhisper_model_load: model size = 77.11 MB\n2026-04-09T19:54:07.242116Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully\nwhisper_backend_init_gpu: device 0: Metal (type: 1)\nwhisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)\nwhisper_backend_init_gpu: using Metal backend\nggml_metal_init: allocating\nggml_metal_init: found device: Apple M1\nggml_metal_init: picking default device: Apple M1\nggml_metal_init: use fusion = true\nggml_metal_init: use concurrency = true\nggml_metal_init: use graph optimize = true\nwhisper_backend_init: using BLAS backend\nwhisper_init_state: kv self size = 3.15 MB\nwhisper_init_state: kv cross size = 9.44 MB\nwhisper_init_state: kv pad size = 2.36 MB\nwhisper_init_state: compute buffer (conv) = 14.17 MB\nwhisper_init_state: compute buffer (encode) = 65.96 MB\nwhisper_init_state: compute buffer (cross) = 8.50 MB\nwhisper_init_state: compute buffer (decode) = 96.83 MB\n2026-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh\n2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh\n2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXRadioButton|DOCKER\nAXRadioButton|DEV (-zsh)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 10805 100 10805 0 0 1966k 0 --:--:-- --:--:-- --:--:-- 2110k\n{\n \"data\": [\n {\n \"config\": {\n \"description\": \"Summarize meeting transcript with key takeaways and action items\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🤝\u0000\",\n \"name\": \"meeting-summary\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Meeting Summary\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Meeting Summary\\ndescription: \\\"Summarize meeting transcript with key takeaways and action items\\\"\\nicon: \\\"🤝\u0000\\\"\\nfeatured: false\\n---\\n\\nSummarize 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\\n\"\n },\n {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"How you use AI tools — patterns and insights\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🤖\u0000\",\n \"name\": \"ai-habits\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"AI Habits\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: AI Habits\\ndescription: \\\"How you use AI tools — patterns and insights\\\"\\nicon: \\\"🤖\u0000\\\"\\nfeatured: true\\n---\\n\\nSearch 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Create a video of your recent screen activity\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🎬\u0000\",\n \"name\": \"video-export\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Export Video Clip\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Export a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Export Video Clip\\ndescription: \\\"Create a video of your recent screen activity\\\"\\nicon: \\\"🎬\u0000\\\"\\nfeatured: false\\n---\\n\\nExport a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\\n\"\n },\n {\n \"config\": {\n \"description\": \"What you did, what's next, and any blockers\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🏢\u0000\",\n \"name\": \"standup-update\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Standup Update\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Standup Update\\ndescription: \\\"What you did, what's next, and any blockers\\\"\\nicon: \\\"🏢\u0000\\\"\\nfeatured: true\\n---\\n\\nBased on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\\n\"\n }\n ],\n \"total\": 6\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes/time-breakdown | jq .\ncurl http://localhost:3030/pipes/day-recap | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 2193 100 2193 0 0 643k 0 --:--:-- --:--:-- --:--:-- 713k\n{\n \"data\": {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n }\n}\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 1876 100 1876 0 0 1218k 0 --:--:-- --:--:-- --:--:-- 1832k\n{\n \"data\": {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n }\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST http://localhost:3030/pipes/time-breakdown/run | jq .\ncurl -X POST http://localhost:3030/pipes/day-recap/run | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 70 100 70 0 0 6152 0 --:--:-- --:--:-- --:--:-- 6363\n{\n \"error\": \"agent 'pi' is not installed — run ensure_installed first\"\n}\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 70 100 70 0 0 14236 0 --:--:-- --:--:-- --:--:-- 17500\n{\n \"error\": \"agent 'pi' is not installed — run ensure_installed first\"\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","depth":4,"value":"whisper_model_load: n_audio_head = 6\nwhisper_model_load: n_audio_layer = 4\nwhisper_model_load: n_text_ctx = 448\nwhisper_model_load: n_text_state = 384\nwhisper_model_load: n_text_head = 6\nwhisper_model_load: n_text_layer = 4\nwhisper_model_load: n_mels = 80\nwhisper_model_load: ftype = 1\nwhisper_model_load: qntvr = 0\nwhisper_model_load: type = 1 (tiny)\nwhisper_model_load: adding 1608 extra tokens\nwhisper_model_load: n_langs = 99\nwhisper_model_load: Metal total size = 77.11 MB\nwhisper_model_load: model size = 77.11 MB\n2026-04-09T19:54:07.242116Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully\nwhisper_backend_init_gpu: device 0: Metal (type: 1)\nwhisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)\nwhisper_backend_init_gpu: using Metal backend\nggml_metal_init: allocating\nggml_metal_init: found device: Apple M1\nggml_metal_init: picking default device: Apple M1\nggml_metal_init: use fusion = true\nggml_metal_init: use concurrency = true\nggml_metal_init: use graph optimize = true\nwhisper_backend_init: using BLAS backend\nwhisper_init_state: kv self size = 3.15 MB\nwhisper_init_state: kv cross size = 9.44 MB\nwhisper_init_state: kv pad size = 2.36 MB\nwhisper_init_state: compute buffer (conv) = 14.17 MB\nwhisper_init_state: compute buffer (encode) = 65.96 MB\nwhisper_init_state: compute buffer (cross) = 8.50 MB\nwhisper_init_state: compute buffer (decode) = 96.83 MB\n2026-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh\n2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh\n2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXRadioButton|DOCKER\nAXRadioButton|DEV (-zsh)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 10805 100 10805 0 0 1966k 0 --:--:-- --:--:-- --:--:-- 2110k\n{\n \"data\": [\n {\n \"config\": {\n \"description\": \"Summarize meeting transcript with key takeaways and action items\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🤝\u0000\",\n \"name\": \"meeting-summary\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Meeting Summary\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Meeting Summary\\ndescription: \\\"Summarize meeting transcript with key takeaways and action items\\\"\\nicon: \\\"🤝\u0000\\\"\\nfeatured: false\\n---\\n\\nSummarize 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\\n\"\n },\n {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"How you use AI tools — patterns and insights\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🤖\u0000\",\n \"name\": \"ai-habits\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"AI Habits\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: AI Habits\\ndescription: \\\"How you use AI tools — patterns and insights\\\"\\nicon: \\\"🤖\u0000\\\"\\nfeatured: true\\n---\\n\\nSearch 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Create a video of your recent screen activity\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🎬\u0000\",\n \"name\": \"video-export\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Export Video Clip\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Export a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Export Video Clip\\ndescription: \\\"Create a video of your recent screen activity\\\"\\nicon: \\\"🎬\u0000\\\"\\nfeatured: false\\n---\\n\\nExport a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\\n\"\n },\n {\n \"config\": {\n \"description\": \"What you did, what's next, and any blockers\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🏢\u0000\",\n \"name\": \"standup-update\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Standup Update\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Standup Update\\ndescription: \\\"What you did, what's next, and any blockers\\\"\\nicon: \\\"🏢\u0000\\\"\\nfeatured: true\\n---\\n\\nBased on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\\n\"\n }\n ],\n \"total\": 6\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes/time-breakdown | jq .\ncurl http://localhost:3030/pipes/day-recap | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 2193 100 2193 0 0 643k 0 --:--:-- --:--:-- --:--:-- 713k\n{\n \"data\": {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n }\n}\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 1876 100 1876 0 0 1218k 0 --:--:-- --:--:-- --:--:-- 1832k\n{\n \"data\": {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n }\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST http://localhost:3030/pipes/time-breakdown/run | jq .\ncurl -X POST http://localhost:3030/pipes/day-recap/run | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 70 100 70 0 0 6152 0 --:--:-- --:--:-- --:--:-- 6363\n{\n \"error\": \"agent 'pi' is not installed — run ensure_installed first\"\n}\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 70 100 70 0 0 14236 0 --:--:-- --:--:-- --:--:-- 17500\n{\n \"error\": \"agent 'pi' is not installed — run ensure_installed first\"\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
-6960574572112031084
|
-8435208374211609107
|
visual_change
|
accessibility
|
NULL
|
whisper_model_load: n_audio_head = 6
whisper_mode 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-04-09T19:54:07.242116Z 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-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)
2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh
2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh
2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXRadioButton|DOCKER
AXRadioButton|DEV (-zsh)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
NULL
|
|
854
|
20
|
26
|
2026-04-11T12:28:28.449416+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910508449_m1.jpg...
|
iTerm2
|
-zsh
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
whisper_model_load: n_audio_head = 6
whisper_mode 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-04-09T19:54:07.242116Z 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-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)
2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh
2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh
2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXRadioButton|DOCKER
AXRadioButton|DEV (-zsh)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT pipe_name, status, started_at, finished_at, stdout, stderr
FROM pipe_executions
ORDER BY started_at DESC
LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"whisper_model_load: n_audio_head = 6\nwhisper_model_load: n_audio_layer = 4\nwhisper_model_load: n_text_ctx = 448\nwhisper_model_load: n_text_state = 384\nwhisper_model_load: n_text_head = 6\nwhisper_model_load: n_text_layer = 4\nwhisper_model_load: n_mels = 80\nwhisper_model_load: ftype = 1\nwhisper_model_load: qntvr = 0\nwhisper_model_load: type = 1 (tiny)\nwhisper_model_load: adding 1608 extra tokens\nwhisper_model_load: n_langs = 99\nwhisper_model_load: Metal total size = 77.11 MB\nwhisper_model_load: model size = 77.11 MB\n2026-04-09T19:54:07.242116Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully\nwhisper_backend_init_gpu: device 0: Metal (type: 1)\nwhisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)\nwhisper_backend_init_gpu: using Metal backend\nggml_metal_init: allocating\nggml_metal_init: found device: Apple M1\nggml_metal_init: picking default device: Apple M1\nggml_metal_init: use fusion = true\nggml_metal_init: use concurrency = true\nggml_metal_init: use graph optimize = true\nwhisper_backend_init: using BLAS backend\nwhisper_init_state: kv self size = 3.15 MB\nwhisper_init_state: kv cross size = 9.44 MB\nwhisper_init_state: kv pad size = 2.36 MB\nwhisper_init_state: compute buffer (conv) = 14.17 MB\nwhisper_init_state: compute buffer (encode) = 65.96 MB\nwhisper_init_state: compute buffer (cross) = 8.50 MB\nwhisper_init_state: compute buffer (decode) = 96.83 MB\n2026-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh\n2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh\n2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXRadioButton|DOCKER\nAXRadioButton|DEV (-zsh)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 10805 100 10805 0 0 1966k 0 --:--:-- --:--:-- --:--:-- 2110k\n{\n \"data\": [\n {\n \"config\": {\n \"description\": \"Summarize meeting transcript with key takeaways and action items\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🤝\u0000\",\n \"name\": \"meeting-summary\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Meeting Summary\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Meeting Summary\\ndescription: \\\"Summarize meeting transcript with key takeaways and action items\\\"\\nicon: \\\"🤝\u0000\\\"\\nfeatured: false\\n---\\n\\nSummarize 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\\n\"\n },\n {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"How you use AI tools — patterns and insights\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🤖\u0000\",\n \"name\": \"ai-habits\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"AI Habits\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: AI Habits\\ndescription: \\\"How you use AI tools — patterns and insights\\\"\\nicon: \\\"🤖\u0000\\\"\\nfeatured: true\\n---\\n\\nSearch 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Create a video of your recent screen activity\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🎬\u0000\",\n \"name\": \"video-export\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Export Video Clip\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Export a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Export Video Clip\\ndescription: \\\"Create a video of your recent screen activity\\\"\\nicon: \\\"🎬\u0000\\\"\\nfeatured: false\\n---\\n\\nExport a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\\n\"\n },\n {\n \"config\": {\n \"description\": \"What you did, what's next, and any blockers\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🏢\u0000\",\n \"name\": \"standup-update\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Standup Update\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Standup Update\\ndescription: \\\"What you did, what's next, and any blockers\\\"\\nicon: \\\"🏢\u0000\\\"\\nfeatured: true\\n---\\n\\nBased on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\\n\"\n }\n ],\n \"total\": 6\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes/time-breakdown | jq .\ncurl http://localhost:3030/pipes/day-recap | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 2193 100 2193 0 0 643k 0 --:--:-- --:--:-- --:--:-- 713k\n{\n \"data\": {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n }\n}\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 1876 100 1876 0 0 1218k 0 --:--:-- --:--:-- --:--:-- 1832k\n{\n \"data\": {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n }\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST http://localhost:3030/pipes/time-breakdown/run | jq .\ncurl -X POST http://localhost:3030/pipes/day-recap/run | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 70 100 70 0 0 6152 0 --:--:-- --:--:-- --:--:-- 6363\n{\n \"error\": \"agent 'pi' is not installed — run ensure_installed first\"\n}\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 70 100 70 0 0 14236 0 --:--:-- --:--:-- --:--:-- 17500\n{\n \"error\": \"agent 'pi' is not installed — run ensure_installed first\"\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT pipe_name, status, started_at, finished_at, stdout, stderr\nFROM pipe_executions\nORDER BY started_at DESC\nLIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","depth":4,"value":"whisper_model_load: n_audio_head = 6\nwhisper_model_load: n_audio_layer = 4\nwhisper_model_load: n_text_ctx = 448\nwhisper_model_load: n_text_state = 384\nwhisper_model_load: n_text_head = 6\nwhisper_model_load: n_text_layer = 4\nwhisper_model_load: n_mels = 80\nwhisper_model_load: ftype = 1\nwhisper_model_load: qntvr = 0\nwhisper_model_load: type = 1 (tiny)\nwhisper_model_load: adding 1608 extra tokens\nwhisper_model_load: n_langs = 99\nwhisper_model_load: Metal total size = 77.11 MB\nwhisper_model_load: model size = 77.11 MB\n2026-04-09T19:54:07.242116Z INFO screenpipe_audio::transcription::engine: whisper model loaded successfully\nwhisper_backend_init_gpu: device 0: Metal (type: 1)\nwhisper_backend_init_gpu: found GPU device 0: Metal (type: 1, cnt: 0)\nwhisper_backend_init_gpu: using Metal backend\nggml_metal_init: allocating\nggml_metal_init: found device: Apple M1\nggml_metal_init: picking default device: Apple M1\nggml_metal_init: use fusion = true\nggml_metal_init: use concurrency = true\nggml_metal_init: use graph optimize = true\nwhisper_backend_init: using BLAS backend\nwhisper_init_state: kv self size = 3.15 MB\nwhisper_init_state: kv cross size = 9.44 MB\nwhisper_init_state: kv pad size = 2.36 MB\nwhisper_init_state: compute buffer (conv) = 14.17 MB\nwhisper_init_state: compute buffer (encode) = 65.96 MB\nwhisper_init_state: compute buffer (cross) = 8.50 MB\nwhisper_init_state: compute buffer (decode) = 96.83 MB\n2026-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)\n2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh\n2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh\n2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXButton|Close Tab\nAXRadioButton|DOCKER\nAXRadioButton|DEV (-zsh)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 10805 100 10805 0 0 1966k 0 --:--:-- --:--:-- --:--:-- 2110k\n{\n \"data\": [\n {\n \"config\": {\n \"description\": \"Summarize meeting transcript with key takeaways and action items\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🤝\u0000\",\n \"name\": \"meeting-summary\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Meeting Summary\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Meeting Summary\\ndescription: \\\"Summarize meeting transcript with key takeaways and action items\\\"\\nicon: \\\"🤝\u0000\\\"\\nfeatured: false\\n---\\n\\nSummarize 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Meeting Summary\\nOne sentence: what this meeting was about.\\n\\n## Key Takeaways\\n- Top 3-5 important points discussed\\n- Include who said what when relevant\\n\\n## Action Items\\n- [ ] Task — assigned to whom, deadline if mentioned\\n- [ ] Task — assigned to whom\\n\\n## Decisions Made\\n- List any decisions or agreements reached\\n\\n## Open Questions\\n- Anything unresolved or needing follow-up\\n\\nKeep it concise and actionable.\\n\"\n },\n {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"How you use AI tools — patterns and insights\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🤖\u0000\",\n \"name\": \"ai-habits\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"AI Habits\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: AI Habits\\ndescription: \\\"How you use AI tools — patterns and insights\\\"\\nicon: \\\"🤖\u0000\\\"\\nfeatured: true\\n---\\n\\nSearch 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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## AI Tools Used\\n- List each tool with approximate time spent (e.g. \\\"Claude: ~45min\\\")\\n\\n## What I Used Them For\\n- For each tool: coding, writing, research, or brainstorming\\n\\n## Usage Patterns\\n- Do I switch between tools? Use them in bursts or steadily?\\n\\n## Effectiveness\\n- Which tool appeared alongside completed work vs. abandoned attempts\\n\\nIf no AI usage is found, say so clearly. End with: \\\"**Tip:** [one suggestion to use AI tools more effectively]\\\"\\n\"\n },\n {\n \"config\": {\n \"description\": \"Create a video of your recent screen activity\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"🎬\u0000\",\n \"name\": \"video-export\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Export Video Clip\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Export a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Export Video Clip\\ndescription: \\\"Create a video of your recent screen activity\\\"\\nicon: \\\"🎬\u0000\\\"\\nfeatured: false\\n---\\n\\nExport a video of my screen activity from the last 5 minutes.\\n\\nRead screenpipe skill first.\\n\\nUse 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.\\n\\nIf the export is large, suggest a lower fps or shorter time range.\\n\"\n },\n {\n \"config\": {\n \"description\": \"What you did, what's next, and any blockers\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"🏢\u0000\",\n \"name\": \"standup-update\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Standup Update\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Based on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Standup Update\\ndescription: \\\"What you did, what's next, and any blockers\\\"\\nicon: \\\"🏢\u0000\\\"\\nfeatured: true\\n---\\n\\nBased on my recordings from the last 24 hours, generate a standup update. Use limit=10 per search, max 3 searches total.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Yesterday\\n- What I worked on (name specific projects, files, tools, PRs)\\n\\n## Today\\n- What I will work on next (based on unfinished tasks and recent activity)\\n\\n## Blockers\\n- Issues I hit — errors, slow builds, waiting on someone\\n- If no blockers, write \\\"None\\\"\\n\\nKeep it under 150 words. Copy-paste ready for a team standup.\\n\"\n }\n ],\n \"total\": 6\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl http://localhost:3030/pipes/time-breakdown | jq .\ncurl http://localhost:3030/pipes/day-recap | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 2193 100 2193 0 0 643k 0 --:--:-- --:--:-- --:--:-- 713k\n{\n \"data\": {\n \"config\": {\n \"description\": \"Where your time went — by app, project, and category\",\n \"enabled\": true,\n \"featured\": false,\n \"icon\": \"⏱\",\n \"name\": \"time-breakdown\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Time Breakdown\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"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.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Time Breakdown\\ndescription: \\\"Where your time went — by app, project, and category\\\"\\nicon: \\\"⏱\\\"\\nfeatured: false\\n---\\n\\nAnalyze my app usage from today (last 12 hours). Use limit=10 per search, max 4 searches. Prefer /raw_sql with COUNT/GROUP BY queries.\\n\\nRead screenpipe skill first.\\n\\nUse this exact format with durations and percentages:\\n\\n## By Application\\n- List each app with duration and percentage, sorted by time (e.g. \\\"VS Code: 2h 15min (28%)\\\")\\n\\n## By Category\\n- Group into: coding, meetings, browsing, writing, communication, other\\n- Show hours and percentage per category\\n\\n## By Project\\n- Group related activities by project/topic. Name specific repos or tasks.\\n\\n## Productivity Score\\n- Calculate: focused_work_hours / total_hours as a percentage\\n- Focused = coding + writing. Unfocused = browsing + switching.\\n\\nEnd with: \\\"**Suggestion:** [one specific change to improve tomorrow's productivity]\\\"\\n\"\n }\n}\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 1876 100 1876 0 0 1218k 0 --:--:-- --:--:-- --:--:-- 1832k\n{\n \"data\": {\n \"config\": {\n \"description\": \"Today's accomplishments, key moments, and unfinished work\",\n \"enabled\": true,\n \"featured\": true,\n \"icon\": \"📋\u0000\",\n \"name\": \"day-recap\",\n \"schedule\": \"manual\",\n \"template\": true,\n \"title\": \"Day Recap\"\n },\n \"consecutive_failures\": 0,\n \"current_execution_id\": null,\n \"is_running\": false,\n \"last_error\": null,\n \"last_run\": null,\n \"last_success\": null,\n \"prompt_body\": \"Analyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\",\n \"raw_content\": \"---\\nschedule: manual\\nenabled: true\\ntemplate: true\\ntitle: Day Recap\\ndescription: \\\"Today's accomplishments, key moments, and unfinished work\\\"\\nicon: \\\"📋\u0000\\\"\\nfeatured: true\\n---\\n\\nAnalyze my screen and audio recordings from today (last 16 hours only). \\n\\nRead screenpipe skill first.\\n\\nUse this exact format:\\n\\n## Summary\\nOne sentence: what I mainly did today.\\n\\n## Accomplishments\\n- Top 3 things I finished, with timestamps (e.g. \\\"2:30 PM\\\")\\n- Name specific apps, files, or projects\\n\\n## Key Moments\\n- Important things I saw, said, or heard — with timestamps\\n\\n## Unfinished Work\\n- What I should continue tomorrow — name the app/file/task\\n\\n## Patterns\\n- Apps I used most, topics that came up repeatedly\\n\\nOnly report what you can verify from the data. End with: \\\"**Next step:** [most important thing to continue]\\\"\\n\"\n }\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST http://localhost:3030/pipes/time-breakdown/run | jq .\ncurl -X POST http://localhost:3030/pipes/day-recap/run | jq .\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 70 100 70 0 0 6152 0 --:--:-- --:--:-- --:--:-- 6363\n{\n \"error\": \"agent 'pi' is not installed — run ensure_installed first\"\n}\n % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n100 70 100 70 0 0 14236 0 --:--:-- --:--:-- --:--:-- 17500\n{\n \"error\": \"agent 'pi' is not installed — run ensure_installed first\"\n}\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite \"\nSELECT pipe_name, status, started_at, finished_at, stdout, stderr\nFROM pipe_executions\nORDER BY started_at DESC\nLIMIT 5;\"\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (-zsh)","depth":2,"bounds":{"left":0.140625,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.14479166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.28125,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.28541666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.421875,"top":0.05888889,"width":0.140625,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42604166,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5625,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56666666,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.7027778,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.70694447,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.84305555,"top":0.05888889,"width":0.14027777,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8472222,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"-zsh","depth":1,"bounds":{"left":0.48819444,"top":0.033333335,"width":0.022916667,"height":0.017777778},"role_description":"text"}]...
|
-5040064046657482078
|
-8435208374211609107
|
visual_change
|
accessibility
|
NULL
|
whisper_model_load: n_audio_head = 6
whisper_mode 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-04-09T19:54:07.242116Z 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-04-09T19:54:07.250010Z INFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)
2026-04-09T19:54:07.250055Z INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh
2026-04-09T19:54:07.250066Z INFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh
2026-04-09T19:54:41.976071Z INFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656, trigger=visual_change)
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXButton|Close Tab
AXRadioButton|DOCKER
AXRadioButton|DEV (-zsh)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl [URL_WITH_CREDENTIALS] ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT pipe_name, status, started_at, finished_at, stdout, stderr
FROM pipe_executions
ORDER BY started_at DESC
LIMIT 5;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
853
|
|
857
|
20
|
29
|
2026-04-11T12:28:34.808044+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910514808_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp>0 lal100% (8Sat 11 Apr 15:28:34-zsh181DOCKERO ₴1"enabled": true,"featured": true,"icon":"name" :"day-recap""schedule":"manual""template": true,"title": "Day Recap"DEV (-zsh)О 882APP (-zsh)• ₴з-zsh• 84-zsh• ₫5-zshO ₴6-zshX7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"Last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today(last 16 hours only). In\nRead screenpipe skill first.In\nUse this exact format:\n\n## Summary\nOnesentence:what T mainlv did todov.\n\n## Accomnlishmentsln- Ton 3 thinas T finished.withtimestamns (e.a.1"2:30 PM\")\n- Nome snecific anns.files.or nroiects\n\n## Kev Moments\n-n$I}PostmanLUkasecunuscurl-X POST [URL_WITH_CREDENTIALS] pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ D...
|
NULL
|
-1031159201987695359
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp>0 lal100% (8Sat 11 Apr 15:28:34-zsh181DOCKERO ₴1"enabled": true,"featured": true,"icon":"name" :"day-recap""schedule":"manual""template": true,"title": "Day Recap"DEV (-zsh)О 882APP (-zsh)• ₴з-zsh• 84-zsh• ₫5-zshO ₴6-zshX7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"Last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today(last 16 hours only). In\nRead screenpipe skill first.In\nUse this exact format:\n\n## Summary\nOnesentence:what T mainlv did todov.\n\n## Accomnlishmentsln- Ton 3 thinas T finished.withtimestamns (e.a.1"2:30 PM\")\n- Nome snecific anns.files.or nroiects\n\n## Kev Moments\n-n$I}PostmanLUkasecunuscurl-X POST [URL_WITH_CREDENTIALS] pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ D...
|
NULL
|
|
863
|
20
|
35
|
2026-04-11T12:28:59.419761+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910539419_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA100% <7Sat 11 Apr 15:28:59-zshT81DOCKERO ₴1DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• 84-zsh• ₴5-zshO ₴6-zsh*7whisper_model_load:n_audio_head= 6whisper_model_load:n_audio_layer= 4whisper_model_load:n_text_ctx=448whisper_model._load:n_text_state= 384whisper_model_load:whisper_model_load:n_text_head6n_text_layer4whisper_model_load:n_mels= 80whisper_model_load:ftype= 1whisper_model_load:whisper_model_load:qntvr=0type= 1whisper_model,-load:(tiny)adding1608extratokenswhisper_model_load:whisper_model_load:n_langs99Metaltotalsize =77.11 MBwhisper_model_load:modelsize77.11 MB2026-04-09T19:54:07.242116ZINFOscreenpipe_audio::transcription::engine: whisper model loaded successfullywhisper_backend_init_gpu: device 0: Metal (type: 1)whisper_backend_init_gpu: found GPU device 0: Metalwhisper_backend_init_gpu:(type: 1, cnt: 0)using Metal backendggml_metal_init: allocatingggml_metal_init:founddevice: Apple M1ggml_metal_init:picking default device: Apple M1ggml_metal_init:use fusion= trueggml_metal_init: use concurrency= trueggml_metal_init: use graph optimize= truewhisper_backend_init: using BLAS backendwhisper_init_state: kv selfsize=3.15 MBwhisper_init_state: kv cross size =9.44 MBwhisper_init_state: kv padsize=2.36 MBwhisper_init_state: compute buffer (conv)=14.17 MBwhisper_init_state: compute buffer (encode) =65.96 MBwhisper_init_state:computebuffer (cross)=8.50 MBwhisper_init_state:compute buffer (decode) =96.83 MB2026-04-09T19:54:07.250010ZINFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)2026-04-09T19:54:07.2500552INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh2026-04-09T19:54:07.250066ZINFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh2026-04-09T19:54:41.976071ZINFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656,trigger=visual_change)AXButton|Close TabAXButton|Close TabAXButton|Close TabAXButton|Close TabAXButton|Close TabAXRadioButton | DOCKERAXRadioButtonIDEV (-zsh)lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clearlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~ $ curl http://localhost:3030/pipes 1 jq....
|
NULL
|
-6459910117241747318
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0(ahlA100% <7Sat 11 Apr 15:28:59-zshT81DOCKERO ₴1DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• 84-zsh• ₴5-zshO ₴6-zsh*7whisper_model_load:n_audio_head= 6whisper_model_load:n_audio_layer= 4whisper_model_load:n_text_ctx=448whisper_model._load:n_text_state= 384whisper_model_load:whisper_model_load:n_text_head6n_text_layer4whisper_model_load:n_mels= 80whisper_model_load:ftype= 1whisper_model_load:whisper_model_load:qntvr=0type= 1whisper_model,-load:(tiny)adding1608extratokenswhisper_model_load:whisper_model_load:n_langs99Metaltotalsize =77.11 MBwhisper_model_load:modelsize77.11 MB2026-04-09T19:54:07.242116ZINFOscreenpipe_audio::transcription::engine: whisper model loaded successfullywhisper_backend_init_gpu: device 0: Metal (type: 1)whisper_backend_init_gpu: found GPU device 0: Metalwhisper_backend_init_gpu:(type: 1, cnt: 0)using Metal backendggml_metal_init: allocatingggml_metal_init:founddevice: Apple M1ggml_metal_init:picking default device: Apple M1ggml_metal_init:use fusion= trueggml_metal_init: use concurrency= trueggml_metal_init: use graph optimize= truewhisper_backend_init: using BLAS backendwhisper_init_state: kv selfsize=3.15 MBwhisper_init_state: kv cross size =9.44 MBwhisper_init_state: kv padsize=2.36 MBwhisper_init_state: compute buffer (conv)=14.17 MBwhisper_init_state: compute buffer (encode) =65.96 MBwhisper_init_state:computebuffer (cross)=8.50 MBwhisper_init_state:compute buffer (decode) =96.83 MB2026-04-09T19:54:07.250010ZINFO screenpipe_audio::audio_manager::manager: transcription session created (will be reused across segments)2026-04-09T19:54:07.2500552INFO screenpipe_audio::audio_manager::manager: central audio-receiver handler restarted for capability refresh2026-04-09T19:54:07.250066ZINFO screenpipe_audio::audio_manager::manager: central transcription-receiver handler restarted for capability refresh2026-04-09T19:54:41.976071ZINFO screenpipe_engine::event_driven_capture: content dedup: skipping capture for monitor 1 (hash=-1231441521457939656,trigger=visual_change)AXButton|Close TabAXButton|Close TabAXButton|Close TabAXButton|Close TabAXButton|Close TabAXRadioButton | DOCKERAXRadioButtonIDEV (-zsh)lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ clearlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~ $ curl http://localhost:3030/pipes 1 jq....
|
NULL
|
|
870
|
21
|
1
|
2026-04-11T12:29:51.144155+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910591144_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp100% C8 Sat 11 Apr 15:29:50-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• *4-zsh• *5-zsh0 %6-zsh*7+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
-2156652355723762852
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp100% C8 Sat 11 Apr 15:29:50-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• *4-zsh• *5-zsh0 %6-zsh*7+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
869
|
|
872
|
21
|
3
|
2026-04-11T12:30:45.663163+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910645663_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp100% C8 Sat 11 Apr 15:30:45-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• *4-zsh• *5-zsh0 %6-zsh*7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
6305656414571296053
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp100% C8 Sat 11 Apr 15:30:45-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• *4-zsh• *5-zsh0 %6-zsh*7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
871
|
|
873
|
21
|
4
|
2026-04-11T12:30:48.684214+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910648684_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp100% C8 Sat 11 Apr 15:30:48-zshL₴81DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• *4-zsh• *5-zsh0 %6-zsh*7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
2233232831203666189
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp100% C8 Sat 11 Apr 15:30:48-zshL₴81DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• *4-zsh• *5-zsh0 %6-zsh*7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
|
875
|
21
|
6
|
2026-04-11T12:31:46.334384+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910706334_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp100% C8 Sat 11 Apr 15:31:45-zsh181DOCKER0 ₴1"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)-zsh• *4-zsh• *5-zsh0 %6-zsh*7+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
-4010291763027570579
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp100% C8 Sat 11 Apr 15:31:45-zsh181DOCKER0 ₴1"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)-zsh• *4-zsh• *5-zsh0 %6-zsh*7+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
|
876
|
21
|
7
|
2026-04-11T12:31:49.357115+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910709357_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp100% C8 Sat 11 Apr 15:31:48-zsh181DOCKER0 ₴1"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)-zsh• *4-zsh• *5-zsh0 %6-zsh*7+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
-3573060640989424106
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp100% C8 Sat 11 Apr 15:31:48-zsh181DOCKER0 ₴1"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)-zsh• *4-zsh• *5-zsh0 %6-zsh*7+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
875
|
|
878
|
21
|
9
|
2026-04-11T12:32:46.939064+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910766939_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp100% C8 Sat 11 Apr 15:32:46-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)О 882APP (-zsh)• ₴з-zsh• *4-zsh• *5-zsh0 %6-zsh*7+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
-2198705475165811023
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp100% C8 Sat 11 Apr 15:32:46-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)О 882APP (-zsh)• ₴з-zsh• *4-zsh• *5-zsh0 %6-zsh*7+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
877
|
|
879
|
21
|
10
|
2026-04-11T12:32:49.978604+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910769978_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp100% C8 Sat 11 Apr 15:32:49-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• *4-zsh• *5-zsh0 %6-zsh*7+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
-5210145377185730783
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindowH iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp100% C8 Sat 11 Apr 15:32:49-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• *4-zsh• *5-zsh0 %6-zsh*7+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
|
885
|
21
|
16
|
2026-04-11T12:33:22.221429+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910802221_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Firefox< →0 0l100% C48Sat 11 Apr 15:33:21• 0-zs Firefox< →0 0l100% C48Sat 11 Apr 15:33:21• 0-zshL881DOCKER0 ₴1"enabled": true,"featured": true,"icon": "O""name": "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• 84-zsh• ₴5-zshO 886-zsh*7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.In\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM\")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue])"","raw_content": "---\nschedule: manual \nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST http://localhost:3030/pipes/time-breakdown/run | jq .curl-X POST http://localhost:3030/pipes/day-recap/run | jq .% Total% Received % XferdAverage SpeedTimeTimeDload UploadTotalSpent100701006152Time CurrentLeftSpeed6363"error" ."aaent'pi' is not installed- run ensure installed first"TimeTime CurrentSpent Left Speed--:--:-- 17500stalled first".screenpipe/db.sqlite "ut, stderr39:15/ 54:1511...
|
NULL
|
4179527691918760024
|
NULL
|
visual_change
|
ocr
|
NULL
|
Firefox< →0 0l100% C48Sat 11 Apr 15:33:21• 0-zs Firefox< →0 0l100% C48Sat 11 Apr 15:33:21• 0-zshL881DOCKER0 ₴1"enabled": true,"featured": true,"icon": "O""name": "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• 84-zsh• ₴5-zshO 886-zsh*7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.In\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM\")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue])"","raw_content": "---\nschedule: manual \nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST http://localhost:3030/pipes/time-breakdown/run | jq .curl-X POST http://localhost:3030/pipes/day-recap/run | jq .% Total% Received % XferdAverage SpeedTimeTimeDload UploadTotalSpent100701006152Time CurrentLeftSpeed6363"error" ."aaent'pi' is not installed- run ensure installed first"TimeTime CurrentSpent Left Speed--:--:-- 17500stalled first".screenpipe/db.sqlite "ut, stderr39:15/ 54:1511...
|
NULL
|
|
891
|
21
|
22
|
2026-04-11T12:33:46.641041+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910826641_m1.jpg...
|
Firefox
|
Picture-in-Picture
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Close
Send back to tab
39:23 / 54:15
Backward
Paus Close
Send back to tab
39:23 / 54:15
Backward
Pause
Forward
Mute
Fullscreen...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Close","depth":3,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Send back to tab","depth":3,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"39:23 / 54:15","depth":5,"bounds":{"left":1.0,"top":0.0,"width":-0.03680551,"height":0.02},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Backward","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Pause","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Forward","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Mute","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Fullscreen","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
3129782928625813698
|
7916199472445601445
|
visual_change
|
hybrid
|
NULL
|
Close
Send back to tab
39:23 / 54:15
Backward
Paus Close
Send back to tab
39:23 / 54:15
Backward
Pause
Forward
Mute
Fullscreen
Firefox}• 0.100% C8 Sat 11 Apr 15:33:46-zshDOCKER0 ₴1"enabled": true,"featured": true,"icon": "O""name": "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)|• ₴з-zsh• *4-zsh• *5-zsh0 %6-zsh*7L₴81+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.In\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM\")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue])"","raw_content": "---\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
|
892
|
21
|
23
|
2026-04-11T12:33:49.650490+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910829650_m1.jpg...
|
Firefox
|
Picture-in-Picture
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Close
Send back to tab
39:26 / 54:15
Backward
Paus Close
Send back to tab
39:26 / 54:15
Backward
Pause
Forward
Mute
Fullscreen...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Close","depth":3,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Send back to tab","depth":3,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXStaticText","text":"39:26 / 54:15","depth":5,"bounds":{"left":1.0,"top":0.0,"width":-0.03680551,"height":0.02},"help_text":"","role_description":"text","subrole":"AXUnknown"},{"role":"AXButton","text":"Backward","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Pause","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Forward","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Mute","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false},{"role":"AXButton","text":"Fullscreen","depth":4,"help_text":"","role_description":"button","subrole":"AXUnknown","is_enabled":true,"is_focused":false,"is_selected":false}]...
|
-3846637658712140804
|
-4189850435593292044
|
visual_change
|
hybrid
|
NULL
|
Close
Send back to tab
39:26 / 54:15
Backward
Paus Close
Send back to tab
39:26 / 54:15
Backward
Pause
Forward
Mute
Fullscreen
Firefox100% C8 Sat 11 Apr 15:33:49-zshDOCKER0 ₴1"enabled": true,"featured": true,"icon": "O""name": "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)|-zsh• *4-zsh• *5-zsh0 %6-zsh*7L₴81+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.In\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM\")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue])"","raw_content": "---\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
891
|
|
898
|
21
|
29
|
2026-04-11T12:34:04.932268+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910844932_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
ce:FirefoxFileEditViewHistoryBookmarksProfilesTool ce:FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelp100% C47 8 Sat 11 Apr 15:34:04-zsh181DOCKERO ₴1"enabled": true,"featured": true,"icon": "O""name": "day-recap""schedule": "manual""template": true,"title": "Day Recap"DEV (-zsh)О 882APP (-zsh)• *3-zsh• *4-zsh• ₴5-zshO 886-zsh*7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentenwhat T mainlv did today \n\n## Accomolishments\n- Ton 3 thinas I finished with timestomos (ea ("2:30 PM\")An- Nome snecific anns files or proiectslnin## Key Momentsln-ClaudeLukasocurl-X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
-4876138825643768298
|
NULL
|
visual_change
|
ocr
|
NULL
|
ce:FirefoxFileEditViewHistoryBookmarksProfilesTool ce:FirefoxFileEditViewHistoryBookmarksProfilesToolsWindowHelp100% C47 8 Sat 11 Apr 15:34:04-zsh181DOCKERO ₴1"enabled": true,"featured": true,"icon": "O""name": "day-recap""schedule": "manual""template": true,"title": "Day Recap"DEV (-zsh)О 882APP (-zsh)• *3-zsh• *4-zsh• ₴5-zshO 886-zsh*7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentenwhat T mainlv did today \n\n## Accomolishments\n- Ton 3 thinas I finished with timestomos (ea ("2:30 PM\")An- Nome snecific anns files or proiectslnin## Key Momentsln-ClaudeLukasocurl-X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
897
|
|
899
|
NULL
|
0
|
2026-04-11T12:34:07.942033+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910847942_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Firefox FileEditViewHistoryBookmarksProfilesToolsW Firefox FileEditViewHistoryBookmarksProfilesToolsWindowHelp100% C8 Sat 11 Apr 15:34:07-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)|• *3-zsh• 84-zsh• *5-zsh0 %6-zsh*7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
-8335542185052520444
|
NULL
|
visual_change
|
ocr
|
NULL
|
Firefox FileEditViewHistoryBookmarksProfilesToolsW Firefox FileEditViewHistoryBookmarksProfilesToolsWindowHelp100% C8 Sat 11 Apr 15:34:07-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)|• *3-zsh• 84-zsh• *5-zsh0 %6-zsh*7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
|
901
|
22
|
1
|
2026-04-11T12:34:47.304244+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910887304_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Firefox FileEditViewHistoryBookmarksProfilesToolsW Firefox FileEditViewHistoryBookmarksProfilesToolsWindowHelp100% C8 Sat 11 Apr 15:34:47-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84-zsh• *5-zsh0 %6-zsh*7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
-1979713622642302539
|
NULL
|
visual_change
|
ocr
|
NULL
|
Firefox FileEditViewHistoryBookmarksProfilesToolsW Firefox FileEditViewHistoryBookmarksProfilesToolsWindowHelp100% C8 Sat 11 Apr 15:34:47-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84-zsh• *5-zsh0 %6-zsh*7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
|
902
|
22
|
2
|
2026-04-11T12:34:50.310326+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910890310_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Firefox FileEditViewHistoryBookmarksProfilesToolsW Firefox FileEditViewHistoryBookmarksProfilesToolsWindowHelp100% C8 Sat 11 Apr 15:34:50-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)О 882APP (-zsh)• *3-zsh• 84-zsh• *5-zsh0 %6-zsh*7+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
205260727385376554
|
NULL
|
visual_change
|
ocr
|
NULL
|
Firefox FileEditViewHistoryBookmarksProfilesToolsW Firefox FileEditViewHistoryBookmarksProfilesToolsWindowHelp100% C8 Sat 11 Apr 15:34:50-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)О 882APP (-zsh)• *3-zsh• 84-zsh• *5-zsh0 %6-zsh*7+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
901
|
|
904
|
22
|
4
|
2026-04-11T12:35:47.913424+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910947913_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Firefox FileEditViewHistoryBookmarksProfilesToolsW Firefox FileEditViewHistoryBookmarksProfilesToolsWindowHelp100% C8 Sat 11 Apr 15:35:47-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)О 882APP (-zsh)• *3-zsh• 84-zsh• *5-zsh0 %6-zsh*7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
1058673125365355327
|
NULL
|
visual_change
|
ocr
|
NULL
|
Firefox FileEditViewHistoryBookmarksProfilesToolsW Firefox FileEditViewHistoryBookmarksProfilesToolsWindowHelp100% C8 Sat 11 Apr 15:35:47-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)О 882APP (-zsh)• *3-zsh• 84-zsh• *5-zsh0 %6-zsh*7},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
903
|
|
905
|
22
|
5
|
2026-04-11T12:35:50.932769+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-11/1775 /Users/lukas/.screenpipe/data/data/2026-04-11/1775910950932_m1.jpg...
|
NULL
|
NULL
|
True
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Firefox FileEditViewHistoryBookmarksProfilesToolsW Firefox FileEditViewHistoryBookmarksProfilesToolsWindowHelp100% C8 Sat 11 Apr 15:35:50-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)О 882APP (-zsh)• *3-zsh• 84-zsh• *5-zsh0 %6-zsh*7+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|
-3963083314383236453
|
NULL
|
visual_change
|
ocr
|
NULL
|
Firefox FileEditViewHistoryBookmarksProfilesToolsW Firefox FileEditViewHistoryBookmarksProfilesToolsWindowHelp100% C8 Sat 11 Apr 15:35:50-zshL881DOCKER0 21"enabled": true,"featured": true,"icon": "O""name" : "day-recap""schedule" : "manual""template": true,"title": "Day Recap"DEV (-zsh)О 882APP (-zsh)• *3-zsh• 84-zsh• *5-zsh0 %6-zsh*7+},"consecutive_failures": 0,"current_execution_id": null,"is_running": false,"last_error": null,"last_run": null,"last_success": null,"prompt_body": "Analyze my screen and audio recordingsfrom today (last 16 hours only). \n\nRead screenpipe skill first.\n\nUse this exact format:\n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments \n-Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most,topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"","raw_content": "_--\nschedule: manual\nenabled: true\ntemplate: true\ntitle: Day Recap\ndescription: \"Today's accomplishments, key moments, and unfinished work\"\nicon: \""\nfeatured: true\n---\n\nAnalyze my screen and audio recordings from today (last 16 hours only). In\nRead screenpipe skill first.\n\nUse this exact format: \n\n## Summary\nOne sentence: what I mainly did today. \n\n## Accomplishments\n- Top 3 things I finished, with timestamps (e.g. \"2:30 PM")\n- Name specific apps, files, or projects\n\n## Key Moments\n- Important things I saw, said, or heard - with timestamps\n\n## Unfinished Work\n- What I should continue tomorrow - name the app/file/task\n\n## Patterns\n- Apps I used most, topics that came up repeatedly\n\nOnly report what you can verify from the data. End with: \"**Next step:** [most important thing to continue]\"\n"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ curl -X POST [URL_WITH_CREDENTIALS] ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT pipe_name, status, started_at, finished_at, stdout, stderrFROM pipe_executionsORDER BY started_at DESCLIMIT 5;"lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $...
|
NULL
|