|
drwxr-xr-x 5 lukas staff 160B 11 Apr 15:03 .
drwxr-xr-x 5 lukas staff 160B 11 Apr 15:03 .
drwxr-xr-x 10 lukas staff 320B 11 Apr 14:52 ..
drwxr-xr-x 5 lukas staff 160B 11 Apr 14:52 data
drwxr-xr-x 2 lukas staff 64B 9 Apr 20:05 pending-transcriptions
-rw-r--r-- 1 lukas staff 0B 11 Apr 15:03 screenpipe.db
zsh: command not found: #
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/.screenpipe -name "*.db" -o -name "*.sqlite" 2>/dev/null
/Users/lukas/.screenpipe/db.sqlite
/Users/lukas/.screenpipe/data/screenpipe.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ s -lah ~/.screenpipe/
ls -lah ~/.screenpipe/data/ 2>/dev/null
zsh: command not found: s
total 0
drwxr-xr-x 5 lukas staff 160B 11 Apr 15:03 .
drwxr-xr-x 10 lukas staff 320B 11 Apr 14:52 ..
drwxr-xr-x 5 lukas staff 160B 11 Apr 14:52 data
drwxr-xr-x 2 lukas staff 64B 9 Apr 20:05 pending-transcriptions
-rw-r--r-- 1 lukas staff 0B 11 Apr 15:03 screenpipe.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/null
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/.screenpipe -name "*.db" -path "*screenpipe*" 2>/dev/null
/Users/lukas/.screenpipe/data/screenpipe.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ lsof -p $(pgrep screenpipe) | grep -E "\.db|\.sqlite"
screenpip 20525 lukas txt REG 1,15 32768 220914771 /Users/lukas/.screenpipe/db.sqlite-shm
screenpip 20525 lukas txt REG 1,15 70270976 220904259 /Users/lukas/.screenpipe/db.sqlite
screenpip 20525 lukas 17u REG 1,15 70270976 220904259 /Users/lukas/.screenpipe/db.sqlite
screenpip 20525 lukas 22u REG 1,15 70270976 220904259 /Users/lukas/.screenpipe/db.sqlite
screenpip 20525 lukas 23u REG 1,15 16533592 220914770 /Users/lukas/.screenpipe/db.sqlite-wal
screenpip 20525 lukas 24u REG 1,15 16533592 220914770 /Users/lukas/.screenpipe/db.sqlite-wal
screenpip 20525 lukas 25u REG 1,15 32768 220914771 /Users/lukas/.screenpipe/db.sqlite-shm
screenpip 20525 lukas 26u REG 1,15 70270976 220904259 /Users/lukas/.screenpipe/db.sqlite
screenpip 20525 lukas 27u REG 1,15 16533592 220914770 /Users/lukas/.screenpipe/db.sqlite-wal
screenpip 20525 lukas 28u REG 1,15 70270976 220904259 /Users/lukas/.screenpipe/db.sqlite
screenpip 20525 lukas 29u REG 1,15 16533592 220914770 /Users/lukas/.screenpipe/db.sqlite-wal
screenpip 20525 lukas 31u REG 1,15 70270976 220904259 /Users/lukas/.screenpipe/db.sqlite
screenpip 20525 lukas 33u REG 1,15 16533592 220914770 /Users/lukas/.screenpipe/db.sqlite-wal
screenpip 20525 lukas 55u REG 1,15 70270976 220904259 /Users/lukas/.screenpipe/db.sqlite
screenpip 20525 lukas 56u REG 1,15 70270976 220904259 /Users/lukas/.screenpipe/db.sqlite
screenpip 20525 lukas 57u REG 1,15 16533592 220914770 /Users/lukas/.screenpipe/db.sqlite-wal
screenpip 20525 lukas 58u REG 1,15 16533592 220914770 /Users/lukas/.screenpipe/db.sqlite-wal
screenpip 20525 lukas 59u REG 1,15 70270976 220904259 /Users/lukas/.screenpipe/db.sqlite
screenpip 20525 lukas 60u REG 1,15 70270976 220904259 /Users/lukas/.screenpipe/db.sqlite
screenpip 20525 lukas 61u REG 1,15 16533592 220914770 /Users/lukas/.screenpipe/db.sqlite-wal
screenpip 20525 lukas 62u REG 1,15 16533592 220914770 /Users/lukas/.screenpipe/db.sqlite-wal
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite ".tables"
_sqlx_migrations meetings
audio_chunks memories
audio_tags memories_fts
audio_transcriptions memories_fts_config
audio_transcriptions_fts memories_fts_data
audio_transcriptions_fts_config memories_fts_docsize
audio_transcriptions_fts_data memories_fts_idx
audio_transcriptions_fts_docsize ocr_text
audio_transcriptions_fts_idx pipe_executions
elements pipe_scheduler_state
elements_fts speaker_embeddings
elements_fts_config speakers
elements_fts_data tags
elements_fts_docsize ui_events
elements_fts_idx ui_events_fts
frames ui_events_fts_config
frames_fts ui_events_fts_data
frames_fts_config ui_events_fts_docsize
frames_fts_content ui_events_fts_idx
frames_fts_data video_chunks
frames_fts_docsize vision_tags
frames_fts_idx
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
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...
|
iTerm2
|
sqlite3
|
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...
|
iTerm2
|
sqlite3
|
NULL
|
|
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M 64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
1.6G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
1.7G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
648M /Users/lukas/.screenpipe/data
1.1G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Size of the DB itself
ls -lh ~/.screenpipe/db.sqlite
# Size of actual data files (videos/images)
du -sh ~/.screenpipe/data/
# Day by day breakdown
du -sh ~/.screenpipe/data/2026-04-*/
# Compare DB vs total
du -sh ~/.screenpipe/
zsh: command not found: #
-rw-r--r-- 1 lukas staff 1.1G 14 Apr 16:12 /Users/lukas/.screenpipe/db.sqlite
zsh: unknown file attribute: v
651M /Users/lukas/.screenpipe/data/
zsh: command not found: #
zsh: no matches found: /Users/lukas/.screenpipe/data/2026-04-*/
zsh: command not found: #
1.7G /Users/lukas/.screenpipe/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # See how the DB space is distributed
sqlite3 ~/.screenpipe/db.sqlite "
SELECT name,
SUM(pgsize)/1024/1024 as size_mb
FROM dbstat
GROUP BY name
ORDER BY size_mb DESC
LIMIT 20;"
zsh: command not found: #
^[[A^CError: stepping, interrupted (9)
Program interrupted.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name,
SUM(pgsize)/1024/1024 as size_mb
FROM dbstat
GROUP BY name
ORDER BY size_mb DESC
LIMIT 20;"
frames|358
ocr_text|347
elements|146
frames_fts_content|76
idx_elements_source_role_text|23
idx_elements_frame_source_role|23
frames_fts_data|19
elements_fts_data|19
idx_elements_frame_source|16
idx_elements_source|13
idx_elements_frame_id|10
elements_fts_docsize|9
idx_elements_parent_id|8
ui_events|3
idx_ui_events_session_id|1
vision_tags|0
video_chunks|0
ui_events_fts_idx|0
ui_events_fts_docsize|0
ui_events_fts_data|0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
(SELECT COUNT(*) FROM frames) as frames,
(SELECT COUNT(*) FROM ocr_text) as ocr_rows,
(SELECT COUNT(*) FROM ui_monitoring) as ui_rows;"
Error: in prepare, no such table: ui_monitoring
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT MIN(timestamp) FROM frames;"
2026-04-09T16:53:09.043761+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
691M /Users/lukas/.screenpipe/data
1.1G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
9.0M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
1.8G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
1.9G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT app_name, COUNT(*) as frames
FROM frames
GROUP BY app_name
ORDER BY frames DESC
LIMIT 15;"
|6198
Boosteroid|3593
Firefox|2008
iTerm2|1197
PhpStorm|974
Slack|387
Claude|322
Dia|171
Code|155
Finder|125
Alfred|67
System Settings|59
Activity Monitor|45
Orion|43
CleanShot X|42
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
app_name,
COUNT(*) as rows,
AVG(LENGTH(text)) as avg_text_len,
SUM(LENGTH(text))/1024/1024 as total_mb
FROM ocr_text
JOIN frames ON ocr_text.frame_id = frames.id
GROUP BY app_name
ORDER BY total_mb DESC
LIMIT 15;"
Error: in prepare, ambiguous column name: app_name
SELECT app_name, COUNT(*) as rows, AVG(LENGTH(text)) as avg_text_len,
^--- error here
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
f.app_name,
COUNT(*) as rows,
AVG(LENGTH(o.text)) as avg_text_len,
SUM(LENGTH(o.text))/1024/1024 as total_mb
FROM ocr_text o
JOIN frames f ON o.frame_id = f.id
GROUP BY f.app_name
ORDER BY total_mb DESC
LIMIT 15;"
|6206|2989.91637125363|17
Boosteroid|3593|1169.43362092959|4
Slack|387|3164.1834625323|1
PhpStorm|299|3867.36454849498|1
Firefox|366|3405.68852459016|1
iTerm2|10|2601.1|0
UserNotificationCenter|1|664.0|0
Tailscale|2|3256.5|0
Raycast|2|1539.5|0
QuickTime Player|15|3574.33333333333|0
Preview|1|2829.0|0
Finder|38|2407.44736842105|0
Dia|63|2062.65079365079|0
CoreServicesUIAgent|1|1962.0|0
Control Centre|12|4385.83333333333|0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
2.6G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
1.3G /Users/lukas/.screenpipe/data
1.3G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp -r ~/.screenpipe/data/data/2026-04-13 /Volumes/Test/screenpipe/data/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp -r ~/.screenpipe/data/data/2026-04-14 /Volumes/Test/screenpipe/data/
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp ~/.screenpipe/db.sqlite /Volumes/Test/screenpipe/db.sqlite
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ cp ~/.screenpipe/db.sqlite /Volumes/Test/screenpipe/db.sqlite
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
2.7G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
1.3G /Users/lukas/.screenpipe/data
1.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
7.0M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
60K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
name,
pgsize * pageno / 1024 / 1024 as size_mb
FROM dbstat
WHERE aggregate = TRUE
ORDER BY pgsize * pageno DESC;"
ocr_text|64681806
frames|47636741
elements|9058218
frames_fts_content|2282176
idx_elements_frame_source_role|270725
idx_elements_source_role_text|264067
elements_fts_data|166311
frames_fts_data|156816
idx_elements_frame_source|136761
idx_elements_source|86289
idx_elements_frame_id|55048
elements_fts_docsize|50120
idx_elements_parent_id|39775
ui_events|4996
idx_ui_events_session_id|438
idx_ui_events_timestamp|353
idx_frames_timestamp_device|315
idx_frames_timestamp|197
ui_events_fts_data|159
idx_ui_events_event_type|35
idx_ui_events_app_name|33
ui_events_fts_docsize|26
frames_fts_docsize|19
idx_ui_events_frame_id|14
idx_ui_events_sync_id|14
idx_ui_events_synced_at|14
idx_ui_events_unsynced|14
idx_frames_video_chunk_id|12
idx_ocr_text_frame_app_window|10
idx_ocr_text_length|7
idx_ocr_text_frame_id|7
idx_frames_elements_ref_frame_id|3
frames_fts_idx|2
elements_fts_idx|1
video_chunks|0
sqlite_schema|0
idx_frames_snapshot_path|0
_sqlx_migrations|0
audio_chunks|0
speakers|0
speaker_embeddings|0
idx_video_chunks_device_name_id|0
idx_video_chunks_device_name|0
sqlite_autoindex__sqlx_migrations_1|0
sqlite_sequence|0
idx_audio_chunks_timestamp|0
tags|0
sqlite_autoindex_tags_1|0
vision_tags|0
sqlite_autoindex_vision_tags_1|0
audio_tags|0
sqlite_autoindex_audio_tags_1|0
idx_vision_tags_vision_id|0
idx_vision_tags_tag_id|0
idx_audio_tags_audio_chunk_id|0
idx_audio_tags_tag_id|0
audio_transcriptions|0
idx_audio_transcriptions_audio_chunk_id_timestamp|0
idx_audio_transcriptions_audio_chunk_id|0
idx_audio_transcriptions_timestamp|0
idx_audio_transcriptions_transcription|0
idx_audio_transcriptions_length|0
ui_events_fts_idx|0
ui_events_fts_config|0
idx_audio_transcription_chunk_text|0
pipe_executions|0
idx_pipe_exec_name_status|0
idx_pipe_exec_running|0
idx_pipe_exec_name_time|0
pipe_scheduler_state|0
sqlite_autoindex_pipe_scheduler_state_1|0
meetings|0
idx_meetings_start|0
idx_meetings_end|0
elements_fts_config|0
audio_transcriptions_fts_data|0
audio_transcriptions_fts_idx|0
audio_transcriptions_fts_docsize|0
audio_transcriptions_fts_config|0
idx_video_chunks_cloud_blob_id|0
idx_frames_cloud_blob_id|0
memories|0
idx_memories_created_at|0
idx_memories_importance|0
idx_memories_source|0
memories_fts_data|0
memories_fts_idx|0
memories_fts_docsize|0
memories_fts_config|0
frames_fts_config|0
idx_memories_frame_id|0
idx_frames_sync_id|0
idx_ocr_text_sync_id|0
idx_audio_transcriptions_sync_id|0
secrets|0
sqlite_autoindex_secrets_1|0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
name,
(SELECT COUNT(*) FROM sqlite_master WHERE type='table' AND name=m.name) as exists
FROM sqlite_master
WHERE type='table'
ORDER BY name;"
Error: in prepare, near "exists": syntax error
ite_master WHERE type='table' AND name=m.name) as exists FROM sqlite_master W
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'video_chunks' as tbl, COUNT(*) as rows FROM video_chunks
UNION ALL SELECT 'audio_chunks', COUNT(*) FROM audio_chunks
UNION ALL SELECT 'frames', COUNT(*) FROM frames
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'audio_transcriptions', COUNT(*) FROM audio_transcriptions
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'memories', COUNT(*) FROM memories
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'pipe_executions', COUNT(*) FROM pipe_executions;"
video_chunks|428
audio_chunks|90
frames|20163
ocr_text|15011
audio_transcriptions|3
elements|1222571
memories|0
meetings|0
ui_events|26965
pipe_executions|0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
2.7G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
1.3G /Users/lukas/.screenpipe/data
1.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
17M /Users/lukas/.screenpipe/db.sqlite-wal
24K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
64K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
name,
SUM(pgsize) / 1024 / 1024 as size_mb
FROM dbstat
GROUP BY name
ORDER BY SUM(pgsize) DESC;
"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-93-249:~ (-zsh)
Close Tab
-zsh
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Unable to access screenpipe activity data (claude)
Close Tab
-zsh
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
Last login: Thu Apr 16 15:48:11 on ttys009
Poetry Last login: Thu Apr 16 15:48:11 on ttys009
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
Poetry could not find a pyproject.toml file in /Users/lukas or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;"
Error: in prepare, no such column: created_at
ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;"
Error: in prepare, no such column: created_at
ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;"
Error: in prepare, no such column: created_at
ari%' OR window_name LIKE '%Boosteroid%' ORDER BY created_at DESC LIMIT 20;
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' ORDER BY timestamp DESC LIMIT 20;"
Error: in prepare, no such column: timestamp
ari%' OR window_name LIKE '%Boosteroid%' ORDER BY timestamp DESC LIMIT 20;
error here ---^
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite ".schema ocr_text"
CREATE TABLE IF NOT EXISTS "ocr_text" (
frame_id INTEGER NOT NULL,
text TEXT NOT NULL,
text_json TEXT,
app_name TEXT NOT NULL DEFAULT '',
ocr_engine TEXT NOT NULL DEFAULT 'unknown'
, window_name TEXT, focused BOOLEAN DEFAULT FALSE, text_length INTEGER, sync_id TEXT, synced_at DATETIME);
CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id);
CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name);
CREATE INDEX idx_ocr_text_length ON ocr_text (text_length);
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' LIMIT 20;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name, window_name FROM ocr_text WHERE app_name LIKE '%Safari%' OR window_name LIKE '%Boosteroid%' LIMIT 20;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name, window_name FROM ocr_text WHERE window_name LIKE '%Boosteroid%' OR window_name LIKE '%boosteroid%' OR app_name LIKE '%Boosteroid%' OR app_name LIKE '%Chrome%' OR app_name LIKE '%Firefox%' OR app_name LIKE '%Arc%' OR app_name LIKE '%Brave%' OR app_name LIKE '%Vivaldi%' LIMIT 50;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name FROM ocr_text LIMIT 50;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-status
zsh: command not found: st-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ st-status
zsh: command not found: st-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status
{
"status": "healthy",
"frame_status": "ok",
"audio_status": "disabled",
"last_frame": "2026-04-16T16:37:14+03:00",
"uptime": 2866.983892584,
"fps": 0.[CREDIT_CARD],
"frames": 1762
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sp-status
{
"status": "healthy",
"frame_status": "ok",
"audio_status": "disabled",
"last_frame": "2026-04-16T16:37:44+03:00",
"uptime": 2894.494524792,
"fps": 0.612196701297038,
"frames": 1772
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name FROM ocr_text LIMIT 50;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT DISTINCT app_name, window_name FROM ocr_text WHERE window_name LIKE '%Boosteroid%' OR window_name LIKE '%boosteroid%' OR app_name LIKE '%Boosteroid%' OR app_name LIKE '%Chrome%' OR app_name LIKE '%Firefox%' OR app_name LIKE '%Arc%' OR app_name LIKE '%Brave%' OR app_name LIKE '%Vivaldi%' LIMIT 50;"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ pgrep -la screenpipe
10874 screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls -lh ~/.screenpipe/db.sqlite
# Check if there are other DB files
find ~ -name "db.sqlite" 2>/dev/null
-rw-r--r-- 1 lukas staff 2.6G 16 Apr 16:36 /Users/lukas/.screenpipe/db.sqlite
zsh: command not found: #
/Users/lukas/.screenpipe/db.sqlite
^C
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ ls -lh ~/.screenpipe/db.sqlite
-rw-r--r-- 1 lukas staff 2.6G 16 Apr 16:38 /Users/lukas/.screenpipe/db.sqlite
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ find ~ -name "db.sqlite" 2>/dev/null
/Users/lukas/.screenpipe/db.sqlite
^C
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ du -sh ~/.screenpipe/db.sqlite
2.6G /Users/lukas/.screenpipe/db.sqlite
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames;"
39430
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM ocr_text;"
31879
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~ $ sqlite3 ~/.screenpipe/db.sqlite "SELECT name FROM sqlite_master WHERE type='table';" | while read t; do echo -n "$t: "; sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM $t;"; done
_sqlx_migrations: 74
video_chunks: 795
sqlite_sequence: 9
audio_chunks: 90
ocr_text: 31881
tags: 0
vision_tags: 0
audio_tags: 0
speakers: 3
speaker_embeddings: 3
audio_transcriptions: 3
ui_events: 47933
ui_events_fts: 47933
ui_events_fts_data: 446
ui_events_fts_idx: 136
ui_events_fts_docsize: 47933
ui_events_fts_config: 1
pipe_executions: 0
pipe_scheduler_state: 0
frames: 39447
meetings: 2
elements: 2543482
elements_fts:
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
sqlite3
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screen lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe
lukas 10874 15.7 4.1 412962384 689376 s009 SN 3:49pm 32:48.19 /Users/lukas/.npm/_npx/10835/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio
lukas 18357 0.9 0.0 410733264 1488 s010 S+ 4:53pm 0:00.00 grep screenpipe
lukas 10835 0.0 0.2 411427744 30240 s009 SN 3:49pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ /Users/lukas/.npm/_npx/10835/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --help
increased file descriptor limit from 256 to 8192 (hard limit: 9223372036854775807)
Start recording screen, audio, and serve the API
Usage: screenpipe record [OPTIONS]
Options:
-d, --audio-chunk-duration <AUDIO_CHUNK_DURATION>
Audio chunk duration in seconds
[default: 30]
-p, --port <PORT>
Port to run the server on
[default: 3030]
--disable-audio
Disable audio recording
-i, --audio-device <AUDIO_DEVICE>
Audio devices to use (can be specified multiple times)
--use-system-default-audio
Follow system default audio devices
--data-dir <DATA_DIR>
Data directory. Default to $HOME/.screenpipe
--debug
Enable debug logging for screenpipe modules
-a, --audio-transcription-engine <AUDIO_TRANSCRIPTION_ENGINE>
Audio transcription engine to use
Possible values:
- deepgram
- whisper-tiny
- whisper-tiny-quantized
- whisper-large
- whisper-large-quantized
- whisper-large-v3-turbo
- whisper-large-v3-turbo-quantized
- openai-compatible
- qwen3-asr
- parakeet
- disabled: Disable transcription (audio capture only, no speech-to-text)
[default: parakeet]
-m, --monitor-id <MONITOR_ID>
Monitor IDs to use
--use-all-monitors
Automatically record all monitors
-l, --language <LANGUAGE>
Languages for OCR/transcription
[possible values: english, chinese, german, spanish, russian, korean, french, japanese, portuguese, turkish, polish, catalan, dutch, arabic, swedish, italian, indonesian, hindi, vietnamese, finnish, hebrew, ukrainian, greek, malay, czech, romanian, danish, hungarian, norwegian, thai, urdu, croatian, bulgarian, lithuanian, latin, malayalam, welsh, slovak, persian, latvian, bengali, serbian, azerbaijani, slovenian, estonian, macedonian, nepali, mongolian, bosnian, kazakh, albanian, swahili, galician, marathi, punjabi, sinhala, khmer, afrikaans, belarusian, gujarati, amharic, yiddish, lao, uzbek, faroese, pashto, maltese, sanskrit, luxembourgish, myanmar, tibetan, tagalog, assamese, tatar, hausa, javanese]
--use-pii-removal
Enable PII removal
--filter-music
Filter music-dominant audio before transcription (reduces Spotify/YouTube music noise)
--disable-vision
Disable vision recording
--ignored-windows <IGNORED_WINDOWS>
Windows to ignore (by title, uses contains matching)
--included-windows <INCLUDED_WINDOWS>
Windows to include (by title, uses contains matching)
--ignored-urls <IGNORED_URLS>
URLs to ignore for browser privacy filtering
--deepgram-api-key <DEEPGRAM_API_KEY>
Deepgram API Key for audio transcription
--transcription-mode <TRANSCRIPTION_MODE>
Audio transcription scheduling mode: batch (default, longer chunks for quality) or realtime
Possible values:
- realtime: Transcribe immediately as audio is captured
- batch: Accumulate longer audio batches for better transcription quality (default)
[default: batch]
--disable-telemetry
Disable telemetry
--video-quality <VIDEO_QUALITY>
Video quality preset: low, balanced, high, max
[default: balanced]
--enable-sync
Enable cloud sync
--sync-token <SYNC_TOKEN>
UW PICO 5.09 New Buffer
[ Read 18 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
API token for cloud sync
[env: SCREENPIPE_SYNC_TOKEN=]
--sync-password <SYNC_PASSWORD>
Password for encrypting synced data
[env: SCREENPIPE_SYNC_PASSWORD=[PASSWORD]
--sync-interval-secs <SYNC_INTERVAL_SECS>
Interval between sync cycles in seconds
[default: 300]
--sync-machine-id <SYNC_MACHINE_ID>
Override the machine ID for this device
--pause-on-drm-content
Pause screen and audio capture when DRM content (Netflix, Disney+, etc.) is detected
--api-auth
Require authentication for remote API access. When enabled, non-localhost requests must include Authorization: Bearer <SCREENPIPE_API_KEY>. Localhost requests are always allowed
--encrypt-secrets
Encrypt secrets (API keys, OAuth tokens) at rest using the OS keychain. Creates a keychain key if one doesn't exist. Without this flag, the CLI will use an existing key (created by the desktop app) but won't create one
--retention-days <RETENTION_DAYS>
Local data retention in days. Old screen/audio data is auto-deleted after this period. Set to 0 to disable retention (keep data forever)
[default: 14]
-h, --help
Print help (see a summary with '-h')
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ npx screenpipe@latest record --disable-audio --ignored-apps "Boosteroid"
error: unexpected argument '--ignored-apps' found
tip: a similar argument exists: '--ignored-urls'
Usage: screenpipe record --disable-audio --ignored-urls <IGNORED_URLS>
For more information, try '--help'.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.screenpipe/config.json
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-start
sp-start='npx screenpipe@latest record --disable-audio &'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sql
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias
addssh='ssh-add ~/.ssh/*'
app='cd ~/jiminny/app'
cnt='docker exec -ti $(docker ps | grep worker | awk '\''{print $1}'\'') /bin/bash -c "cd /home/jiminny && bash"'
co='git checkout'
cov='./vendor/bin/phpunit tests/Unit --coverage-html=build/coverage'
csfix='make cs-fix'
dev='docker exec -ti $(docker ps -q --filter "name=docker_lamp_1") /bin/bash'
eu='ssh lukas@jiminny-eu-bastion -D [IP_ADDRESS]:7073 -L 7532:db:3306'
eues='ssh ubuntu@jiminny-eu-ecs1 -L 7960:vpc-activities7-e7pfbl7wojjjnvp7olfpudrgke.eu-west-1.es.amazonaws.com:80'
ext='nvm use 20 && cd ~/jiminny/extension-app && yarn build:dev && yarn preview'
fe='yarn && nvm use 20 && cd ~/jiminny/app/front-end && yarn build:watch'
fe3='cd ~/jiminny/app/front-end-vue3 && yarn build:watch:production'
gbr='git branch --sort=-committerdate'
gcb='git branch --show-current | pbcopy'
gs='git status'
hhh=history
hhs='history 0 | grep '
install_nano='apt-get update & apt-get install nano'
kar='cp -f ~/DEV/settings/goku-karabiner-settings/karabiner.edn ~/.config/karabiner.edn && goku'
ll='ls -la --color=tty'
nas='ssh Adm1n@[IP_ADDRESS] -p22'
poetryshell='eval ""'
prod='ssh lukas@jiminny-prod-bastion -D [IP_ADDRESS]:7072 -L 7632:db:3306'
prodes='ssh ubuntu@jiminny-prod-ecs1 -L 7970:vpc-activities7-3o2zlrelmga5qicf2yxxwtx6bi.us-east-2.es.amazonaws.com:80'
prophet='cd ~/jiminny/app'
prophetdown='aws-vault exec staging -- bash -c "env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml down"'
prophetup='aws-vault exec staging -- bash -c "env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build"'
qa='ssh lukas@jiminny-qa-bastion -D [IP_ADDRESS]:7074 -L 7432:db:3306'
qaes='ssh ubuntu@jiminny-qa-ecs1 -L 7950:vpc-activities7-s5zchrs4xqcnav3rjzmxgxvfvq.us-east-2.es.amazonaws.com:80'
qai='ssh lukas@jiminny-qai-bastion -D [IP_ADDRESS]:7075 -L 7777:jiminny-db-qai.c3uemcm84st0.us-east-2.rds.amazonaws.com:3306'
rmbc='rm -rf bootstrap/cache/*.php'
run-help=man
sp-start='npx screenpipe@latest record --disable-audio &'
sp-status='curl -s [URL_WITH_CREDENTIALS] -D [IP_ADDRESS]:7071 -L 7732:db:3306'
stges='ssh ubuntu@jiminny-stage-ecs1 -L 7980:vpc-activities7-tgeodjeaugnaiigqgdcjjkrrj4.us-east-2.es.amazonaws.com:80'
veu='ssh jiminny-eu-ecs1'
veu10='ssh jiminny-eu-ecs10'
veu11='ssh jiminny-eu-ecs11'
veu12='ssh jiminny-eu-ecs12'
veu2='ssh jiminny-eu-ecs2'
veu3='ssh jiminny-eu-ecs3'
veu4='ssh jiminny-eu-ecs4'
veu5='ssh jiminny-eu-ecs5'
veu6='ssh jiminny-eu-ecs6'
veu7='ssh jiminny-eu-ecs7'
veu8='ssh jiminny-eu-ecs8'
veu9='ssh jiminny-eu-ecs9'
vprod='ssh jiminny-prod-ecs1'
vprod10='ssh jiminny-prod-ecs10'
vprod11='ssh jiminny-prod-ecs11'
vprod12='ssh jiminny-prod-ecs12'
vprod2='ssh jiminny-prod-ecs2'
vprod3='ssh jiminny-prod-ecs3'
vprod4='ssh jiminny-prod-ecs4'
vprod5='ssh jiminny-prod-ecs5'
vprod6='ssh jiminny-prod-ecs6'
vprod7='ssh jiminny-prod-ecs7'
vprod8='ssh jiminny-prod-ecs8'
vprod9='ssh jiminny-prod-ecs9'
vqa='ssh jiminny-qa-ecs1'
vqa2='ssh jiminny-qa-ecs2'
vqai='ssh jiminny-qai-ecs1'
vqai2='ssh jiminny-qai-ecs2'
vstage='ssh ec2-user@jiminny-subenv-worker-app0'
vstg='ssh jiminny-stage-ecs1'
vstg2='ssh ubuntu@jiminny-stage-ecs2'
which-command=whence
work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'
xd='make docker-xdebug-disable'
xe='make docker-xdebug-enable'
zp='nano ~/.zprofile'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias
addssh='ssh-add ~/.ssh/*'
app='cd ~/jiminny/app'
cnt='docker exec -ti $(docker ps | grep worker | awk '\''{print $1}'\'') /bin/bash -c "cd /home/jiminny && bash"'
co='git checkout'
cov='./vendor/bin/phpunit tests/Unit --coverage-html=build/coverage'
csfix='make cs-fix'
dev='docker exec -ti $(docker ps -q --filter "name=docker_lamp_1") /bin/bash'
eu='ssh lukas@jiminny-eu-bastion -D [IP_ADDRESS]:7073 -L 7532:db:3306'
eues='ssh ubuntu@jiminny-eu-ecs1 -L 7960:vpc-activities7-e7pfbl7wojjjnvp7olfpudrgke.eu-west-1.es.amazonaws.com:80'
ext='nvm use 20 && cd ~/jiminny/extension-app && yarn build:dev && yarn preview'
fe='yarn && nvm use 20 && cd ~/jiminny/app/front-end && yarn build:watch'
fe3='cd ~/jiminny/app/front-end-vue3 && yarn build:watch:production'
gbr='git branch --sort=-committerdate'
gcb='git branch --show-current | pbcopy'
gs='git status'
hhh=history
hhs='history 0 | grep '
install_nano='apt-get update & apt-get install nano'
kar='cp -f ~/DEV/settings/goku-karabiner-settings/karabiner.edn ~/.config/karabiner.edn && goku'
ll='ls -la --color=tty'
nas='ssh Adm1n@[IP_ADDRESS] -p22'
poetryshell='eval ""'
prod='ssh lukas@jiminny-prod-bastion -D [IP_ADDRESS]:7072 -L 7632:db:3306'
prodes='ssh ubuntu@jiminny-prod-ecs1 -L 7970:vpc-activities7-3o2zlrelmga5qicf2yxxwtx6bi.us-east-2.es.amazonaws.com:80'
prophet='cd ~/jiminny/app'
prophetdown='aws-vault exec staging -- bash -c "env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml down"'
prophetup='aws-vault exec staging -- bash -c "env | grep AWS_ > aws-creds.env && docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build"'
qa='ssh lukas@jiminny-qa-bastion -D [IP_ADDRESS]:7074 -L 7432:db:3306'
qaes='ssh ubuntu@jiminny-qa-ecs1 -L 7950:vpc-activities7-s5zchrs4xqcnav3rjzmxgxvfvq.us-east-2.es.amazonaws.com:80'
qai='ssh lukas@jiminny-qai-bastion -D [IP_ADDRESS]:7075 -L 7777:jiminny-db-qai.c3uemcm84st0.us-east-2.rds.amazonaws.com:3306'
rmbc='rm -rf bootstrap/cache/*.php'
UW PICO 5.09 New Buffer
[ New file ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
run-help=man
UW PICO 5.09 New Buffer
[ Read 135 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
sp-start='npx screenpipe@latest record --disable-audio &'
sp-status='curl -s [URL_WITH_CREDENTIALS] -D [IP_ADDRESS]:7071 -L 7732:db:3306'
stges='ssh ubuntu@jiminny-stage-ecs1 -L 7980:vpc-activities7-tgeodjeaugnaiigqgdcjjkrrj4.us-east-2.es.amazonaws.com:80'
veu='ssh jiminny-eu-ecs1'
veu10='ssh jiminny-eu-ecs10'
veu11='ssh jiminny-eu-ecs11'
veu12='ssh jiminny-eu-ecs12'
veu2='ssh jiminny-eu-ecs2'
veu3='ssh jiminny-eu-ecs3'
veu4='ssh jiminny-eu-ecs4'
veu5='ssh jiminny-eu-ecs5'
veu6='ssh jiminny-eu-ecs6'
veu7='ssh jiminny-eu-ecs7'
veu8='ssh jiminny-eu-ecs8'
veu9='ssh jiminny-eu-ecs9'
vprod='ssh jiminny-prod-ecs1'
vprod10='ssh jiminny-prod-ecs10'
vprod11='ssh jiminny-prod-ecs11'
vprod12='ssh jiminny-prod-ecs12'
vprod2='ssh jiminny-prod-ecs2'
vprod3='ssh jiminny-prod-ecs3'
vprod4='ssh jiminny-prod-ecs4'
vprod5='ssh jiminny-prod-ecs5'
vprod6='ssh jiminny-prod-ecs6'
vprod7='ssh jiminny-prod-ecs7'
vprod8='ssh jiminny-prod-ecs8'
vprod9='ssh jiminny-prod-ecs9'
vqa='ssh jiminny-qa-ecs1'
vqa2='ssh jiminny-qa-ecs2'
vqai='ssh jiminny-qai-ecs1'
vqai2='ssh jiminny-qai-ecs2'
vstage='ssh ec2-user@jiminny-subenv-worker-app0'
vstg='ssh jiminny-stage-ecs1'
vstg2='ssh ubuntu@jiminny-stage-ecs2'
which-command=whence
work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'
xd='make docker-xdebug-disable'
xe='make docker-xdebug-enable'
zp='nano ~/.zprofile'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile
Poetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep
lukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid
lukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
work='cd ~/jiminny/infrastructure/dev/docker & work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'
xd='make docker-xdebug-disable'
xe='make docker-xdebug-enable'
zp='nano ~/.zprofile'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile
Poetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep
lukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid
lukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:20:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T14:20:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T10:20:45';"
1720
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name FROM sqlite_master WHERE type='table'
ORDER BY name;" | while read t; do
count=$(sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM $t;")
echo "$t: $count"
done
_sqlx_migrations: 74
audio_chunks: 90
audio_tags: 0
audio_transcriptions: 3
audio_transcriptions_fts: 3
audio_transcriptions_fts_config: 1
audio_transcriptions_fts_data: 5
audio_transcriptions_fts_docsize: 3
audio_transcriptions_fts_idx: 3
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
work='cd ~/jiminny/infrastructure/dev/docker & work='cd ~/jiminny/infrastructure/dev/docker && docker compose up'
xd='make docker-xdebug-disable'
xe='make docker-xdebug-enable'
zp='nano ~/.zprofile'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano ~/.zprofile
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ source ~/.zprofile
Poetry could not find a pyproject.toml file in /Users/lukas/.screenpipe or its parents
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*), MIN(timestamp), MAX(timestamp) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= datetime('now', '-1 hour');"
1722|2026-04-16T07:04:01.107353+00:00|2026-04-16T13:36:06.286533+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-2 hours');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ps aux | grep screenpipe | grep -v grep
lukas 21754 6.1 3.7 412825680 628320 s009 S+ 5:21pm 11:48.74 /Users/lukas/.npm/_npx/21722/lib/node_modules/screenpipe/node_modules/@screenpipe/cli-darwin-arm64/bin/screenpipe record --disable-audio --ignored-windows Boosteroid
lukas 21722 0.0 0.1 411289504 21712 s009 S+ 5:21pm 0:00.08 node /Users/lukas/.nvm/versions/node/v14.15.4/bin/npx screenpipe@latest record --disable-audio --ignored-windows Boosteroid
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT MIN(timestamp) FROM frames WHERE timestamp >= datetime('now', '-20 minutes');"
2026-04-16T06:12:46.590663+00:00
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:21:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T17:20:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T14:20:45';"
0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE app_name = 'Boosteroid' AND timestamp >= '2026-04-16T10:20:45';"
1720
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ alias sp-status
sp-status='curl -s [URL_WITH_CREDENTIALS] ~/.screenpipe $ zp
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name FROM sqlite_master WHERE type='table'
ORDER BY name;" | while read t; do
count=$(sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM $t;")
echo "$t: $count"
done
_sqlx_migrations: 74
audio_chunks: 90
audio_tags: 0
audio_transcriptions: 3
audio_transcriptions_fts: 3
audio_transcriptions_fts_config: 1
audio_transcriptions_fts_data: 5
audio_transcriptions_fts_docsize: 3
audio_transcriptions_fts_idx: 3
elements: 2583644
elements_fts: 2583644
elements_fts_config: 1
elements_fts_data: 12471
elements_fts_docsize: 2575943
elements_fts_idx: 5265
frames: 40262
frames_fts: 40240
frames_fts_config: 1
frames_fts_content: 40240
frames_fts_data: 11680
frames_fts_docsize: 40240
frames_fts_idx: 7447
meetings: 2
memories: 0
memories_fts: 0
memories_fts_config: 1
memories_fts_data: 2
memories_fts_docsize: 0
memories_fts_idx: 0
ocr_text: 32365
pipe_executions: 0
pipe_scheduler_state: 0
secrets: 1
speaker_embeddings: 3
speakers: 3
sqlite_sequence: 9
tags: 0
ui_events: 50996
ui_events_fts: 50996
ui_events_fts_config: 1
ui_events_fts_data: 468
ui_events_fts_docsize: 50996
ui_events_fts_idx: 154
video_chunks: 829
vision_tags: 0
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM frames WHERE timestamp >= datetime('now', '-1 day');"
sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM ui_events WHERE timestamp >= datetime('now', '-1 day');"
sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE timestamp >= datetime('now', '-1 day'));"
21496
24765
1446831
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
6.7G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.0G /Users/lukas/.screenpipe/data
2.7G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite ".schema meetings"
CREATE TABLE meetings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
meeting_start TEXT NOT NULL,
meeting_end TEXT,
meeting_app TEXT NOT NULL,
title TEXT,
attendees TEXT,
detection_source TEXT NOT NULL DEFAULT 'app',
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
, note TEXT);
CREATE INDEX idx_meetings_start ON meetings(meeting_start);
CREATE INDEX idx_meetings_end ON meetings(meeting_end);
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT * FROM meetings LIMIT 5;"
1|2026-04-16T07:33:44.830Z|2026-04-16T07:44:33.417Z|Slack|||ui_scan|2026-04-16T07:33:44.830Z|## typed during meeting
ststg
vstg
docker ps
--report-id
--result-id
```
```
2|2026-04-16T10:50:05.968Z|2026-04-16T10:59:54.482Z|Slack|||ui_scan|2026-04-16T10:50:05.968Z|
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
idx_elements_source_role_text|elements|CREATE INDE idx_elements_source_role_text|elements|CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL
idx_elements_frame_source_role|elements|CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL
idx_frames_timestamp|frames|CREATE INDEX idx_frames_timestamp ON frames(timestamp)
idx_frames_video_chunk_id|frames|CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id)
idx_frames_timestamp_device|frames|CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name)
idx_frames_snapshot_path|frames|CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL
idx_frames_cloud_blob_id|frames|CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL
idx_frames_sync_id|frames|CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL
idx_frames_elements_ref_frame_id|frames|CREATE INDEX idx_frames_elements_ref_frame_id
ON frames(elements_ref_frame_id)
WHERE elements_ref_frame_id IS NOT NULL
idx_meetings_start|meetings|CREATE INDEX idx_meetings_start ON meetings(meeting_start)
idx_meetings_end|meetings|CREATE INDEX idx_meetings_end ON meetings(meeting_end)
idx_memories_created_at|memories|CREATE INDEX idx_memories_created_at ON memories(created_at)
idx_memories_importance|memories|CREATE INDEX idx_memories_importance ON memories(importance DESC)
idx_memories_source|memories|CREATE INDEX idx_memories_source ON memories(source)
idx_memories_frame_id|memories|CREATE INDEX idx_memories_frame_id ON memories(frame_id)
idx_ocr_text_frame_id|ocr_text|CREATE INDEX idx_ocr_text_frame_id ON ocr_text(frame_id)
idx_ocr_text_frame_app_window|ocr_text|CREATE INDEX idx_ocr_text_frame_app_window ON ocr_text(frame_id, app_name, window_name)
idx_ocr_text_length|ocr_text|CREATE INDEX idx_ocr_text_length ON ocr_text (text_length)
idx_ocr_text_sync_id|ocr_text|CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL
idx_pipe_exec_name_status|pipe_executions|CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status)
idx_pipe_exec_running|pipe_executions|CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running'
idx_pipe_exec_name_time|pipe_executions|CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC)
idx_ui_events_timestamp|ui_events|CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp)
idx_ui_events_event_type|ui_events|CREATE INDEX idx_ui_events_event_type ON ui_events(event_type)
idx_ui_events_app_name|ui_events|CREATE INDEX idx_ui_events_app_name ON ui_events(app_name)
idx_ui_events_session_id|ui_events|CREATE INDEX idx_ui_events_session_id ON ui_events(session_id)
idx_ui_events_frame_id|ui_events|CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id)
idx_ui_events_sync_id|ui_events|CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id)
idx_ui_events_synced_at|ui_events|CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at)
idx_ui_events_unsynced|ui_events|CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL
idx_video_chunks_device_name|video_chunks|CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name)
idx_video_chunks_device_name_id|video_chunks|CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC)
idx_video_chunks_cloud_blob_id|video_chunks|CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL
idx_vision_tags_vision_id|vision_tags|CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id)
idx_vision_tags_tag_id|vision_tags|CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'elements_fts' as name, COUNT(*) as rows FROM elements_fts
UNION ALL SELECT 'frames_fts', COUNT(*) FROM frames_fts
UNION ALL SELECT 'ui_events_fts', COUNT(*) FROM ui_events_fts
UNION ALL SELECT 'audio_transcriptions_fts', COUNT(*) FROM audio_transcriptions_fts;"
elements_fts|2595462
frames_fts|40394
ui_events_fts|51394
audio_transcriptions_fts|3
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements_fts_data|49417125
frames_fts_data|46211048
ui_events_fts_data|1661147
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT name, SUM(payload) as bytes
FROM dbstat
WHERE name IN ('frames', 'ui_events', 'elements', 'elements_fts_data','frames_fts_data','ui_events_fts_data')
GROUP BY name;"
elements|334884969
elements_fts_data|49472096
frames|689381789
frames_fts_data|46270876
ui_events|8354906
ui_events_fts_data|1663427
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT sql FROM sqlite_master WHERE type='table' AND name IN ('elements_fts','frames_fts','ui_events_fts','memories_fts') ORDER BY name;"
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
id UNINDEXED,
tokenize='unicode61'
UW PICO 5.09 New Buffer
[ Read 1 line ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
)
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ls
config.json db.sqlite-shm screenpipe.2026-04-09.0.log screenpipe.2026-04-13.0.log screenpipe.2026-04-16.0.log
data db.sqlite-wal screenpipe.2026-04-11.0.log screenpipe.2026-04-14.0.log
db.sqlite pipes screenpipe.2026-04-12.0.log screenpipe.2026-04-15.0.log
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ touch screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5632584
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 18:54 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2875498496 16 Apr 19:16 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7004032 16 Apr 19:19 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 177594 16 Apr 19:19 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 0 16 Apr 19:19 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5637600
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2877014016 16 Apr 19:21 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 7807432 16 Apr 19:25 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 178896 16 Apr 19:24 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ screenpipe_sync.sh
zsh: command not found: screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo $HOME
/Users/lukas
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll /Users/lukas/.screenpipe
total 5646848
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2880700416 16 Apr 19:31 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 8602592 16 Apr 19:36 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
UW PICO 5.09 New Buffer
[ Read 25 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text ^T To Spell
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 180718 16 Apr 19:34 screenpipe.2026-04-16.0.log
-rw-r--r-- 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
zsh: permission denied: /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ chmod +x ~/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ll
total 5640560
drwxr-xr-x 17 lukas staff 544 16 Apr 19:19 .
drwx------+ 91 lukas staff 2912 16 Apr 19:24 ..
-rw-r--r--@ 1 lukas staff 8196 16 Apr 17:07 .DS_Store
-rw-r--r-- 1 lukas staff 358 16 Apr 16:49 config.json
drwxr-xr-x 6 lukas staff 192 15 Apr 14:53 data
-rw-r--r-- 1 lukas staff 2882723840 16 Apr 19:36 db.sqlite
-rw-r--r-- 1 lukas staff 65536 16 Apr 18:33 db.sqlite-shm
-rw-r--r-- 1 lukas staff 3930512 16 Apr 19:37 db.sqlite-wal
drwxr-xr-x 9 lukas staff 288 15 Apr 14:53 pipes
-rw-r--r-- 1 lukas staff 132736 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 95425 11 Apr 23:14 screenpipe.2026-04-11.0.log
-rw-r--r-- 1 lukas staff 72332 12 Apr 23:55 screenpipe.2026-04-12.0.log
-rw-r--r-- 1 lukas staff 71555 13 Apr 19:50 screenpipe.2026-04-13.0.log
-rw-r--r-- 1 lukas staff 162389 14 Apr 19:31 screenpipe.2026-04-14.0.log
-rw-r--r-- 1 lukas staff 175763 15 Apr 18:55 screenpipe.2026-04-15.0.log
-rw-r--r-- 1 lukas staff 181112 16 Apr 19:36 screenpipe.2026-04-16.0.log
-rwxr-xr-x 1 lukas staff 666 16 Apr 19:20 screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
ERROR: NAS not mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ nano screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ ~/.screenpipe/screenpipe_sync.sh
OK: NAS mounted
OK: Source DB exists
2.7G /Users/lukas/.screenpipe/db.sqlite
INFO: archive.db does not exist yet - will be created on first sync
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE=$(date -v-1d +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Yesterday: $DATE"
Yesterday: 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE_TODAY=$(date +%Y-%m-%d)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Today: $DATE_TODAY"
Today: 2026-04-16
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE'"
1 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' elements for ' || '$DATE' FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '$DATE');"
886876 elements for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' ui_events for ' || '$DATE' FROM ui_events WHERE date(timestamp) = '$DATE';"
14453 ui_events for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' meetings for ' || '$DATE' FROM meetings WHERE date(meeting_start) = '$DATE';"
0 meetings for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT COUNT(*) || ' frames for ' || '$DATE' FROM frames WHERE date(timestamp) = '$DATE';"
12874 frames for 2026-04-15
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ NAS_DB="/Volumes/Test/screenpipe/archive.db"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DB_SRC="$HOME/.screenpipe/db.sqlite"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ DATE="2026-04-15"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 1: creating archive.db and syncing frames..."
Stage 1: creating archive.db and syncing frames...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.frames AS SELECT * FROM main.frames WHERE 0;
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
screenpipe"
Close Tab
sqlite3
Close Tab
✳ Review screenpipe usage and Boosteroid integration (node)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
zsh: terminated sqlite3 "$DB_SRC" <<<""
sqlite3 "$DB_SRC" <<<"" 1.36s user 5.25s system 1% cpu 9:57.77 total
video_chunks... sqlite3 "$DB_SRC" <<<"" 0.04s user 0.06s system 8% cpu 1.162 total
meetings... sqlite3 "$DB_SRC" <<<"" 0.00s user 0.01s system 1% cpu 0.454 total
Verification:
frames|12874
^CError: stepping, interrupted (9)
Program interrupted.
199M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
8.0G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.6G /Users/lukas/.screenpipe/data
3.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.7G /Users/lukas/.screenpipe/data
3.6G /Users/lukas/.screenpipe/db.sqlite
128K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl, SUM(payload) as bytes FROM dbstat WHERE name = 'frames'
UNION ALL SELECT 'elements', SUM(payload) FROM dbstat WHERE name = 'elements'
UNION ALL SELECT 'ui_events', SUM(payload) FROM dbstat WHERE name = 'ui_events'
UNION ALL SELECT 'ocr_text', SUM(payload) FROM dbstat WHERE name = 'ocr_text';"
frames|1004938379
elements|465966705
ui_events|9804622
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
zsh: terminated sqlite3 "$DB_SRC" <<<""
sqlite3 "$DB_SRC" <<<"" 1.36s user 5.25s system 1% cpu 9:57.77 total
video_chunks... sqlite3 "$DB_SRC" <<<"" 0.04s user 0.06s system 8% cpu 1.162 total
meetings... sqlite3 "$DB_SRC" <<<"" 0.00s user 0.01s system 1% cpu 0.454 total
Verification:
frames|12874
^CError: stepping, interrupted (9)
Program interrupted.
199M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
8.0G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.6G /Users/lukas/.screenpipe/data
3.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.7G /Users/lukas/.screenpipe/data
3.6G /Users/lukas/.screenpipe/db.sqlite
128K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl, SUM(payload) as bytes FROM dbstat WHERE name = 'frames'
UNION ALL SELECT 'elements', SUM(payload) FROM dbstat WHERE name = 'elements'
UNION ALL SELECT 'ui_events', SUM(payload) FROM dbstat WHERE name = 'ui_events'
UNION ALL SELECT 'ocr_text', SUM(payload) FROM dbstat WHERE name = 'ocr_text';"
frames|1004938379
elements|465966705
ui_events|9804622
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
zsh: terminated sqlite3 "$DB_SRC" <<<""
sqlite3 "$DB_SRC" <<<"" 1.36s user 5.25s system 1% cpu 9:57.77 total
video_chunks... sqlite3 "$DB_SRC" <<<"" 0.04s user 0.06s system 8% cpu 1.162 total
meetings... sqlite3 "$DB_SRC" <<<"" 0.00s user 0.01s system 1% cpu 0.454 total
Verification:
frames|12874
^CError: stepping, interrupted (9)
Program interrupted.
199M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
8.0G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.6G /Users/lukas/.screenpipe/data
3.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.7G /Users/lukas/.screenpipe/data
3.6G /Users/lukas/.screenpipe/db.sqlite
128K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl, SUM(payload) as bytes FROM dbstat WHERE name = 'frames'
UNION ALL SELECT 'elements', SUM(payload) FROM dbstat WHERE name = 'elements'
UNION ALL SELECT 'ui_events', SUM(payload) FROM dbstat WHERE name = 'ui_events'
UNION ALL SELECT 'ocr_text', SUM(payload) FROM dbstat WHERE name = 'ocr_text';"
frames|1004938379
elements|465966705
ui_events|9804622
ocr_text|1443084543
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
-- estimate yesterday's rows
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'
UNION ALL
SELECT 'elements',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))
FROM dbstat d, elements e
WHERE d.name = 'elements'
UNION ALL
SELECT 'ui_events',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')
FROM dbstat d, ui_events e
WHERE d.name = 'ui_events';"
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
zsh: terminated sqlite3 "$DB_SRC" <<<""
sqlite3 "$DB_SRC" <<<"" 1.36s user 5.25s system 1% cpu 9:57.77 total
video_chunks... sqlite3 "$DB_SRC" <<<"" 0.04s user 0.06s system 8% cpu 1.162 total
meetings... sqlite3 "$DB_SRC" <<<"" 0.00s user 0.01s system 1% cpu 0.454 total
Verification:
frames|12874
^CError: stepping, interrupted (9)
Program interrupted.
199M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
8.0G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.6G /Users/lukas/.screenpipe/data
3.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.7G /Users/lukas/.screenpipe/data
3.6G /Users/lukas/.screenpipe/db.sqlite
128K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl, SUM(payload) as bytes FROM dbstat WHERE name = 'frames'
UNION ALL SELECT 'elements', SUM(payload) FROM dbstat WHERE name = 'elements'
UNION ALL SELECT 'ui_events', SUM(payload) FROM dbstat WHERE name = 'ui_events'
UNION ALL SELECT 'ocr_text', SUM(payload) FROM dbstat WHERE name = 'ocr_text';"
frames|1004938379
elements|465966705
ui_events|9804622
ocr_text|1443084543
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
-- estimate yesterday's rows
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'
UNION ALL
SELECT 'elements',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))
FROM dbstat d, elements e
WHERE d.name = 'elements'
UNION ALL
SELECT 'ui_events',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')
FROM dbstat d, ui_events e
WHERE d.name = 'ui_events';"
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
zsh: terminated sqlite3 "$DB_SRC" <<<""
sqlite3 "$DB_SRC" <<<"" 1.36s user 5.25s system 1% cpu 9:57.77 total
video_chunks... sqlite3 "$DB_SRC" <<<"" 0.04s user 0.06s system 8% cpu 1.162 total
meetings... sqlite3 "$DB_SRC" <<<"" 0.00s user 0.01s system 1% cpu 0.454 total
Verification:
frames|12874
^CError: stepping, interrupted (9)
Program interrupted.
199M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
8.0G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.6G /Users/lukas/.screenpipe/data
3.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.7G /Users/lukas/.screenpipe/data
3.6G /Users/lukas/.screenpipe/db.sqlite
128K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl, SUM(payload) as bytes FROM dbstat WHERE name = 'frames'
UNION ALL SELECT 'elements', SUM(payload) FROM dbstat WHERE name = 'elements'
UNION ALL SELECT 'ui_events', SUM(payload) FROM dbstat WHERE name = 'ui_events'
UNION ALL SELECT 'ocr_text', SUM(payload) FROM dbstat WHERE name = 'ocr_text';"
frames|1004938379
elements|465966705
ui_events|9804622
ocr_text|1443084543
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
-- estimate yesterday's rows
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'
UNION ALL
SELECT 'elements',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))
FROM dbstat d, elements e
WHERE d.name = 'elements'
UNION ALL
SELECT 'ui_events',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')
FROM dbstat d, ui_events e
WHERE d.name = 'ui_events';"
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
zsh: terminated sqlite3 "$DB_SRC" <<<""
sqlite3 "$DB_SRC" <<<"" 1.36s user 5.25s system 1% cpu 9:57.77 total
video_chunks... sqlite3 "$DB_SRC" <<<"" 0.04s user 0.06s system 8% cpu 1.162 total
meetings... sqlite3 "$DB_SRC" <<<"" 0.00s user 0.01s system 1% cpu 0.454 total
Verification:
frames|12874
^CError: stepping, interrupted (9)
Program interrupted.
199M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
8.0G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.6G /Users/lukas/.screenpipe/data
3.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.7G /Users/lukas/.screenpipe/data
3.6G /Users/lukas/.screenpipe/db.sqlite
128K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl, SUM(payload) as bytes FROM dbstat WHERE name = 'frames'
UNION ALL SELECT 'elements', SUM(payload) FROM dbstat WHERE name = 'elements'
UNION ALL SELECT 'ui_events', SUM(payload) FROM dbstat WHERE name = 'ui_events'
UNION ALL SELECT 'ocr_text', SUM(payload) FROM dbstat WHERE name = 'ocr_text';"
frames|1004938379
elements|465966705
ui_events|9804622
ocr_text|1443084543
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
-- estimate yesterday's rows
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'
UNION ALL
SELECT 'elements',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))
FROM dbstat d, elements e
WHERE d.name = 'elements'
UNION ALL
SELECT 'ui_events',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')
FROM dbstat d, ui_events e
WHERE d.name = 'ui_events';"
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
zsh: terminated sqlite3 "$DB_SRC" <<<""
sqlite3 "$DB_SRC" <<<"" 1.36s user 5.25s system 1% cpu 9:57.77 total
video_chunks... sqlite3 "$DB_SRC" <<<"" 0.04s user 0.06s system 8% cpu 1.162 total
meetings... sqlite3 "$DB_SRC" <<<"" 0.00s user 0.01s system 1% cpu 0.454 total
Verification:
frames|12874
^CError: stepping, interrupted (9)
Program interrupted.
199M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
8.0G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.6G /Users/lukas/.screenpipe/data
3.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.7G /Users/lukas/.screenpipe/data
3.6G /Users/lukas/.screenpipe/db.sqlite
128K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl, SUM(payload) as bytes FROM dbstat WHERE name = 'frames'
UNION ALL SELECT 'elements', SUM(payload) FROM dbstat WHERE name = 'elements'
UNION ALL SELECT 'ui_events', SUM(payload) FROM dbstat WHERE name = 'ui_events'
UNION ALL SELECT 'ocr_text', SUM(payload) FROM dbstat WHERE name = 'ocr_text';"
frames|1004938379
elements|465966705
ui_events|9804622
ocr_text|1443084543
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
-- estimate yesterday's rows
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'
UNION ALL
SELECT 'elements',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))
FROM dbstat d, elements e
WHERE d.name = 'elements'
UNION ALL
SELECT 'ui_events',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')
FROM dbstat d, ui_events e
WHERE d.name = 'ui_events';"
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
zsh: terminated sqlite3 "$DB_SRC" <<<""
sqlite3 "$DB_SRC" <<<"" 1.36s user 5.25s system 1% cpu 9:57.77 total
video_chunks... sqlite3 "$DB_SRC" <<<"" 0.04s user 0.06s system 8% cpu 1.162 total
meetings... sqlite3 "$DB_SRC" <<<"" 0.00s user 0.01s system 1% cpu 0.454 total
Verification:
frames|12874
^CError: stepping, interrupted (9)
Program interrupted.
199M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
8.0G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.6G /Users/lukas/.screenpipe/data
3.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.7G /Users/lukas/.screenpipe/data
3.6G /Users/lukas/.screenpipe/db.sqlite
128K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl, SUM(payload) as bytes FROM dbstat WHERE name = 'frames'
UNION ALL SELECT 'elements', SUM(payload) FROM dbstat WHERE name = 'elements'
UNION ALL SELECT 'ui_events', SUM(payload) FROM dbstat WHERE name = 'ui_events'
UNION ALL SELECT 'ocr_text', SUM(payload) FROM dbstat WHERE name = 'ocr_text';"
frames|1004938379
elements|465966705
ui_events|9804622
ocr_text|1443084543
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
-- estimate yesterday's rows
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'
UNION ALL
SELECT 'elements',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))
FROM dbstat d, elements e
WHERE d.name = 'elements'
UNION ALL
SELECT 'ui_events',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')
FROM dbstat d, ui_events e
WHERE d.name = 'ui_events';"
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
zsh: terminated sqlite3 "$DB_SRC" <<<""
sqlite3 "$DB_SRC" <<<"" 1.36s user 5.25s system 1% cpu 9:57.77 total
video_chunks... sqlite3 "$DB_SRC" <<<"" 0.04s user 0.06s system 8% cpu 1.162 total
meetings... sqlite3 "$DB_SRC" <<<"" 0.00s user 0.01s system 1% cpu 0.454 total
Verification:
frames|12874
^CError: stepping, interrupted (9)
Program interrupted.
199M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
8.0G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.6G /Users/lukas/.screenpipe/data
3.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.7G /Users/lukas/.screenpipe/data
3.6G /Users/lukas/.screenpipe/db.sqlite
128K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl, SUM(payload) as bytes FROM dbstat WHERE name = 'frames'
UNION ALL SELECT 'elements', SUM(payload) FROM dbstat WHERE name = 'elements'
UNION ALL SELECT 'ui_events', SUM(payload) FROM dbstat WHERE name = 'ui_events'
UNION ALL SELECT 'ocr_text', SUM(payload) FROM dbstat WHERE name = 'ocr_text';"
frames|1004938379
elements|465966705
ui_events|9804622
ocr_text|1443084543
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
-- estimate yesterday's rows
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'
UNION ALL
SELECT 'elements',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))
FROM dbstat d, elements e
WHERE d.name = 'elements'
UNION ALL
SELECT 'ui_events',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')
FROM dbstat d, ui_events e
WHERE d.name = 'ui_events';"
20
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
zsh: terminated sqlite3 "$DB_SRC" <<<""
sqlite3 "$DB_SRC" <<<"" 1.36s user 5.25s system 1% cpu 9:57.77 total
video_chunks... sqlite3 "$DB_SRC" <<<"" 0.04s user 0.06s system 8% cpu 1.162 total
meetings... sqlite3 "$DB_SRC" <<<"" 0.00s user 0.01s system 1% cpu 0.454 total
Verification:
frames|12874
^CError: stepping, interrupted (9)
Program interrupted.
199M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
8.0G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.6G /Users/lukas/.screenpipe/data
3.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.7G /Users/lukas/.screenpipe/data
3.6G /Users/lukas/.screenpipe/db.sqlite
128K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl, SUM(payload) as bytes FROM dbstat WHERE name = 'frames'
UNION ALL SELECT 'elements', SUM(payload) FROM dbstat WHERE name = 'elements'
UNION ALL SELECT 'ui_events', SUM(payload) FROM dbstat WHERE name = 'ui_events'
UNION ALL SELECT 'ocr_text', SUM(payload) FROM dbstat WHERE name = 'ocr_text';"
frames|1004938379
elements|465966705
ui_events|9804622
ocr_text|1443084543
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
-- estimate yesterday's rows
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'
UNION ALL
SELECT 'elements',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))
FROM dbstat d, elements e
WHERE d.name = 'elements'
UNION ALL
SELECT 'ui_events',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')
FROM dbstat d, ui_events e
WHERE d.name = 'ui_events';"
20
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
zsh: terminated sqlite3 "$DB_SRC" <<<""
sqlite3 "$DB_SRC" <<<"" 1.36s user 5.25s system 1% cpu 9:57.77 total
video_chunks... sqlite3 "$DB_SRC" <<<"" 0.04s user 0.06s system 8% cpu 1.162 total
meetings... sqlite3 "$DB_SRC" <<<"" 0.00s user 0.01s system 1% cpu 0.454 total
Verification:
frames|12874
^CError: stepping, interrupted (9)
Program interrupted.
199M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
8.0G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.6G /Users/lukas/.screenpipe/data
3.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.7G /Users/lukas/.screenpipe/data
3.6G /Users/lukas/.screenpipe/db.sqlite
128K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl, SUM(payload) as bytes FROM dbstat WHERE name = 'frames'
UNION ALL SELECT 'elements', SUM(payload) FROM dbstat WHERE name = 'elements'
UNION ALL SELECT 'ui_events', SUM(payload) FROM dbstat WHERE name = 'ui_events'
UNION ALL SELECT 'ocr_text', SUM(payload) FROM dbstat WHERE name = 'ocr_text';"
frames|1004938379
elements|465966705
ui_events|9804622
ocr_text|1443084543
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
-- estimate yesterday's rows
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'
UNION ALL
SELECT 'elements',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))
FROM dbstat d, elements e
WHERE d.name = 'elements'
UNION ALL
SELECT 'ui_events',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')
FROM dbstat d, ui_events e
WHERE d.name = 'ui_events';"
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|
|
CREATE INDEX IF NOT EXISTS nas.idx_frames_timestam CREATE INDEX IF NOT EXISTS nas.idx_frames_timestamp ON frames(timestamp);
CREATE INDEX IF NOT EXISTS nas.idx_frames_app_name ON frames(app_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_window_name ON frames(window_name);
CREATE INDEX IF NOT EXISTS nas.idx_frames_video_chunk_id ON frames(video_chunk_id);
INSERT OR IGNORE INTO nas.frames
SELECT * FROM main.frames WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$DB_SRC" <<<"" 0.44s user 1.41s system 0% cpu 3:28.33 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Verifying..."
Verifying...
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' frames in archive' FROM frames;"
12874 frames in archive
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh "$NAS_DB"
110M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Write test: create a 100MB test file locally and copy to NAS, measure speed
dd if=/dev/urandom of=/tmp/test_100mb.bin bs=1m count=100
time cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
rm /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin
zsh: command not found: #
100+0 records in
100+0 records out
104857600 bytes transferred in 0.265359 secs (395153735 bytes/sec)
cp /tmp/test_100mb.bin /Volumes/Test/screenpipe/test_100mb.bin 0.00s user 0.17s system 1% cpu 9.476 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # First sync the current partial archive.db to NAS
time rsync -av --progress \
~/.screenpipe/archive_build.db \
/Volumes/Test/screenpipe/archive.db
zsh: command not found: #
building file list ...
rsync: link_stat "/Users/lukas/.screenpipe/archive_build.db" failed: No such file or directory (2)
0 files to consider
sent 29 bytes received 20 bytes 98.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/4ff29661-3588-11ef-9513-e2437461156c/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
rsync -av --progress ~/.screenpipe/archive_build.db 0.00s user 0.01s system 20% cpu 0.079 total
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 2: inserting elements (886k rows) directly to NAS..."
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.elements AS SELECT * FROM main.elements WHERE 0;
INSERT OR IGNORE INTO nas.elements
SELECT e.* FROM main.elements e
JOIN main.frames f ON e.frame_id = f.id
WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
sqlite3 "$NAS_DB" "SELECT COUNT(*) || ' elements in archive' FROM elements;"
du -sh "$NAS_DB"
Stage 2: inserting elements (886k rows) directly to NAS...
sqlite3 "$DB_SRC" <<<"" 0.92s user 1.12s system 1% cpu 2:42.08 total
886876 elements in archive
197M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ echo "Stage 3: syncing remaining tables..."
echo -n "ui_events... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ui_events AS SELECT * FROM main.ui_events WHERE 0;
INSERT OR IGNORE INTO nas.ui_events SELECT * FROM main.ui_events WHERE date(timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "ocr_text... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.ocr_text AS SELECT * FROM main.ocr_text WHERE 0;
INSERT OR IGNORE INTO nas.ocr_text SELECT o.* FROM main.ocr_text o JOIN main.frames f ON o.frame_id = f.id WHERE date(f.timestamp) = '$DATE';
DETACH nas;
EOF
echo -n "video_chunks... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.video_chunks AS SELECT * FROM main.video_chunks WHERE 0;
INSERT OR IGNORE INTO nas.video_chunks SELECT * FROM main.video_chunks WHERE id IN (SELECT DISTINCT video_chunk_id FROM main.frames WHERE date(timestamp) = '$DATE' AND video_chunk_id IS NOT NULL);
DETACH nas;
EOF
echo -n "meetings... "
time sqlite3 "$DB_SRC" <<EOF
ATTACH '$NAS_DB' AS nas;
CREATE TABLE IF NOT EXISTS nas.meetings AS SELECT * FROM main.meetings WHERE 0;
INSERT OR IGNORE INTO nas.meetings SELECT * FROM main.meetings WHERE date(meeting_start) = '$DATE';
DETACH nas;
EOF
echo "Verification:"
sqlite3 "$NAS_DB" "
SELECT 'frames' as tbl, COUNT(*) as rows FROM frames
UNION ALL SELECT 'elements', COUNT(*) FROM elements
UNION ALL SELECT 'ui_events', COUNT(*) FROM ui_events
UNION ALL SELECT 'ocr_text', COUNT(*) FROM ocr_text
UNION ALL SELECT 'video_chunks', COUNT(*) FROM video_chunks
UNION ALL SELECT 'meetings', COUNT(*) FROM meetings;"
du -sh "$NAS_DB"
Stage 3: syncing remaining tables...
ui_events...
sqlite3 "$DB_SRC" <<<"" 0.02s user 0.05s system 1% cpu 5.578 total
ocr_text...
zsh: terminated sqlite3 "$DB_SRC" <<<""
sqlite3 "$DB_SRC" <<<"" 1.36s user 5.25s system 1% cpu 9:57.77 total
video_chunks... sqlite3 "$DB_SRC" <<<"" 0.04s user 0.06s system 8% cpu 1.162 total
meetings... sqlite3 "$DB_SRC" <<<"" 0.00s user 0.01s system 1% cpu 0.454 total
Verification:
frames|12874
^CError: stepping, interrupted (9)
Program interrupted.
199M /Volumes/Test/screenpipe/archive.db
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sp-status
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe
8.0G /Users/lukas/.screenpipe
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.6G /Users/lukas/.screenpipe/data
3.4G /Users/lukas/.screenpipe/db.sqlite
64K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
232K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
132K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ du -sh ~/.screenpipe/*
4.0K /Users/lukas/.screenpipe/config.json
4.7G /Users/lukas/.screenpipe/data
3.6G /Users/lukas/.screenpipe/db.sqlite
128K /Users/lukas/.screenpipe/db.sqlite-shm
16M /Users/lukas/.screenpipe/db.sqlite-wal
36K /Users/lukas/.screenpipe/pipes
132K /Users/lukas/.screenpipe/screenpipe.2026-04-09.0.log
96K /Users/lukas/.screenpipe/screenpipe.2026-04-11.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-12.0.log
72K /Users/lukas/.screenpipe/screenpipe.2026-04-13.0.log
160K /Users/lukas/.screenpipe/screenpipe.2026-04-14.0.log
172K /Users/lukas/.screenpipe/screenpipe.2026-04-15.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-16.0.log
196K /Users/lukas/.screenpipe/screenpipe.2026-04-17.0.log
4.0K /Users/lukas/.screenpipe/screenpipe_sync.sh
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl, SUM(payload) as bytes FROM dbstat WHERE name = 'frames'
UNION ALL SELECT 'elements', SUM(payload) FROM dbstat WHERE name = 'elements'
UNION ALL SELECT 'ui_events', SUM(payload) FROM dbstat WHERE name = 'ui_events'
UNION ALL SELECT 'ocr_text', SUM(payload) FROM dbstat WHERE name = 'ocr_text';"
frames|1004938379
elements|465966705
ui_events|9804622
ocr_text|1443084543
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "
SELECT
'frames' as tbl,
COUNT(*) as total_rows,
SUM(payload) as total_bytes,
SUM(payload)/COUNT(*) as bytes_per_row,
-- estimate yesterday's rows
(SELECT COUNT(*) FROM frames WHERE date(timestamp) = '2026-04-15') as day_rows
FROM dbstat d, frames f
WHERE d.name = 'frames'
UNION ALL
SELECT 'elements',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM elements WHERE frame_id IN (SELECT id FROM frames WHERE date(timestamp) = '2026-04-15'))
FROM dbstat d, elements e
WHERE d.name = 'elements'
UNION ALL
SELECT 'ui_events',
COUNT(*),
SUM(payload),
SUM(payload)/COUNT(*),
(SELECT COUNT(*) FROM ui_events WHERE date(timestamp) = '2026-04-15')
FROM dbstat d, ui_events e
WHERE d.name = 'ui_events';"
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
sqlite3
Close Tab
-zsh
Close Tab
✳ Review screenpipe usage and Boosteroid integration (claude)
Close Tab
ec2-user@ip-10-30-159-186:~ (nc)
Close Tab
ec2-user@ip-10-20-6-111:~ (nc)
Close Tab
⌥⌘1
sqlite3...
|
iTerm2
|
sqlite3
|
NULL
|