|
"pipeline": {
"avg_db_latency_ms "pipeline": {
"avg_db_latency_ms": 333.52475247524757,
"avg_ocr_latency_ms": 0.0,
"capture_fps_actual": 0.22236224861039977,
"frame_drop_rate": 0.0,
"frames_captured": 101,
"frames_db_written": 101,
"frames_dropped": 0,
"ocr_cache_hit_rate": 0.0,
"ocr_queue_depth": 0,
"pipeline_stall_count": 0,
"time_to_first_frame_ms": 901.748,
"uptime_secs": 454.213791375,
"video_queue_depth": 0
},
"pool_stats": {
"read_pool_idle": 7,
"read_pool_size": 7,
"write_pool_idle": 2,
"write_pool_size": 2
},
"schedule_paused": false,
"status": "healthy",
"status_code": 200,
"verbose_instructions": null,
"version": "0.3.278",
"vision_db_write_stalled": false
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "
SELECT app_name, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-1 day')
GROUP BY app_name
ORDER BY frames DESC;
"
Error: in prepare, no such table: frames
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".tables"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".schema"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "SELECT name FROM sqlite_master WHERE type='table';"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Find all sqlite/db files screenpipe created
find ~/.screenpipe -name "*.db" -o -name "*.sqlite" 2>/dev/null
# Check what files exist at all
ls -lah ~/.screenpipe/
ls -lah ~/.screenpipe/data/ 2>/dev/null
# Maybe it's in Application Support
find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/null
quote>
quote> '
zsh: command not found: #
/Users/lukas/.screenpipe/db.sqlite
/Users/lukas/.screenpipe/data/screenpipe.db
zsh: command not found: #
total 170384
drwxr-xr-x 10 lukas staff 320B 11 Apr 14:52 .
drwx------+ 88 lukas staff 2.8K 11 Apr 14:53 ..
-rw-r--r-- 1 lukas staff 270B 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160B 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 67M 11 Apr 15:05 db.sqlite
-rw-r--r-- 1 lukas staff 32K 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 16M 11 Apr 15:05 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256B 9 Apr 19:53 pipes
-rw-r--r-- 1 lukas staff 130K 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 11K 11 Apr 15:05 screenpipe.2026-04-11.0.log
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
zsh: command not found: #
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Find all sqlite/db files screenpipe created
find ~/.screenpipe -name "*.db" -o -name "*.sqlite" 2>/dev/null
# Check what files exist at all
ls -lah ~/.screenpipe/
ls -lah ~/.screenpipe/data/ 2>/dev/null
# Maybe it's in Application Support
find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/null
'
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp<lhl100% C-zshDOCKER• ₴1DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84lukas@Lukas-Kovaliks-MacBook-Pro-Jiminnyfind ~/.screenpipe -name"*.db"~/.screenpipe $ # Find all sqlite/db files screenpipe created-0 -name"*.sqlite" 2>/dev/null-zshCheck what files exist at allls -lah ~/.screenpipe/ls-lah ~/.screenpipe/data/ 2>/dev/null# Maybe it's in Application Supportfind ~/Library/Application\ Support/-name"*.db"-path "*screenpipe*"2>/dev/nullquote>quote>zsh: command not found: #/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dbzsh: command not found: #total 170384drwxr-xr-x10lukasstaff320B 11 Apr 14:52drwx---88lukasstaff2.8K 11Apr 14:53-rw-r--r--1lukasstaff270B9 Apr 20:27config.jsondrwxr-xr-x5 lukasstaff160B11Apr 15:03data-rw-r--r--lukasstaff67M 11Apr 15:05db.sqlitelukasstaff32K 11Apr 14:52-rw-r--r--lukasstaffdb.sqlite-shm16M11 Apr 15:05db.sqlite-waldrwxr-xr-x8lukasstaff256B9Apr 19:53 pipes-rw-r--r--1lukasstaff130KApr21:27-rw-r--r--1 lukasstaff11K 11screenpipe.2026-04-09.0.10gApr 15:05screenpipe.2026-04-11.0.logtotal odrwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10lukasstaff320B11 Apr 14:52drwxr-xr-x5 lukasstaff160B11 Apr 14:52datadrwxr-xr-x2 lukasstaff64B9Apr 20:05pending-transcriptions-rw-r--r--1lukasstaffOB11 Apr 15:03screenpipe.dbzsh: commandnot 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.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $|• 85-zsh• *6Sat 11 Apr 15:06:01-zshT81*7...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp• 0-zsh|DOCKER0 ₴1DEV (-zsh)О 882APP (-zsh)• ₴з-zsh• 84lukas@Lukas-Kovaliks-MacBook-Pro-Jiminnyfind ~/.screenpipe -name"*.db"~/.screenpipe $ # Find all sqlite/db files screenpipe created-0 -name"*.sqlite" 2>/dev/null-zshCheck what files exist at allls -lah ~/.screenpipe/ls-lah ~/.screenpipe/data/ 2>/dev/null# Maybe it's in Application Supportfind ~/Library/Application\ Support/-name"*.db"-path "*screenpipe*"2>/dev/nullquote>quote>zsh:command not found: #/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dbzsh: command not found: #total 170384drwxr-xr-x10lukasstaff320B 11 Apr 14:52drwx----88lukasstaff2.8K 11Apr 14:53-rw-r--r--1lukasstaff270B9 Apr 20:27config. jsondrwxr-xr-x5 lukasstaff160B11Apr 15:03data-rw-r--r--lukasstaff67M 11Apr 15:05db.sqlitelukasstaff-rw-r--r--lukasstaff32K 11 Apr 14:52db.sqlite-shm16M11 Apr 15:05db.sqlite-waldrwxr-xr-x8 lukasstaff256B9Apr 19:53 pipes-rw-r--r--1lukasstaff130KApr21:27-rw-r--r--1 lukasstaff11K 11Apr 15:05screenpipe.2026-04-09.0.10gscreenpipe.2026-04-11.0.logtotal odrwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10lukasstaff320B11 Apr 14:52drwxr-xr-x5 lukasstaff160B11 Apr 14:52datadrwxr-xr-x2 lukasstaff64B9Apr 20:05pending-transcriptions-rw-r--r--1lukasstaffOB11 Apr 15:03screenpipe.dbzsh: commandnot 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.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ 0$0(ahl• ₴5-zsh100% <7O 886Sat 11 Apr 15:06:01-zsh181*7...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp• 0-zsh|DOCKER0 ₴1DEV (-zsh)О 882APP (-zsh)• ₴з-zsh• 84lukas@Lukas-Kovaliks-MacBook-Pro-Jiminnyfind ~/.screenpipe -name"*.db"~/.screenpipe $ # Find all sqlite/db files screenpipe created-0 -name"*.sqlite" 2>/dev/null-zshCheck what files exist at allls -lah ~/.screenpipe/ls-lah ~/.screenpipe/data/ 2>/dev/null# Maybe it's in Application Supportfind ~/Library/Application\ Support/-name"*.db"-path "*screenpipe*"2>/dev/nullquote>quote>zsh:command not found: #/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dbzsh: command not found: #total 170384drwxr-xr-x10lukasstaff320B 11 Apr 14:52drwx---88lukasstaff2.8K 11Apr 14:53-rw-r--r--1lukasstaff270B9 Apr 20:27config. jsondrwxr-xr-x5 lukasstaff160B11Apr 15:03data-rw-r--r--lukasstaff67M 11Apr 15:05db.sqlitelukasstaff-rw-r--r--lukasstaff32K 11 Apr 14:52db.sqlite-shm16M11 Apr 15:05db.sqlite-waldrwxr-xr-x8 lukasstaff256B9Apr 19:53 pipes-rw-r--r--1lukasstaff130KApr21:27-rw-r--r--1 lukasstaff11K 11Apr 15:05screenpipe.2026-04-09.0.10gscreenpipe.2026-04-11.0.logtotal odrwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10lukasstaff320B11 Apr 14:52drwxr-xr-x5 lukasstaff160B11 Apr 14:52datadrwxr-xr-x2 lukasstaff64B9Apr 20:05pending-transcriptions-rw-r--r--1lukasstaffOB11 Apr 15:03screenpipe.dbzsh: commandnot 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.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ 0$0(ahl• ₴5-zsh100% <7• *6Sat 11 Apr 15:06:03-zsh181*7...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp• 0-zsh|DOCKER0 ₴1DEV (-zsh)О 882APP (-zsh)• ₴з-zsh• 84lukas@Lukas-Kovaliks-MacBook-Pro-Jiminnyfind ~/.screenpipe -name"*.db"~/.screenpipe $ # Find all sqlite/db files screenpipe created-0 -name"*.sqlite" 2>/dev/null-zshCheck what files exist at allls -lah ~/.screenpipe/ls-lah ~/.screenpipe/data/ 2>/dev/null# Maybe it's in Application Supportfind ~/Library/Application\ Support/-name"*.db"-path "*screenpipe*"2>/dev/nullquote>quote>zsh:command not found: #/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dbzsh: command not found: #total 170384drwxr-xr-x10lukasstaff320B 11 Apr 14:52drwx---88lukasstaff2.8K 11Apr 14:53-rw-r--r--1lukasstaff270B9 Apr 20:27config. jsondrwxr-xr-x5 lukasstaff160B11Apr 15:03data-rw-r--r--lukasstaff67M 11Apr 15:05db.sqlitelukasstaff-rw-r--r--lukasstaff32K 11 Apr 14:52db.sqlite-shm16M11 Apr 15:05db.sqlite-waldrwxr-xr-x8 lukasstaff256B9Apr 19:53 pipes-rw-r--r--1lukasstaff130KApr21:27-rw-r--r--1 lukasstaff11K 11Apr 15:05screenpipe.2026-04-09.0.10gscreenpipe.2026-04-11.0.logtotal odrwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10lukasstaff320B11 Apr 14:52drwxr-xr-x5 lukasstaff160B11 Apr 14:52datadrwxr-xr-x2 lukasstaff64B9Apr 20:05pending-transcriptions-rw-r--r--1lukasstaffOB11 Apr 15:03screenpipe.dbzsh: commandnot 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.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ 0$0(ahl• ₴5-zsh100% <7• *6Sat 11 Apr 15:06:06-zsh181X7...
|
NULL
|
NULL
|
NULL
|
|
"pipeline": {
"avg_db_latency_ms "pipeline": {
"avg_db_latency_ms": 333.52475247524757,
"avg_ocr_latency_ms": 0.0,
"capture_fps_actual": 0.22236224861039977,
"frame_drop_rate": 0.0,
"frames_captured": 101,
"frames_db_written": 101,
"frames_dropped": 0,
"ocr_cache_hit_rate": 0.0,
"ocr_queue_depth": 0,
"pipeline_stall_count": 0,
"time_to_first_frame_ms": 901.748,
"uptime_secs": 454.213791375,
"video_queue_depth": 0
},
"pool_stats": {
"read_pool_idle": 7,
"read_pool_size": 7,
"write_pool_idle": 2,
"write_pool_size": 2
},
"schedule_paused": false,
"status": "healthy",
"status_code": 200,
"verbose_instructions": null,
"version": "0.3.278",
"vision_db_write_stalled": false
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "
SELECT app_name, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-1 day')
GROUP BY app_name
ORDER BY frames DESC;
"
Error: in prepare, no such table: frames
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".tables"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".schema"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "SELECT name FROM sqlite_master WHERE type='table';"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Find all sqlite/db files screenpipe created
find ~/.screenpipe -name "*.db" -o -name "*.sqlite" 2>/dev/null
# Check what files exist at all
ls -lah ~/.screenpipe/
ls -lah ~/.screenpipe/data/ 2>/dev/null
# Maybe it's in Application Support
find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/null
quote>
quote> '
zsh: command not found: #
/Users/lukas/.screenpipe/db.sqlite
/Users/lukas/.screenpipe/data/screenpipe.db
zsh: command not found: #
total 170384
drwxr-xr-x 10 lukas staff 320B 11 Apr 14:52 .
drwx------+ 88 lukas staff 2.8K 11 Apr 14:53 ..
-rw-r--r-- 1 lukas staff 270B 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160B 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 67M 11 Apr 15:05 db.sqlite
-rw-r--r-- 1 lukas staff 32K 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 16M 11 Apr 15:05 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256B 9 Apr 19:53 pipes
-rw-r--r-- 1 lukas staff 130K 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 11K 11 Apr 15:05 screenpipe.2026-04-11.0.log
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
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 $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
"pipeline": {
"avg_db_latency_ms "pipeline": {
"avg_db_latency_ms": 333.52475247524757,
"avg_ocr_latency_ms": 0.0,
"capture_fps_actual": 0.22236224861039977,
"frame_drop_rate": 0.0,
"frames_captured": 101,
"frames_db_written": 101,
"frames_dropped": 0,
"ocr_cache_hit_rate": 0.0,
"ocr_queue_depth": 0,
"pipeline_stall_count": 0,
"time_to_first_frame_ms": 901.748,
"uptime_secs": 454.213791375,
"video_queue_depth": 0
},
"pool_stats": {
"read_pool_idle": 7,
"read_pool_size": 7,
"write_pool_idle": 2,
"write_pool_size": 2
},
"schedule_paused": false,
"status": "healthy",
"status_code": 200,
"verbose_instructions": null,
"version": "0.3.278",
"vision_db_write_stalled": false
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "
SELECT app_name, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-1 day')
GROUP BY app_name
ORDER BY frames DESC;
"
Error: in prepare, no such table: frames
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".tables"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".schema"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "SELECT name FROM sqlite_master WHERE type='table';"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Find all sqlite/db files screenpipe created
find ~/.screenpipe -name "*.db" -o -name "*.sqlite" 2>/dev/null
# Check what files exist at all
ls -lah ~/.screenpipe/
ls -lah ~/.screenpipe/data/ 2>/dev/null
# Maybe it's in Application Support
find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/null
quote>
quote> '
zsh: command not found: #
/Users/lukas/.screenpipe/db.sqlite
/Users/lukas/.screenpipe/data/screenpipe.db
zsh: command not found: #
total 170384
drwxr-xr-x 10 lukas staff 320B 11 Apr 14:52 .
drwx------+ 88 lukas staff 2.8K 11 Apr 14:53 ..
-rw-r--r-- 1 lukas staff 270B 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160B 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 67M 11 Apr 15:05 db.sqlite
-rw-r--r-- 1 lukas staff 32K 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 16M 11 Apr 15:05 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256B 9 Apr 19:53 pipes
-rw-r--r-- 1 lukas staff 130K 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 11K 11 Apr 15:05 screenpipe.2026-04-11.0.log
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
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/
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zsh40lhl• 85DOCKERO ₴1find~/.screenpipe-name"*.db"DEV (-zsh)-nameO ₴2APP (-zsh)"*.sqlite"2>/dev/null• *3-zsh• 84-zsh#Check what files existat allls-lah~/.screenpipe/15-lah ~/.screenpipe/data/ 2>/dev/null# Maybe it's in Application Supportfind ~/Library/Application\ Support/-name"*.db"-path"*screenpipe*"2>/dev/nullquote>quote>zsh: command not found:#/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dbzsh: command not found: #total 170384drwxr-xr-x10lukasstaff320B11Apr 14:52drwx-88lukasstaff2.8K 11 Apr 14:53-rw-r--r--lukasstaff270BApr20:27config. jsondrwxr-xr-x5lukasstaff160B11 Apr 15:03data-rw-r--r--1lukasstaff67M 11 Apr 15:05db.sqlite-rw-r--r--lukasstaff32K 11Apr 14:52db.sqlite-shmlukasstaffdrwxr-xr-x8lukasstaff16M 11 Apr 15:05db.sqlite-wal256B9 Apr 19:53pipes-W-r=-1lukasstaff130K9 Apr 21:27 screenpipe.2026-04-09.0.10g-rw-r--r--1lukasstaff11K 11 Apr 15:05screenpipe.2026-04-11.0.10gtotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B11 Apr 14:52drwxr-xr-x5 lukasstaff160B11 Apr 14:52datadrwxr-xr-x2lukasstaff64B9 Apr 20:05pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03screenpipe.dbzsh: command not found:#lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/.screenpipe -name"*.db"-0 -name"*.sqlite" 2>/dev/null/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ s -lah ~/.screenpipe/ls -lah ~/.screenpipe/data/ 2>/dev/nullzsh: command not found: 5total 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B 11Apr 14:52drwxr-xr-X5lukasstaff160B11 Apr 14:52datadrwxr-xr-x2lukasstaff64B9 Apr 20:05pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $-zsh100% C• *6Sat 11 Apr 15:06:11-zshT81X7...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zsh$0(ahl• ₴5DOCKERO ₴1find~/.screenpipe-name"*.db"DEV (-zsh)-nameO ₴2APP (-zsh)"*.sqlite" 2>/dev/null• ₴з-zsh• 84-zsh#Check what files existat allls-lah~/.screenpipe/ls-lah ~/.screenpipe/data/ 2>/dev/null# Maybe it's in Application Supportfind ~/Library/Application\ Support/-name"*.db"-path"*screenpipe*"2>/dev/nullquote>quote>zsh: command not found:#/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dbzsh: command not found: #total 170384drwxr-xr-x10lukasstaff320B11Apr 14:52drwx-88lukasstaff2.8K 11Apr 14:53-rw-r--r--lukasstaff270BApr20:27config. jsondrwxr-xr-x5lukasstaff160B11 Apr 15:03data-rw-r--r--1lukasstaff67M 11 Apr 15:05db.sqlite-rw-r--r--lukasstaff32K 11Apr 14:52db.sqlite-shmlukasstaffdrwxr-xr-x8lukasstaff16M 11 Apr 15:05db.sqlite-wal256B9 Apr 19:53pipes-rw-r-1lukasstaff130K9 Apr 21:27 screenpipe.2026-04-09.0.10g-rw-r--r--1lukasstaff11K 11 Apr 15:05screenpipe.2026-04-11.0.10gtotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B11 Apr 14:52drwxr-xr-x5 lukasstaff160B11 Apr 14:52datadrwxr-xr-x2lukasstaff64B9 Apr 20:05pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03screenpipe.dbzsh: 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.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ s -lah ~/.screenpipe/ls -lah ~/.screenpipe/data/ 2>/dev/nullzsh: command not found: stotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B 11 Apr 14:52drwxr-xr-x5lukasstaff160B 11 Apr 14:52datadrwxr-xr-x2lukasstaff64B9 Apr 20:05pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ П-zsh100% <7O 886Sat 11 Apr 15:06:13-zsh181X7...
|
NULL
|
NULL
|
NULL
|
|
"pipeline": {
"avg_db_latency_ms "pipeline": {
"avg_db_latency_ms": 333.52475247524757,
"avg_ocr_latency_ms": 0.0,
"capture_fps_actual": 0.22236224861039977,
"frame_drop_rate": 0.0,
"frames_captured": 101,
"frames_db_written": 101,
"frames_dropped": 0,
"ocr_cache_hit_rate": 0.0,
"ocr_queue_depth": 0,
"pipeline_stall_count": 0,
"time_to_first_frame_ms": 901.748,
"uptime_secs": 454.213791375,
"video_queue_depth": 0
},
"pool_stats": {
"read_pool_idle": 7,
"read_pool_size": 7,
"write_pool_idle": 2,
"write_pool_size": 2
},
"schedule_paused": false,
"status": "healthy",
"status_code": 200,
"verbose_instructions": null,
"version": "0.3.278",
"vision_db_write_stalled": false
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "
SELECT app_name, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-1 day')
GROUP BY app_name
ORDER BY frames DESC;
"
Error: in prepare, no such table: frames
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".tables"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".schema"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "SELECT name FROM sqlite_master WHERE type='table';"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Find all sqlite/db files screenpipe created
find ~/.screenpipe -name "*.db" -o -name "*.sqlite" 2>/dev/null
# Check what files exist at all
ls -lah ~/.screenpipe/
ls -lah ~/.screenpipe/data/ 2>/dev/null
# Maybe it's in Application Support
find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/null
quote>
quote> '
zsh: command not found: #
/Users/lukas/.screenpipe/db.sqlite
/Users/lukas/.screenpipe/data/screenpipe.db
zsh: command not found: #
total 170384
drwxr-xr-x 10 lukas staff 320B 11 Apr 14:52 .
drwx------+ 88 lukas staff 2.8K 11 Apr 14:53 ..
-rw-r--r-- 1 lukas staff 270B 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160B 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 67M 11 Apr 15:05 db.sqlite
-rw-r--r-- 1 lukas staff 32K 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 16M 11 Apr 15:05 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256B 9 Apr 19:53 pipes
-rw-r--r-- 1 lukas staff 130K 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 11K 11 Apr 15:05 screenpipe.2026-04-11.0.log
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
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 $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
"pipeline": {
"avg_db_latency_ms "pipeline": {
"avg_db_latency_ms": 333.52475247524757,
"avg_ocr_latency_ms": 0.0,
"capture_fps_actual": 0.22236224861039977,
"frame_drop_rate": 0.0,
"frames_captured": 101,
"frames_db_written": 101,
"frames_dropped": 0,
"ocr_cache_hit_rate": 0.0,
"ocr_queue_depth": 0,
"pipeline_stall_count": 0,
"time_to_first_frame_ms": 901.748,
"uptime_secs": 454.213791375,
"video_queue_depth": 0
},
"pool_stats": {
"read_pool_idle": 7,
"read_pool_size": 7,
"write_pool_idle": 2,
"write_pool_size": 2
},
"schedule_paused": false,
"status": "healthy",
"status_code": 200,
"verbose_instructions": null,
"version": "0.3.278",
"vision_db_write_stalled": false
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "
SELECT app_name, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-1 day')
GROUP BY app_name
ORDER BY frames DESC;
"
Error: in prepare, no such table: frames
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".tables"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".schema"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "SELECT name FROM sqlite_master WHERE type='table';"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Find all sqlite/db files screenpipe created
find ~/.screenpipe -name "*.db" -o -name "*.sqlite" 2>/dev/null
# Check what files exist at all
ls -lah ~/.screenpipe/
ls -lah ~/.screenpipe/data/ 2>/dev/null
# Maybe it's in Application Support
find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/null
quote>
quote> '
zsh: command not found: #
/Users/lukas/.screenpipe/db.sqlite
/Users/lukas/.screenpipe/data/screenpipe.db
zsh: command not found: #
total 170384
drwxr-xr-x 10 lukas staff 320B 11 Apr 14:52 .
drwx------+ 88 lukas staff 2.8K 11 Apr 14:53 ..
-rw-r--r-- 1 lukas staff 270B 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160B 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 67M 11 Apr 15:05 db.sqlite
-rw-r--r-- 1 lukas staff 32K 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 16M 11 Apr 15:05 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256B 9 Apr 19:53 pipes
-rw-r--r-- 1 lukas staff 130K 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 11K 11 Apr 15:05 screenpipe.2026-04-11.0.log
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
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
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
"pipeline": {
"avg_db_latency_ms "pipeline": {
"avg_db_latency_ms": 333.52475247524757,
"avg_ocr_latency_ms": 0.0,
"capture_fps_actual": 0.22236224861039977,
"frame_drop_rate": 0.0,
"frames_captured": 101,
"frames_db_written": 101,
"frames_dropped": 0,
"ocr_cache_hit_rate": 0.0,
"ocr_queue_depth": 0,
"pipeline_stall_count": 0,
"time_to_first_frame_ms": 901.748,
"uptime_secs": 454.213791375,
"video_queue_depth": 0
},
"pool_stats": {
"read_pool_idle": 7,
"read_pool_size": 7,
"write_pool_idle": 2,
"write_pool_size": 2
},
"schedule_paused": false,
"status": "healthy",
"status_code": 200,
"verbose_instructions": null,
"version": "0.3.278",
"vision_db_write_stalled": false
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "
SELECT app_name, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-1 day')
GROUP BY app_name
ORDER BY frames DESC;
"
Error: in prepare, no such table: frames
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".tables"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".schema"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "SELECT name FROM sqlite_master WHERE type='table';"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Find all sqlite/db files screenpipe created
find ~/.screenpipe -name "*.db" -o -name "*.sqlite" 2>/dev/null
# Check what files exist at all
ls -lah ~/.screenpipe/
ls -lah ~/.screenpipe/data/ 2>/dev/null
# Maybe it's in Application Support
find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/null
quote>
quote> '
zsh: command not found: #
/Users/lukas/.screenpipe/db.sqlite
/Users/lukas/.screenpipe/data/screenpipe.db
zsh: command not found: #
total 170384
drwxr-xr-x 10 lukas staff 320B 11 Apr 14:52 .
drwx------+ 88 lukas staff 2.8K 11 Apr 14:53 ..
-rw-r--r-- 1 lukas staff 270B 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160B 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 67M 11 Apr 15:05 db.sqlite
-rw-r--r-- 1 lukas staff 32K 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 16M 11 Apr 15:05 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256B 9 Apr 19:53 pipes
-rw-r--r-- 1 lukas staff 130K 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 11K 11 Apr 15:05 screenpipe.2026-04-11.0.log
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
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
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
find
Close Tab
⌥⌘1
find...
|
iTerm2
|
find
|
NULL
|
|
"pipeline": {
"avg_db_latency_ms "pipeline": {
"avg_db_latency_ms": 333.52475247524757,
"avg_ocr_latency_ms": 0.0,
"capture_fps_actual": 0.22236224861039977,
"frame_drop_rate": 0.0,
"frames_captured": 101,
"frames_db_written": 101,
"frames_dropped": 0,
"ocr_cache_hit_rate": 0.0,
"ocr_queue_depth": 0,
"pipeline_stall_count": 0,
"time_to_first_frame_ms": 901.748,
"uptime_secs": 454.213791375,
"video_queue_depth": 0
},
"pool_stats": {
"read_pool_idle": 7,
"read_pool_size": 7,
"write_pool_idle": 2,
"write_pool_size": 2
},
"schedule_paused": false,
"status": "healthy",
"status_code": 200,
"verbose_instructions": null,
"version": "0.3.278",
"vision_db_write_stalled": false
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "
SELECT app_name, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-1 day')
GROUP BY app_name
ORDER BY frames DESC;
"
Error: in prepare, no such table: frames
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".tables"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".schema"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "SELECT name FROM sqlite_master WHERE type='table';"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Find all sqlite/db files screenpipe created
find ~/.screenpipe -name "*.db" -o -name "*.sqlite" 2>/dev/null
# Check what files exist at all
ls -lah ~/.screenpipe/
ls -lah ~/.screenpipe/data/ 2>/dev/null
# Maybe it's in Application Support
find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/null
quote>
quote> '
zsh: command not found: #
/Users/lukas/.screenpipe/db.sqlite
/Users/lukas/.screenpipe/data/screenpipe.db
zsh: command not found: #
total 170384
drwxr-xr-x 10 lukas staff 320B 11 Apr 14:52 .
drwx------+ 88 lukas staff 2.8K 11 Apr 14:53 ..
-rw-r--r-- 1 lukas staff 270B 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160B 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 67M 11 Apr 15:05 db.sqlite
-rw-r--r-- 1 lukas staff 32K 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 16M 11 Apr 15:05 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256B 9 Apr 19:53 pipes
-rw-r--r-- 1 lukas staff 130K 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 11K 11 Apr 15:05 screenpipe.2026-04-11.0.log
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
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 $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zshlhl• 85100% CS- 886Sat 11 Apr 15:06:59-zshT81*7DOCKERO ₴1DEV (-zsh)-ls-lah ~/.screenpipe/1s-lah ~/.screenpipe/data/ 2>/dev/nullO 882APP (-zsh)• *3-zsh• 84-zsh-zsh# Maybeit's in Application Supportfind ~/Library/Application\ Support/-name"*.db"-path"*screenpipe*"2>/dev/nullquote>quote>zsh: command not found: #/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dbzsh: command not found: #total 170384drwxr-xr-x10lukasstaff320B11Apr 14:52drwx----88 lukasstaff2.8K 11Apr 14:53-rw-r--r--1lukasstaff270B9Apr 20:27config. jsondrwxr-xr-x5lukasstaff160B11Apr 15:03datalukasstaff67M 11 Apr 15:05db.sqlite-rw-r--r--lukasstaff32K 11Apr14:52db.sqlite-shm-rw-r--r--1lukasstaff16M 11 Apr 15:05 db.sqlite-waldrwxr-xr-x8lukasstaff256B9 Apr 19:53 pipes-rw-r--r--lukasstaff130K9 Apr 21:27 screenpipe.2026-04-09.0.10g-rw-r--r--1 lukasstaff11K 11 Apr 15:05 screenpipe.2026-04-11.0.10gtotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03 .drwxr-xr-x10lukasstaff320B 11 Apr 14:52drwxr-xr-x5lukasstaff160B 11 Apr 14:52datadrwxr-xr-x2lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dbzsh:commandnot 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.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ s -lah ~/.screenpipe/ls -lah ~/.screenpipe/data/ 2>/dev/nullzsh: command not found: stotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B 11 Apr 14:52drwxr-xr-x5 lukasstaff160B 11 Apr 14:52 datadrwxr-xr-x2 lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/nulllukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ find ~/.screenpipe -name "*.db" -path "*screenpipe*" 2>/dev/nullptt neser eneto path "елспрiрe 2/dev/nu11/Users/lukas/.screenpipe/data/screenpipe.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zsh$0(ahl• ₴5100% <7• ₴6Sat 11 Apr 15:07:02-zsh181*7DOCKERO ₴1DEV (-zsh)ls-lah ~/.screenpipe/1s-lah ~/.screenpipe/data/ 2>/dev/nullО 882APP (-zsh)• ₴з-zsh• 84-zsh-zsh# Maybeit's in Application Supportfind ~/Library/Application\ Support/-name"*.db"-path"*screenpipe*"2>/dev/nullquote>quote>zsh: command not found: #/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dbzsh: command not found: #total 170384drwxr-xr-x10lukasstaff320B11Apr 14:52drwx----88 lukasstaff2.8K 11Apr 14:53-rw-r--r--1lukasstaff270B9Apr 20:27config. jsondrwxr-xr-x5lukasstaff160B11Apr 15:03datalukasstaff67M 11Apr 15:05db.sqlite-rw-r--r--lukasstaff32K 11Apr14:52db.sqlite-shm-rw-r--r--1lukasstaff16M 11 Apr 15:05 db.sqlite-waldrwxr-xr-x8lukasstaff256B9 Apr 19:53 pipes-rw-r--r--lukasstaff130K9 Apr 21:27 screenpipe.2026-04-09.0.10g-rw-r--r--1 lukasstaff11K 11 Apr 15:05 screenpipe.2026-04-11.0.10gtotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03 .drwxr-xr-x10lukasstaff320B 11 Apr 14:52drwxr-xr-x5lukasstaff160B 11 Apr 14:52datadrwxr-xr-x2lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dbzsh:commandnot 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.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ s -lah ~/.screenpipe/ls -lah ~/.screenpipe/data/ 2>/dev/nullzsh: command not found: stotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B 11 Apr 14:52drwxr-xr-x5 lukasstaff160B 11 Apr 14:52 datadrwxr-xr-x2 lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/nulllukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ find ~/.screenpipe -name "*.db" -path "*screenpipe*" 2>/dev/null/Users/lukas/.screenpipe/data/screenpipe.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zsh$0(ahl• ₴5100% <7• ₴6Sat 11 Apr 15:07:06-zsh181*7DOCKERO ₴1DEV (-zsh)ls-lah ~/.screenpipe/1s-lah ~/.screenpipe/data/ 2>/dev/nullО 882APP (-zsh)• ₴з-zsh• 84-zsh-zsh# Maybeit's in Application Supportfind ~/Library/Application\ Support/-name"*.db"-path"*screenpipe*"2>/dev/nullquote>quote>zsh: command not found: #/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dbzsh: command not found: #total 170384drwxr-xr-x10lukasstaff320B11Apr 14:52drwx----88 lukasstaff2.8K 11Apr 14:53-rw-r--r--1lukasstaff270B9Apr 20:27config. jsondrwxr-xr-x5lukasstaff160B11Apr 15:03datalukasstaff67M 11Apr 15:05db.sqlite-rw-r--r--lukasstaff32K 11Apr14:52db.sqlite-shm-rw-r--r--1lukasstaff16M 11 Apr 15:05 db.sqlite-waldrwxr-xr-x8lukasstaff256B9 Apr 19:53 pipes-rw-r--r--lukasstaff130K9 Apr 21:27 screenpipe.2026-04-09.0.10g-rw-r--r--1 lukasstaff11K 11 Apr 15:05 screenpipe.2026-04-11.0.10gtotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03 .drwxr-xr-x10lukasstaff320B 11 Apr 14:52drwxr-xr-x5lukasstaff160B 11 Apr 14:52datadrwxr-xr-x2lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dbzsh:commandnot 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.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ s -lah ~/.screenpipe/ls -lah ~/.screenpipe/data/ 2>/dev/nullzsh: command not found: stotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B 11 Apr 14:52drwxr-xr-x5 lukasstaff160B 11 Apr 14:52 datadrwxr-xr-x2 lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/nulllukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ find ~/.screenpipe -name "*.db" -path "*screenpipe*" 2>/dev/null/Users/lukas/.screenpipe/data/screenpipe.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zsh$0(ahl• ₴5100% <7• ₴6Sat 11 Apr 15:07:08-zsh181*7DOCKERO ₴1DEV (-zsh)ls-lah ~/.screenpipe/1s-lah ~/.screenpipe/data/ 2>/dev/nullО 882APP (-zsh)• ₴з-zsh• 84-zsh-zsh# Maybeit's in Application Supportfind ~/Library/Application\ Support/-name"*.db"-path"*screenpipe*"2>/dev/nullquote>quote>zsh: command not found: #/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dbzsh: command not found: #total 170384drwxr-xr-x10lukasstaff320B11Apr 14:52drwx----88 lukasstaff2.8K 11Apr 14:53-rw-r--r--1lukasstaff270B9Apr 20:27config. jsondrwxr-xr-x5lukasstaff160B11Apr 15:03datalukasstaff67M 11Apr 15:05db.sqlite-rw-r--r--lukasstaff32K 11Apr14:52db.sqlite-shm-rw-r--r--1lukasstaff16M 11 Apr 15:05 db.sqlite-waldrwxr-xr-x8lukasstaff256B9 Apr 19:53 pipes-rw-r--r--lukasstaff130K9 Apr 21:27 screenpipe.2026-04-09.0.10g-rw-r--r--1 lukasstaff11K 11 Apr 15:05 screenpipe.2026-04-11.0.10gtotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03 .drwxr-xr-x10lukasstaff320B 11 Apr 14:52drwxr-xr-x5lukasstaff160B 11 Apr 14:52datadrwxr-xr-x2lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dbzsh:commandnot 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.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ s -lah ~/.screenpipe/ls -lah ~/.screenpipe/data/ 2>/dev/nullzsh: command not found: stotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B 11 Apr 14:52drwxr-xr-x5 lukasstaff160B 11 Apr 14:52 datadrwxr-xr-x2 lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/nulllukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ find ~/.screenpipe -name "*.db" -path "*screenpipe*" 2>/dev/null/Users/lukas/.screenpipe/data/screenpipe.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zsh$0(ahl• ₴5100% <7• ₴6Sat 11 Apr 15:07:11-zsh181*7DOCKERO ₴1DEV (-zsh)ls-lah ~/.screenpipe/1s-lah ~/.screenpipe/data/ 2>/dev/nullО 882APP (-zsh)• ₴з-zsh• 84-zsh-zsh# Maybeit's in Application Supportfind ~/Library/Application\ Support/-name"*.db"-path"*screenpipe*"2>/dev/nullquote>quote>zsh: command not found: #/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dbzsh: command not found: #total 170384drwxr-xr-x10lukasstaff320B11Apr 14:52drwx----88 lukasstaff2.8K 11Apr 14:53-rw-r--r--1lukasstaff270B9Apr 20:27config. jsondrwxr-xr-x5lukasstaff160B11Apr 15:03datalukasstaff67M 11Apr 15:05db.sqlite-rw-r--r--lukasstaff32K 11Apr14:52db.sqlite-shm-rw-r--r--1lukasstaff16M 11 Apr 15:05 db.sqlite-waldrwxr-xr-x8lukasstaff256B9 Apr 19:53 pipes-rw-r--r--lukasstaff130K9 Apr 21:27 screenpipe.2026-04-09.0.10g-rw-r--r--1 lukasstaff11K 11 Apr 15:05 screenpipe.2026-04-11.0.10gtotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03 .drwxr-xr-x10lukasstaff320B 11 Apr 14:52drwxr-xr-x5lukasstaff160B 11 Apr 14:52datadrwxr-xr-x2lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dbzsh:commandnot 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.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ s -lah ~/.screenpipe/ls -lah ~/.screenpipe/data/ 2>/dev/nullzsh: command not found: stotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B 11 Apr 14:52drwxr-xr-x5 lukasstaff160B 11 Apr 14:52 datadrwxr-xr-x2 lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/nulllukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ find ~/.screenpipe -name "*.db" -path "*screenpipe*" 2>/dev/null/Users/lukas/.screenpipe/data/screenpipe.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zsh$0(ahl• ₴5100% <7• ₴6Sat 11 Apr 15:07:12-zsh181*7DOCKERO ₴1DEV (-zsh)ls-lah ~/.screenpipe/1s-lah ~/.screenpipe/data/ 2>/dev/nullО 882APP (-zsh)• ₴з-zsh• 84-zsh-zsh# Maybeit's in Application Supportfind ~/Library/Application\ Support/-name"*.db"-path"*screenpipe*"2>/dev/nullquote>quote>zsh: command not found: #/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dbzsh: command not found: #total 170384drwxr-xr-x10lukasstaff320B11Apr 14:52drwx----88 lukasstaff2.8K 11Apr 14:53-rw-r--r--1lukasstaff270B9Apr 20:27config. jsondrwxr-xr-x5lukasstaff160B11Apr 15:03datalukasstaff67M 11Apr 15:05db.sqlite-rw-r--r--lukasstaff32K 11Apr14:52db.sqlite-shm-rw-r--r--1lukasstaff16M 11 Apr 15:05 db.sqlite-waldrwxr-xr-x8lukasstaff256B9 Apr 19:53 pipes-rw-r--r--lukasstaff130K9 Apr 21:27 screenpipe.2026-04-09.0.10g-rw-r--r--1 lukasstaff11K 11 Apr 15:05 screenpipe.2026-04-11.0.10gtotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03 .drwxr-xr-x10lukasstaff320B 11 Apr 14:52drwxr-xr-x5lukasstaff160B 11 Apr 14:52datadrwxr-xr-x2lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dbzsh:commandnot 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.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ s -lah ~/.screenpipe/ls -lah ~/.screenpipe/data/ 2>/dev/nullzsh: command not found: stotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B 11 Apr 14:52drwxr-xr-x5 lukasstaff160B 11 Apr 14:52 datadrwxr-xr-x2 lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/nulllukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ find ~/.screenpipe -name "*.db" -path "*screenpipe*" 2>/dev/null/Users/lukas/.screenpipe/data/screenpipe.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zsh$0(ahl• ₴5100% <7• *6Sat 11 Apr 15:07:17-zsh181*7DOCKERO ₴1DEV (-zsh)ls-lah ~/.screenpipe/1s-lah ~/.screenpipe/data/ 2>/dev/nullО 882APP (-zsh)• ₴з-zsh• 84-zsh-zsh# Maybeit's in Application Supportfind ~/Library/Application\ Support/-name"*.db"-path"*screenpipe*"2>/dev/nullquote>quote>zsh: command not found: #/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dbzsh: command not found: #total 170384drwxr-xr-x10lukasstaff320B11Apr 14:52drwx----88 lukasstaff2.8K 11Apr 14:53-rw-r--r--1lukasstaff270B9Apr 20:27config. jsondrwxr-xr-x5lukasstaff160B11Apr 15:03datalukasstaff67M 11Apr 15:05db.sqlite-rw-r--r--lukasstaff32K 11Apr14:52db.sqlite-shm-rw-r--r--1lukasstaff16M 11 Apr 15:05 db.sqlite-waldrwxr-xr-x8lukasstaff256B9 Apr 19:53 pipes-rw-r--r--lukasstaff130K9 Apr 21:27 screenpipe.2026-04-09.0.10g-rw-r--r--1 lukasstaff11K 11 Apr 15:05 screenpipe.2026-04-11.0.10gtotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03 .drwxr-xr-x10lukasstaff320B 11 Apr 14:52drwxr-xr-x5lukasstaff160B 11 Apr 14:52datadrwxr-xr-x2lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dbzsh:commandnot 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.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ s -lah ~/.screenpipe/ls -lah ~/.screenpipe/data/ 2>/dev/nullzsh: command not found: stotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B 11 Apr 14:52drwxr-xr-x5 lukasstaff160B 11 Apr 14:52 datadrwxr-xr-x2 lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/nulllukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ find ~/.screenpipe -name "*.db" -path "*screenpipe*" 2>/dev/null/Users/lukas/.screenpipe/data/screenpipe.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zsh$0(ahl• ₴5100% <7• ₴6Sat 11 Apr 15:07:20-zsh181*7DOCKERO ₴1DEV (-zsh)ls-lah ~/.screenpipe/1s-lah ~/.screenpipe/data/ 2>/dev/nullО 882APP (-zsh)• ₴з-zsh• 84-zsh-zsh# Maybeit's in Application Supportfind ~/Library/Application\ Support/-name"*.db"-path"*screenpipe*"2>/dev/nullquote>quote>zsh: command not found: #/Users/lukas/.screenpipe/db.sqlite/Users/lukas/.screenpipe/data/screenpipe.dbzsh: command not found: #total 170384drwxr-xr-x10lukasstaff320B11Apr 14:52drwx----88 lukasstaff2.8K 11Apr 14:53-rw-r--r--1lukasstaff270B9Apr 20:27config. jsondrwxr-xr-x5lukasstaff160B11Apr 15:03datalukasstaff67M 11Apr 15:05db.sqlite-rw-r--r--lukasstaff32K 11Apr14:52db.sqlite-shm-rw-r--r--1lukasstaff16M 11 Apr 15:05 db.sqlite-waldrwxr-xr-x8lukasstaff256B9 Apr 19:53 pipes-rw-r--r--lukasstaff130K9 Apr 21:27 screenpipe.2026-04-09.0.10g-rw-r--r--1 lukasstaff11K 11 Apr 15:05 screenpipe.2026-04-11.0.10gtotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03 .drwxr-xr-x10lukasstaff320B 11 Apr 14:52drwxr-xr-x5lukasstaff160B 11 Apr 14:52datadrwxr-xr-x2lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dbzsh:commandnot 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.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ s -lah ~/.screenpipe/ls -lah ~/.screenpipe/data/ 2>/dev/nullzsh: command not found: stotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B 11 Apr 14:52drwxr-xr-x5 lukasstaff160B 11 Apr 14:52 datadrwxr-xr-x2 lukasstaff64B9 Apr 20:05 pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dblukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/nulllukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ find ~/.screenpipe -name "*.db" -path "*screenpipe*" 2>/dev/null/Users/lukas/.screenpipe/data/screenpipe.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
"pipeline": {
"avg_db_latency_ms "pipeline": {
"avg_db_latency_ms": 333.52475247524757,
"avg_ocr_latency_ms": 0.0,
"capture_fps_actual": 0.22236224861039977,
"frame_drop_rate": 0.0,
"frames_captured": 101,
"frames_db_written": 101,
"frames_dropped": 0,
"ocr_cache_hit_rate": 0.0,
"ocr_queue_depth": 0,
"pipeline_stall_count": 0,
"time_to_first_frame_ms": 901.748,
"uptime_secs": 454.213791375,
"video_queue_depth": 0
},
"pool_stats": {
"read_pool_idle": 7,
"read_pool_size": 7,
"write_pool_idle": 2,
"write_pool_size": 2
},
"schedule_paused": false,
"status": "healthy",
"status_code": 200,
"verbose_instructions": null,
"version": "0.3.278",
"vision_db_write_stalled": false
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "
SELECT app_name, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-1 day')
GROUP BY app_name
ORDER BY frames DESC;
"
Error: in prepare, no such table: frames
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".tables"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".schema"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "SELECT name FROM sqlite_master WHERE type='table';"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Find all sqlite/db files screenpipe created
find ~/.screenpipe -name "*.db" -o -name "*.sqlite" 2>/dev/null
# Check what files exist at all
ls -lah ~/.screenpipe/
ls -lah ~/.screenpipe/data/ 2>/dev/null
# Maybe it's in Application Support
find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/null
quote>
quote> '
zsh: command not found: #
/Users/lukas/.screenpipe/db.sqlite
/Users/lukas/.screenpipe/data/screenpipe.db
zsh: command not found: #
total 170384
drwxr-xr-x 10 lukas staff 320B 11 Apr 14:52 .
drwx------+ 88 lukas staff 2.8K 11 Apr 14:53 ..
-rw-r--r-- 1 lukas staff 270B 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160B 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 67M 11 Apr 15:05 db.sqlite
-rw-r--r-- 1 lukas staff 32K 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 16M 11 Apr 15:05 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256B 9 Apr 19:53 pipes
-rw-r--r-- 1 lukas staff 130K 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 11K 11 Apr 15:05 screenpipe.2026-04-11.0.log
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
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 $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
"pipeline": {
"avg_db_latency_ms "pipeline": {
"avg_db_latency_ms": 333.52475247524757,
"avg_ocr_latency_ms": 0.0,
"capture_fps_actual": 0.22236224861039977,
"frame_drop_rate": 0.0,
"frames_captured": 101,
"frames_db_written": 101,
"frames_dropped": 0,
"ocr_cache_hit_rate": 0.0,
"ocr_queue_depth": 0,
"pipeline_stall_count": 0,
"time_to_first_frame_ms": 901.748,
"uptime_secs": 454.213791375,
"video_queue_depth": 0
},
"pool_stats": {
"read_pool_idle": 7,
"read_pool_size": 7,
"write_pool_idle": 2,
"write_pool_size": 2
},
"schedule_paused": false,
"status": "healthy",
"status_code": 200,
"verbose_instructions": null,
"version": "0.3.278",
"vision_db_write_stalled": false
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "
SELECT app_name, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-1 day')
GROUP BY app_name
ORDER BY frames DESC;
"
Error: in prepare, no such table: frames
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".tables"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".schema"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "SELECT name FROM sqlite_master WHERE type='table';"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Find all sqlite/db files screenpipe created
find ~/.screenpipe -name "*.db" -o -name "*.sqlite" 2>/dev/null
# Check what files exist at all
ls -lah ~/.screenpipe/
ls -lah ~/.screenpipe/data/ 2>/dev/null
# Maybe it's in Application Support
find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/null
quote>
quote> '
zsh: command not found: #
/Users/lukas/.screenpipe/db.sqlite
/Users/lukas/.screenpipe/data/screenpipe.db
zsh: command not found: #
total 170384
drwxr-xr-x 10 lukas staff 320B 11 Apr 14:52 .
drwx------+ 88 lukas staff 2.8K 11 Apr 14:53 ..
-rw-r--r-- 1 lukas staff 270B 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160B 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 67M 11 Apr 15:05 db.sqlite
-rw-r--r-- 1 lukas staff 32K 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 16M 11 Apr 15:05 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256B 9 Apr 19:53 pipes
-rw-r--r-- 1 lukas staff 130K 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 11K 11 Apr 15:05 screenpipe.2026-04-11.0.log
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
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"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
"pipeline": {
"avg_db_latency_ms "pipeline": {
"avg_db_latency_ms": 333.52475247524757,
"avg_ocr_latency_ms": 0.0,
"capture_fps_actual": 0.22236224861039977,
"frame_drop_rate": 0.0,
"frames_captured": 101,
"frames_db_written": 101,
"frames_dropped": 0,
"ocr_cache_hit_rate": 0.0,
"ocr_queue_depth": 0,
"pipeline_stall_count": 0,
"time_to_first_frame_ms": 901.748,
"uptime_secs": 454.213791375,
"video_queue_depth": 0
},
"pool_stats": {
"read_pool_idle": 7,
"read_pool_size": 7,
"write_pool_idle": 2,
"write_pool_size": 2
},
"schedule_paused": false,
"status": "healthy",
"status_code": 200,
"verbose_instructions": null,
"version": "0.3.278",
"vision_db_write_stalled": false
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "
SELECT app_name, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-1 day')
GROUP BY app_name
ORDER BY frames DESC;
"
Error: in prepare, no such table: frames
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".tables"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".schema"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "SELECT name FROM sqlite_master WHERE type='table';"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Find all sqlite/db files screenpipe created
find ~/.screenpipe -name "*.db" -o -name "*.sqlite" 2>/dev/null
# Check what files exist at all
ls -lah ~/.screenpipe/
ls -lah ~/.screenpipe/data/ 2>/dev/null
# Maybe it's in Application Support
find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/null
quote>
quote> '
zsh: command not found: #
/Users/lukas/.screenpipe/db.sqlite
/Users/lukas/.screenpipe/data/screenpipe.db
zsh: command not found: #
total 170384
drwxr-xr-x 10 lukas staff 320B 11 Apr 14:52 .
drwx------+ 88 lukas staff 2.8K 11 Apr 14:53 ..
-rw-r--r-- 1 lukas staff 270B 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160B 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 67M 11 Apr 15:05 db.sqlite
-rw-r--r-- 1 lukas staff 32K 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 16M 11 Apr 15:05 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256B 9 Apr 19:53 pipes
-rw-r--r-- 1 lukas staff 130K 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 11K 11 Apr 15:05 screenpipe.2026-04-11.0.log
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
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 $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp-zsh‹ 40lihl• *5100% CS- $868Sat 11 Apr 15:07:31-zshT81*7DOCKERO ₴1DEV (-zsh)• ₴2APP (-zsh)• *3-zsh• x4-zsh-zsh®total 0drwxr-xr-x5lukasstaffdrwxr-xr-x10lukasstaffdrwxr-xr-x5 lukasstaffdrwxr-xr-x2 lukasstaff-rw-r-1lukasstaff160B11 Apr 15:03320B11 Apr 14:52160B 11 Apr 14:52data64B9 Apr 20:05OB 11 Apr 15:03pending-transcriptionsscreenpipe.dbzsh: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.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ s -lah ~/.screenpipe/ls -lah ~/.screenpipe/data/ 2>/dev/nullzsh: command not found: stotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B 11 Apr 14:52drwxr-xr-x5 lukasstaff160B11 Apr 14:52 datadrwxr-xr-x2 lukasstaff64B9 Apr 20:05pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03 screenpipe.dbLukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/nullLukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/.screenpipe -name "*.db" -path "*screenpipe*" 2>/dev/null/Users/lukas/.screenpipe/data/screenpipe.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminnyscreenpip 20525 lukastxt~/.screenpipe $ lsof -p $(pgrep screenpipe) | grep -E "\.dbl\.sqlite"REGscreenpip 20525 lukastxtREG1,[CREDIT_CARD] /Users/lukas/.screenpipe/db.sqlite-shm1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas17uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas22uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas23uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas24uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas25uREGscreenpip 20525 lukas26uREG1,[CREDIT_CARD] /Users/lukas/.screenpipe/db.sqlite-shmscreenpip 20525 lukas27uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas28uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-wal1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas29uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas31uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas33uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas55uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas56uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas57uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas58uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas59uREGscreenpip 20525 lukas60uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlite1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas61uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas62uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-wallukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0I|OOA• 0-zshDOCKERO ₴1DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84-zsh• *5-zshtotal 0drwxr-xr-x5lukasstaffdrwxr-xr-x10lukasstaffdrwxr-xr-x5lukasstaffdrwxr-xr-x2 lukasstaff-rw-r-1lukasstaff160B11 Apr 15:03320B11 Apr 14:52160B 11Apr 14:52data64B9 Apr 20:05pending-transcriptionsOB11 Apr 15:03screenpipe.dbzsh: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.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ s -lah ~/.screenpipe/ls -lah ~/.screenpipe/data/ 2>/dev/nullzsh: command not found: stotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B 11 Apr 14:52drwxr-xr-x5 lukasstaff160B11 Apr 14:52 datadrwxr-xr-x2 lukasstaff64B9 Apr 20:05pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03screenpipe.dbLukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/nullLukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/.screenpipe -name "*.db" -path "*screenpipe*" 2>/dev/null/Users/lukas/.screenpipe/data/screenpipe.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminnyscreenpip 20525 lukastxt~/.screenpipe $ lsof -p $(pgrep screenpipe) | grep -E "\.dbl\. sqlite"REGscreenpip 20525 lukastxtREG1,[CREDIT_CARD] /Users/lukas/.screenpipe/db.sqlite-shm1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas17uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas22uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas23uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas24uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas25uREGscreenpip 20525 lukas26uREG1,[CREDIT_CARD] /Users/lukas/.screenpipe/db.sqlite-shmscreenpip 20525 lukas27uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas28uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-wal1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas29uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas31uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas33uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas55uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas56uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas57uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas58uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas59uREGscreenpip 20525 lukas60uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlite1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas61uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas62uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-wallukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $100% C₴86Sat 11 Apr 15:07:32-zshT81*7+...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp$0• 0-zshDOCKERO ₴1DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84-zsh• *5-zshtotal 0drwxr-xr-x5lukasstaffdrwxr-xr-x10lukasstaffdrwxr-xr-x5lukasstaffdrwxr-xr-x2 lukasstaff-rw-r-1lukasstaff160B11 Apr 15:03320B11 Apr 14:52160B 11Apr 14:52data64B9 Apr 20:05pending-transcriptionsOB11 Apr 15:03screenpipe.dbzsh: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.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ s -lah ~/.screenpipe/ls -lah ~/.screenpipe/data/ 2>/dev/nullzsh: command not found: stotal 0drwxr-xr-x5 lukasstaff160B 11 Apr 15:03drwxr-xr-x10 lukasstaff320B 11 Apr 14:52drwxr-xr-x5 lukasstaff160B11 Apr 14:52 datadrwxr-xr-x2 lukasstaff64B9 Apr 20:05pending-transcriptions-rw-r--r--1 lukasstaffOB 11 Apr 15:03screenpipe.dbLukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/nullLukas®Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ find ~/.screenpipe -name "*.db" -path "*screenpipe*" 2>/dev/null/Users/lukas/.screenpipe/data/screenpipe.dblukas@Lukas-Kovaliks-MacBook-Pro-Jiminnyscreenpip 20525 lukastxt~/.screenpipe $ lsof -p $(pgrep screenpipe) | grep -E "\.dbl\. sqlite"REGscreenpip 20525 lukastxtREG1,[CREDIT_CARD] /Users/lukas/.screenpipe/db.sqlite-shm1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas17uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas22uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas23uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas24uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas25uREGscreenpip 20525 lukas26uREG1,[CREDIT_CARD] /Users/lukas/.screenpipe/db.sqlite-shmscreenpip 20525 lukas27uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas28uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-wal1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas29uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas31uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas33uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas55uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas56uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas57uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas58uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas59uREGscreenpip 20525 lukas60uREG1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlite1,15 70270976220904259 /Users/lukas/.screenpipe/db.sqlitescreenpip 20525 lukas61uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-walscreenpip 20525 lukas62uREG1,15 16533592220914770 /Users/lukas/.screenpipe/db.sqlite-wallukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $100% 147O 886Sat 11 Apr 15:07:45-zshT81*7+...
|
NULL
|
NULL
|
NULL
|
|
"pipeline": {
"avg_db_latency_ms "pipeline": {
"avg_db_latency_ms": 333.52475247524757,
"avg_ocr_latency_ms": 0.0,
"capture_fps_actual": 0.22236224861039977,
"frame_drop_rate": 0.0,
"frames_captured": 101,
"frames_db_written": 101,
"frames_dropped": 0,
"ocr_cache_hit_rate": 0.0,
"ocr_queue_depth": 0,
"pipeline_stall_count": 0,
"time_to_first_frame_ms": 901.748,
"uptime_secs": 454.213791375,
"video_queue_depth": 0
},
"pool_stats": {
"read_pool_idle": 7,
"read_pool_size": 7,
"write_pool_idle": 2,
"write_pool_size": 2
},
"schedule_paused": false,
"status": "healthy",
"status_code": 200,
"verbose_instructions": null,
"version": "0.3.278",
"vision_db_write_stalled": false
}
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "
SELECT app_name, COUNT(*) as frames
FROM frames
WHERE date(timestamp) = date('now', '-1 day')
GROUP BY app_name
ORDER BY frames DESC;
"
Error: in prepare, no such table: frames
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".tables"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db ".schema"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/data/screenpipe.db "SELECT name FROM sqlite_master WHERE type='table';"
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ # Find all sqlite/db files screenpipe created
find ~/.screenpipe -name "*.db" -o -name "*.sqlite" 2>/dev/null
# Check what files exist at all
ls -lah ~/.screenpipe/
ls -lah ~/.screenpipe/data/ 2>/dev/null
# Maybe it's in Application Support
find ~/Library/Application\ Support/ -name "*.db" -path "*screenpipe*" 2>/dev/null
quote>
quote> '
zsh: command not found: #
/Users/lukas/.screenpipe/db.sqlite
/Users/lukas/.screenpipe/data/screenpipe.db
zsh: command not found: #
total 170384
drwxr-xr-x 10 lukas staff 320B 11 Apr 14:52 .
drwx------+ 88 lukas staff 2.8K 11 Apr 14:53 ..
-rw-r--r-- 1 lukas staff 270B 9 Apr 20:27 config.json
drwxr-xr-x 5 lukas staff 160B 11 Apr 15:03 data
-rw-r--r-- 1 lukas staff 67M 11 Apr 15:05 db.sqlite
-rw-r--r-- 1 lukas staff 32K 11 Apr 14:52 db.sqlite-shm
-rw-r--r-- 1 lukas staff 16M 11 Apr 15:05 db.sqlite-wal
drwxr-xr-x 8 lukas staff 256B 9 Apr 19:53 pipes
-rw-r--r-- 1 lukas staff 130K 9 Apr 21:27 screenpipe.2026-04-09.0.log
-rw-r--r-- 1 lukas staff 11K 11 Apr 15:05 screenpipe.2026-04-11.0.log
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
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 $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
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"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
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
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp40lhl-zshDOCKER• ₴1DEV (-zsh)-O $2APP (-zsh)• *3-zsh• 84lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite ".tables"_sqlx_migrationsmeetingsaudio_chunksmemoriesaudio_tagsmemories_ftsaudio_transcriptionsaudio_transcriptions_ftsmemories_fts_configmemories_fts_dataaudio_transcriptions_fts_configmemories_fts_docsizeaudio_transcriptions_fts_dataaudio_transcriptions_fts_docsizememories_fts_idxaudio_transcriptions_fts_idxocr_textpipe_executionselementselements_ftspipe_scheduler_statespeaker_embeddingselements_fts_configspeakerselements_fts_datatagselements_fts_docsizeui_eventselements_fts_idxui_events_ftsframesui_events_fts_configframes_ftsframes_fts_configui_events_fts_dataui_events_fts_docsizeframes_fts_contentui_events_fts_idxframes_fts_datavideo_chunksframes_fts_docsizeframes_fts_idxvision_tagslukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $|-zsh• 85-zsh100% CSat 11 Apr 15:08:18T81• ÷6-zsh*7...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindovDOC iTerm2ShellEditViewSessionScriptsProfilesWindovDOCKERO ₴1DEV (-zsh)-О 882APP (-zsllukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite_sqlx_migrationsmeetingsaudio_chunksmemoriesaudio_tagsmemories_ftsaudio_transcriptionsaudio_transcriptions_ftsmemories_fts_configmemories_fts_dataaudio_transcriptions_fts_configmemories_fts_docsizeaudio_transcriptions_fts_dataaudio_transcriptions_fts_docsizememories_fts_idxaudio_transcriptions_fts_idxocr_textpipe_executionselementselements_ftspipe_scheduler_statespeaker_embeddingselements_fts_configspeakerselements_fts_datatagselements_fts_docsizeelements_fts_idxui_eventsui_events_ftsframesui_events_fts_configframes_ftsframes_fts_configui_events_fts_dataui_events_fts_docsizeframes_fts_contentui_events_fts_idxframes_fts_datavideo_chunksframes_fts_docsizevision_tagsframes_fts_idxlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ 0...
|
NULL
|
NULL
|
NULL
|
|
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
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
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 $ sqlite3 ~/.screenpipe/db.sqlite ".schema"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
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 $ sqlite3 ~/.screenpipe/db.sqlite ".schema"
CREATE TABLE _sqlx_migrations (
version BIGINT PRIMARY KEY,
description TEXT NOT NULL,
installed_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
success BOOLEAN NOT NULL,
checksum BLOB NOT NULL,
execution_time BIGINT NOT NULL
);
CREATE TABLE video_chunks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL
, device_name TEXT NOT NULL DEFAULT '', sync_id TEXT, machine_id TEXT, synced_at DATETIME, fps REAL NOT NULL DEFAULT 0.5, cloud_blob_id TEXT DEFAULT NULL);
CREATE TABLE sqlite_sequence(name,seq);
CREATE TABLE audio_chunks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL
, timestamp TIMESTAMP, sync_id TEXT, machine_id TEXT, synced_at DATETIME);
CREATE INDEX idx_audio_chunks_timestamp ON audio_chunks(timestamp);
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 TABLE tags (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE vision_tags (
vision_id INTEGER NOT NULL,
tag_id INTEGER NOT NULL,
PRIMARY KEY (vision_id, tag_id),
FOREIGN KEY (vision_id) REFERENCES frames(id) ON DELETE CASCADE,
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
);
CREATE TABLE audio_tags (
audio_chunk_id INTEGER NOT NULL,
tag_id INTEGER NOT NULL,
PRIMARY KEY (audio_chunk_id, tag_id),
FOREIGN KEY (audio_chunk_id) REFERENCES audio_chunks(id) ON DELETE CASCADE,
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
);
CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id);
CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id);
CREATE INDEX idx_audio_tags_audio_chunk_id ON audio_tags(audio_chunk_id);
CREATE INDEX idx_audio_tags_tag_id ON audio_tags(tag_id);
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 TABLE speakers (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
metadata JSON
, hallucination BOOLEAN DEFAULT FALSE, centroid FLOAT[512], embedding_count INTEGER DEFAULT 0);
CREATE TABLE speaker_embeddings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
embedding FLOAT[512] NOT NULL
check(
typeof(embedding) == 'blob'
and vec_length(embedding) == 512
),
speaker_id INTEGER REFERENCES speakers(id)
);
CREATE TABLE IF NOT EXISTS "audio_transcriptions" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
audio_chunk_id INTEGER NOT NULL,
offset_index INTEGER NOT NULL,
timestamp TIMESTAMP NOT NULL,
transcription TEXT NOT NULL,
device TEXT NOT NULL DEFAULT '',
is_input_device BOOLEAN NOT NULL DEFAULT TRUE,
speaker_id INTEGER,
transcription_engine TEXT NOT NULL DEFAULT 'Whisper', start_time REAL, end_time REAL, text_length INTEGER, sync_id TEXT, synced_at DATETIME,
FOREIGN KEY (audio_chunk_id) REFERENCES audio_chunks(id)
);
CREATE INDEX idx_audio_transcriptions_audio_chunk_id_timestamp ON audio_transcriptions(audio_chunk_id, timestamp);
CREATE INDEX idx_audio_transcriptions_audio_chunk_id ON audio_transcriptions(audio_chunk_id);
CREATE INDEX idx_audio_transcriptions_timestamp ON audio_transcriptions(timestamp);
CREATE INDEX idx_audio_transcriptions_transcription ON audio_transcriptions(transcription);
CREATE INDEX idx_ocr_text_length ON ocr_text (text_length);
CREATE INDEX idx_audio_transcriptions_length ON audio_transcriptions (text_length);
CREATE TABLE ui_events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
session_id TEXT,
relative_ms INTEGER NOT NULL DEFAULT 0,
event_type TEXT NOT NULL, -- click, move, scroll, key, text, app_switch, window_focus, clipboard
-- Position
x INTEGER,
y INTEGER,
delta_x INTEGER,
delta_y INTEGER,
-- Mouse/key
button INTEGER,
click_count INTEGER,
key_code INTEGER,
modifiers INTEGER,
-- Text content
text_content TEXT,
text_length INTEGER,
-- App context
app_name TEXT,
app_pid INTEGER,
window_title TEXT,
browser_url TEXT,
-- Element context (from accessibility APIs)
element_role TEXT,
element_name TEXT,
element_value TEXT,
element_description TEXT,
element_automation_id TEXT,
element_bounds TEXT, -- JSON: {"x":0,"y":0,"width":100,"height":50}
-- Frame correlation
frame_id INTEGER,
-- Sync columns
sync_id TEXT,
machine_id TEXT,
synced_at DATETIME
);
CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX idx_ui_events_event_type ON ui_events(event_type);
CREATE INDEX idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX idx_ui_events_session_id ON ui_events(session_id);
CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id);
CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at);
CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL;
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
/* ui_events_fts(text_content,app_name,window_title,element_name) */;
CREATE TABLE IF NOT EXISTS 'ui_events_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'ui_events_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'ui_events_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'ui_events_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER ui_events_ad AFTER DELETE ON ui_events BEGIN
INSERT INTO ui_events_fts(ui_events_fts, rowid, text_content, app_name, window_title, element_name)
VALUES('delete', OLD.id, OLD.text_content, OLD.app_name, OLD.window_title, OLD.element_name);
END;
CREATE TRIGGER ui_events_au AFTER UPDATE ON ui_events BEGIN
INSERT INTO ui_events_fts(ui_events_fts, rowid, text_content, app_name, window_title, element_name)
VALUES('delete', OLD.id, OLD.text_content, OLD.app_name, OLD.window_title, OLD.element_name);
INSERT INTO ui_events_fts(rowid, text_content, app_name, window_title, element_name)
VALUES (NEW.id, NEW.text_content, NEW.app_name, NEW.window_title, NEW.element_name);
END;
CREATE UNIQUE INDEX idx_audio_transcription_chunk_text
ON audio_transcriptions(audio_chunk_id, transcription);
CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name);
CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC);
CREATE TABLE pipe_executions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
pipe_name TEXT NOT NULL,
status TEXT NOT NULL DEFAULT 'queued',
trigger_type TEXT NOT NULL DEFAULT 'manual',
pid INTEGER,
model TEXT,
provider TEXT,
started_at TEXT,
finished_at TEXT,
stdout TEXT DEFAULT '',
stderr TEXT DEFAULT '',
exit_code INTEGER,
error_type TEXT,
error_message TEXT,
duration_ms INTEGER
, session_path TEXT);
CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status);
CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running';
CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC);
CREATE TABLE pipe_scheduler_state (
pipe_name TEXT PRIMARY KEY,
last_run_at TEXT,
last_success_at TEXT,
consecutive_failures INTEGER DEFAULT 0
);
CREATE TABLE IF NOT EXISTS "frames" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
video_chunk_id INTEGER DEFAULT NULL,
offset_index INTEGER NOT NULL DEFAULT 0,
timestamp TIMESTAMP NOT NULL,
name TEXT,
app_name TEXT DEFAULT NULL,
window_name TEXT DEFAULT NULL,
focused BOOLEAN DEFAULT NULL,
browser_url TEXT DEFAULT NULL,
device_name TEXT NOT NULL DEFAULT '',
sync_id TEXT,
machine_id TEXT,
synced_at DATETIME,
-- New event-driven capture columns
snapshot_path TEXT DEFAULT NULL,
accessibility_text TEXT DEFAULT NULL,
accessibility_tree_json TEXT DEFAULT NULL,
content_hash INTEGER DEFAULT NULL,
simhash INTEGER DEFAULT NULL,
capture_trigger TEXT DEFAULT NULL,
text_source TEXT DEFAULT NULL, cloud_blob_id TEXT DEFAULT NULL, full_text TEXT DEFAULT NULL, elements_ref_frame_id INTEGER DEFAULT NULL,
FOREIGN KEY (video_chunk_id) REFERENCES video_chunks(id)
);
CREATE INDEX idx_frames_timestamp ON frames(timestamp);
CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name);
CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL;
CREATE TRIGGER ui_events_ai AFTER INSERT ON ui_events BEGIN
INSERT OR IGNORE INTO ui_events_fts(rowid, text_content, app_name, window_title, element_name)
VALUES (NEW.id, NEW.text_content, NEW.app_name, NEW.window_title, NEW.element_name);
END;
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);
CREATE TABLE elements (
id INTEGER PRIMARY KEY AUTOINCREMENT,
frame_id INTEGER NOT NULL,
source TEXT NOT NULL, -- 'ocr' | 'accessibility'
role TEXT NOT NULL, -- OCR: 'page','block','paragraph','line','word'
-- AX: 'AXButton','AXTextField','AXStaticText', etc.
text TEXT, -- element text content (NULL for container nodes)
parent_id INTEGER, -- self-referential FK for tree hierarchy (NULL = root)
depth INTEGER NOT NULL DEFAULT 0, -- tree depth (0 = root)
left_bound REAL, -- normalized 0-1 bounding box
top_bound REAL,
width_bound REAL,
height_bound REAL,
confidence REAL, -- OCR confidence (0-100), NULL for AX
sort_order INTEGER NOT NULL DEFAULT 0, properties TEXT, -- sibling order within parent
FOREIGN KEY (frame_id) REFERENCES frames(id),
FOREIGN KEY (parent_id) REFERENCES elements(id)
);
CREATE INDEX idx_elements_frame_id ON elements(frame_id);
CREATE INDEX idx_elements_parent_id ON elements(parent_id);
CREATE INDEX idx_elements_source ON elements(source);
CREATE INDEX idx_elements_frame_source ON elements(frame_id, source);
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
/* elements_fts(text,role,frame_id) */;
CREATE TABLE IF NOT EXISTS 'elements_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'elements_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'elements_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'elements_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER elements_ai AFTER INSERT ON elements
WHEN NEW.text IS NOT NULL AND NEW.text != ''
BEGIN
INSERT INTO elements_fts(rowid, text, role, frame_id)
VALUES (NEW.id, NEW.text, NEW.role, NEW.frame_id);
END;
CREATE TRIGGER elements_ad AFTER DELETE ON elements
WHEN OLD.text IS NOT NULL AND OLD.text != ''
BEGIN
INSERT INTO elements_fts(elements_fts, rowid, text, role, frame_id)
VALUES ('delete', OLD.id, OLD.text, OLD.role, OLD.frame_id);
END;
CREATE TRIGGER elements_au AFTER UPDATE ON elements
WHEN OLD.text IS NOT NULL AND OLD.text != ''
BEGIN
INSERT INTO elements_fts(elements_fts, rowid, text, role, frame_id)
VALUES ('delete', OLD.id, OLD.text, OLD.role, OLD.frame_id);
INSERT INTO elements_fts(rowid, text, role, frame_id)
VALUES (NEW.id, NEW.text, NEW.role, NEW.frame_id);
END;
CREATE VIRTUAL TABLE audio_transcriptions_fts USING fts5(
transcription,
device,
speaker_id,
content='audio_transcriptions',
content_rowid='id',
tokenize='unicode61'
)
/* audio_transcriptions_fts(transcription,device,speaker_id) */;
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER audio_transcriptions_ai AFTER INSERT ON audio_transcriptions
WHEN NEW.transcription IS NOT NULL AND NEW.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(rowid, transcription, device, speaker_id)
VALUES (NEW.id, NEW.transcription, COALESCE(NEW.device, ''), NEW.speaker_id);
END;
CREATE TRIGGER audio_transcriptions_delete AFTER DELETE ON audio_transcriptions
WHEN OLD.transcription IS NOT NULL AND OLD.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(audio_transcriptions_fts, rowid, transcription, device, speaker_id)
VALUES ('delete', OLD.id, OLD.transcription, COALESCE(OLD.device, ''), OLD.speaker_id);
END;
CREATE TRIGGER audio_transcriptions_update AFTER UPDATE ON audio_transcriptions
WHEN OLD.transcription IS NOT NULL AND OLD.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(audio_transcriptions_fts, rowid, transcription, device, speaker_id)
VALUES ('delete', OLD.id, OLD.transcription, COALESCE(OLD.device, ''), OLD.speaker_id);
INSERT INTO audio_transcriptions_fts(rowid, transcription, device, speaker_id)
VALUES (NEW.id, COALESCE(NEW.transcription, ''), COALESCE(NEW.device, ''), NEW.speaker_id);
END;
CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL;
CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL;
CREATE TABLE memories (
id INTEGER PRIMARY KEY AUTOINCREMENT,
content TEXT NOT NULL,
source TEXT NOT NULL DEFAULT 'user',
source_context TEXT,
tags TEXT DEFAULT '[]',
importance REAL DEFAULT 0.5,
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
, frame_id INTEGER REFERENCES frames(id) ON DELETE SET NULL);
CREATE INDEX idx_memories_created_at ON memories(created_at);
CREATE INDEX idx_memories_importance ON memories(importance DESC);
CREATE INDEX idx_memories_source ON memories(source);
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
/* memories_fts(content,tags) */;
CREATE TABLE IF NOT EXISTS 'memories_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'memories_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'memories_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'memories_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER memories_ai AFTER INSERT ON memories
WHEN NEW.content IS NOT NULL AND NEW.content != ''
BEGIN
INSERT INTO memories_fts(rowid, content, tags)
VALUES (NEW.id, NEW.content, COALESCE(NEW.tags, ''));
END;
CREATE TRIGGER memories_ad AFTER DELETE ON memories
WHEN OLD.content IS NOT NULL AND OLD.content != ''
BEGIN
INSERT INTO memories_fts(memories_fts, rowid, content, tags)
VALUES ('delete', OLD.id, OLD.content, COALESCE(OLD.tags, ''));
END;
CREATE TRIGGER memories_au AFTER UPDATE ON memories
WHEN OLD.content IS NOT NULL AND OLD.content != ''
BEGIN
INSERT INTO memories_fts(memories_fts, rowid, content, tags)
VALUES ('delete', OLD.id, OLD.content, COALESCE(OLD.tags, ''));
INSERT INTO memories_fts(rowid, content, tags)
VALUES (NEW.id, COALESCE(NEW.content, ''), COALESCE(NEW.tags, ''));
END;
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
id UNINDEXED,
tokenize='unicode61'
)
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
iTerm2ShellEdit ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit ViewSessionScriptsProfilesWindowHelpr,o l•0100% <-zshDOCKERO ₴1tokenize='unicode61'DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84/* frames_fts(full_text,app_name, window_name,browser_url, id) */;CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, CO, c1, c2, с3, с4);CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;CREATE TRIGGER frames_ai AFTER INSERT ON framesWHEN NEW.full_text IS NOT NULL AND NEW.full_text != "*BEGININSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)VALUES (NEW.id,NEW.full_text,COALESCE(NEW.app_name,"'),COALESCE(NEW.window_name,COALESCECNEW.browser_url,-zsh• *5-zshSat 11 Apr 15:08:32-zshT81X7);END;CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON framesBEGINDELETE FROM frames_fts WHERE id = OLD.id;INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)SELECTNEW. id,COALESCECNEW.full_text,"*),COALESCE(NEW.app_name,"*),COALESCE(NEW.window_name,"'),COALESCE(NEW.browser_url,"*)WHERE NEW.full_text IS NOT NULL AND NEW.full_text != "*;END;BEGINCREATE TRIGGER frames_ad AFTER DELETE ON framesDELETE FROM frames_fts WHERE id = OLD.id;END;CREATE INDEX idx_memories_frame_id ON memories(frame_id);CREATE INDEX idx_elements_source_role_textON elements(source, role, frame_id)WHERE text IS NOT NULL;CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindo iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp-zshDOCKERO ₴1tokenize='unicode61'DEV (-zsh)• $2APP (-zsh)• *3-zsh• x4/* frames_fts(full_text,app_name, window_name,browser_url, id) */;CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, cO, c1, c2, с3, c4);CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;CREATE TRIGGER frames_ai AFTER INSERT ON framesWHEN NEW.full_text IS NOT NULL AND NEW.full_text != "'BEGININSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)VALUES (NEW.id,NEW.full_text,COALESCE(NEW.app_name,"'),COALESCE(NEW.window_name,COALESCECNEW.browser_url,-zsh• *5-zsh100% <7₴86Sat 11 Apr 15:08:33-zshT81X7);END;CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON framesBEGINDELETE FROM frames_fts WHERE id = OLD.id;INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)SELECTNEW. id,COALESCECNEW.full_text,"*),COALESCE(NEW.app_name,"*),COALESCE(NEW.window_name,"'),COALESCE(NEW.browser_url,"*)WHERE NEW.full_text IS NOT NULL AND NEW.full_text != "*;END;BEGINCREATE TRIGGER frames_ad AFTER DELETE ON framesDELETE FROM frames_fts WHERE id = OLD.id;END;CREATE INDEX idx_memories_frame_id ON memories(frame_id);CREATE INDEX idx_elements_source_role_textON elements(source, role, frame_id)WHERE text IS NOT NULL;CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindo iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp-zshDOCKERO ₴1tokenize='unicode61'DEV (-zsh)• $2APP (-zsh)• *3-zsh• x4/* frames_fts(full_text,app_name, window_name,browser_url, id) */;CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, cO, c1, c2, с3, c4);CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;CREATE TRIGGER frames_ai AFTER INSERT ON framesWHEN NEW.full_text IS NOT NULL AND NEW.full_text != "'BEGININSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)VALUES (NEW.id,NEW.full_text,COALESCE(NEW.app_name,"'),COALESCE(NEW.window_name,COALESCECNEW.browser_url,-zsh• x5-zsh100% C47O ₴6Sat 11 Apr 15:08:47-zshT81X7);END;CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON framesBEGINDELETE FROM frames_fts WHERE id = OLD.id;INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)SELECTNEW. id,COALESCECNEW.full_text,"*),COALESCE(NEW.app_name,"*),COALESCE(NEW.window_name,"'),COALESCE(NEW.browser_url,"*)WHERE NEW.full_text IS NOT NULL AND NEW.full_text != "*;END;BEGINCREATE TRIGGER frames_ad AFTER DELETE ON framesDELETE FROM frames_fts WHERE id = OLD.id;END;CREATE INDEX idx_memories_frame_id ON memories(frame_id);CREATE INDEX idx_elements_source_role_textON elements(source, role, frame_id)WHERE text IS NOT NULL;CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindo iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp-zshDOCKERO ₴1tokenize='unicode61'DEV (-zsh)• $2APP (-zsh)• *3-zsh• x4/* frames_fts(full_text,app_name, window_name,browser_url, id) */;CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, cO, c1, c2, с3, c4);CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;CREATE TRIGGER frames_ai AFTER INSERT ON framesWHEN NEW.full_text IS NOT NULL AND NEW.full_text != "'BEGININSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)VALUES (NEW.id,NEW.full_text,COALESCE(NEW.app_name,"'),COALESCE(NEW.window_name,COALESCECNEW.browser_url,-zsh• x5-zsh100% CO ₴6Sat 11 Apr 15:08:50-zshT81X7);END;CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON framesBEGINDELETE FROM frames_fts WHERE id = OLD.id;INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)SELECTNEW.id,COALESCECNEW.full_text,"*),COALESCE(NEW.app_name,"*),COALESCE(NEW.window_name,"'),COALESCE(NEW.browser_url,"*)WHERE NEW.full_text IS NOT NULL AND NEW.full_text != "*;END;BEGINCREATE TRIGGER frames_ad AFTER DELETE ON framesDELETE FROM frames_fts WHERE id = OLD.id;END;CREATE INDEX idx_memories_frame_id ON memories(frame_id);CREATE INDEX idx_elements_source_role_textON elements(source, role, frame_id)WHERE text IS NOT NULL;CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindo iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp-zshDOCKERO ₴1tokenize='unicode61'DEV (-zsh)• $2APP (-zsh)• *3-zsh• x4/* frames_fts(full_text,app_name, window_name,browser_url, id) */;CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, cO, c1, c2, с3, c4);CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;CREATE TRIGGER frames_ai AFTER INSERT ON framesWHEN NEW.full_text IS NOT NULL AND NEW.full_text != "'BEGININSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)VALUES (NEW.id,NEW.full_text,COALESCE(NEW.app_name,"'),COALESCE(NEW.window_name,COALESCECNEW.browser_url,-zsh• *5-zsh100% C47O ₴6Sat 11 Apr 15:08:54-zshT81X7);END;CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON framesBEGINDELETE FROM frames_fts WHERE id = OLD.id;INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)SELECTNEW.id,COALESCECNEW.full_text,"*),COALESCE(NEW.app_name,"*),COALESCE(NEW.window_name,"'),COALESCE(NEW.browser_url,"*)WHERE NEW.full_text IS NOT NULL AND NEW.full_text != "*;END;BEGINCREATE TRIGGER frames_ad AFTER DELETE ON framesDELETE FROM frames_fts WHERE id = OLD.id;END;CREATE INDEX idx_memories_frame_id ON memories(frame_id);CREATE INDEX idx_elements_source_role_textON elements(source, role, frame_id)WHERE text IS NOT NULL;CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
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 $ sqlite3 ~/.screenpipe/db.sqlite ".schema"
CREATE TABLE _sqlx_migrations (
version BIGINT PRIMARY KEY,
description TEXT NOT NULL,
installed_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
success BOOLEAN NOT NULL,
checksum BLOB NOT NULL,
execution_time BIGINT NOT NULL
);
CREATE TABLE video_chunks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL
, device_name TEXT NOT NULL DEFAULT '', sync_id TEXT, machine_id TEXT, synced_at DATETIME, fps REAL NOT NULL DEFAULT 0.5, cloud_blob_id TEXT DEFAULT NULL);
CREATE TABLE sqlite_sequence(name,seq);
CREATE TABLE audio_chunks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL
, timestamp TIMESTAMP, sync_id TEXT, machine_id TEXT, synced_at DATETIME);
CREATE INDEX idx_audio_chunks_timestamp ON audio_chunks(timestamp);
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 TABLE tags (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE vision_tags (
vision_id INTEGER NOT NULL,
tag_id INTEGER NOT NULL,
PRIMARY KEY (vision_id, tag_id),
FOREIGN KEY (vision_id) REFERENCES frames(id) ON DELETE CASCADE,
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
);
CREATE TABLE audio_tags (
audio_chunk_id INTEGER NOT NULL,
tag_id INTEGER NOT NULL,
PRIMARY KEY (audio_chunk_id, tag_id),
FOREIGN KEY (audio_chunk_id) REFERENCES audio_chunks(id) ON DELETE CASCADE,
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
);
CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id);
CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id);
CREATE INDEX idx_audio_tags_audio_chunk_id ON audio_tags(audio_chunk_id);
CREATE INDEX idx_audio_tags_tag_id ON audio_tags(tag_id);
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 TABLE speakers (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
metadata JSON
, hallucination BOOLEAN DEFAULT FALSE, centroid FLOAT[512], embedding_count INTEGER DEFAULT 0);
CREATE TABLE speaker_embeddings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
embedding FLOAT[512] NOT NULL
check(
typeof(embedding) == 'blob'
and vec_length(embedding) == 512
),
speaker_id INTEGER REFERENCES speakers(id)
);
CREATE TABLE IF NOT EXISTS "audio_transcriptions" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
audio_chunk_id INTEGER NOT NULL,
offset_index INTEGER NOT NULL,
timestamp TIMESTAMP NOT NULL,
transcription TEXT NOT NULL,
device TEXT NOT NULL DEFAULT '',
is_input_device BOOLEAN NOT NULL DEFAULT TRUE,
speaker_id INTEGER,
transcription_engine TEXT NOT NULL DEFAULT 'Whisper', start_time REAL, end_time REAL, text_length INTEGER, sync_id TEXT, synced_at DATETIME,
FOREIGN KEY (audio_chunk_id) REFERENCES audio_chunks(id)
);
CREATE INDEX idx_audio_transcriptions_audio_chunk_id_timestamp ON audio_transcriptions(audio_chunk_id, timestamp);
CREATE INDEX idx_audio_transcriptions_audio_chunk_id ON audio_transcriptions(audio_chunk_id);
CREATE INDEX idx_audio_transcriptions_timestamp ON audio_transcriptions(timestamp);
CREATE INDEX idx_audio_transcriptions_transcription ON audio_transcriptions(transcription);
CREATE INDEX idx_ocr_text_length ON ocr_text (text_length);
CREATE INDEX idx_audio_transcriptions_length ON audio_transcriptions (text_length);
CREATE TABLE ui_events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
session_id TEXT,
relative_ms INTEGER NOT NULL DEFAULT 0,
event_type TEXT NOT NULL, -- click, move, scroll, key, text, app_switch, window_focus, clipboard
-- Position
x INTEGER,
y INTEGER,
delta_x INTEGER,
delta_y INTEGER,
-- Mouse/key
button INTEGER,
click_count INTEGER,
key_code INTEGER,
modifiers INTEGER,
-- Text content
text_content TEXT,
text_length INTEGER,
-- App context
app_name TEXT,
app_pid INTEGER,
window_title TEXT,
browser_url TEXT,
-- Element context (from accessibility APIs)
element_role TEXT,
element_name TEXT,
element_value TEXT,
element_description TEXT,
element_automation_id TEXT,
element_bounds TEXT, -- JSON: {"x":0,"y":0,"width":100,"height":50}
-- Frame correlation
frame_id INTEGER,
-- Sync columns
sync_id TEXT,
machine_id TEXT,
synced_at DATETIME
);
CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX idx_ui_events_event_type ON ui_events(event_type);
CREATE INDEX idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX idx_ui_events_session_id ON ui_events(session_id);
CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id);
CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at);
CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL;
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
/* ui_events_fts(text_content,app_name,window_title,element_name) */;
CREATE TABLE IF NOT EXISTS 'ui_events_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'ui_events_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'ui_events_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'ui_events_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER ui_events_ad AFTER DELETE ON ui_events BEGIN
INSERT INTO ui_events_fts(ui_events_fts, rowid, text_content, app_name, window_title, element_name)
VALUES('delete', OLD.id, OLD.text_content, OLD.app_name, OLD.window_title, OLD.element_name);
END;
CREATE TRIGGER ui_events_au AFTER UPDATE ON ui_events BEGIN
INSERT INTO ui_events_fts(ui_events_fts, rowid, text_content, app_name, window_title, element_name)
VALUES('delete', OLD.id, OLD.text_content, OLD.app_name, OLD.window_title, OLD.element_name);
INSERT INTO ui_events_fts(rowid, text_content, app_name, window_title, element_name)
VALUES (NEW.id, NEW.text_content, NEW.app_name, NEW.window_title, NEW.element_name);
END;
CREATE UNIQUE INDEX idx_audio_transcription_chunk_text
ON audio_transcriptions(audio_chunk_id, transcription);
CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name);
CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC);
CREATE TABLE pipe_executions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
pipe_name TEXT NOT NULL,
status TEXT NOT NULL DEFAULT 'queued',
trigger_type TEXT NOT NULL DEFAULT 'manual',
pid INTEGER,
model TEXT,
provider TEXT,
started_at TEXT,
finished_at TEXT,
stdout TEXT DEFAULT '',
stderr TEXT DEFAULT '',
exit_code INTEGER,
error_type TEXT,
error_message TEXT,
duration_ms INTEGER
, session_path TEXT);
CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status);
CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running';
CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC);
CREATE TABLE pipe_scheduler_state (
pipe_name TEXT PRIMARY KEY,
last_run_at TEXT,
last_success_at TEXT,
consecutive_failures INTEGER DEFAULT 0
);
CREATE TABLE IF NOT EXISTS "frames" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
video_chunk_id INTEGER DEFAULT NULL,
offset_index INTEGER NOT NULL DEFAULT 0,
timestamp TIMESTAMP NOT NULL,
name TEXT,
app_name TEXT DEFAULT NULL,
window_name TEXT DEFAULT NULL,
focused BOOLEAN DEFAULT NULL,
browser_url TEXT DEFAULT NULL,
device_name TEXT NOT NULL DEFAULT '',
sync_id TEXT,
machine_id TEXT,
synced_at DATETIME,
-- New event-driven capture columns
snapshot_path TEXT DEFAULT NULL,
accessibility_text TEXT DEFAULT NULL,
accessibility_tree_json TEXT DEFAULT NULL,
content_hash INTEGER DEFAULT NULL,
simhash INTEGER DEFAULT NULL,
capture_trigger TEXT DEFAULT NULL,
text_source TEXT DEFAULT NULL, cloud_blob_id TEXT DEFAULT NULL, full_text TEXT DEFAULT NULL, elements_ref_frame_id INTEGER DEFAULT NULL,
FOREIGN KEY (video_chunk_id) REFERENCES video_chunks(id)
);
CREATE INDEX idx_frames_timestamp ON frames(timestamp);
CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name);
CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL;
CREATE TRIGGER ui_events_ai AFTER INSERT ON ui_events BEGIN
INSERT OR IGNORE INTO ui_events_fts(rowid, text_content, app_name, window_title, element_name)
VALUES (NEW.id, NEW.text_content, NEW.app_name, NEW.window_title, NEW.element_name);
END;
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);
CREATE TABLE elements (
id INTEGER PRIMARY KEY AUTOINCREMENT,
frame_id INTEGER NOT NULL,
source TEXT NOT NULL, -- 'ocr' | 'accessibility'
role TEXT NOT NULL, -- OCR: 'page','block','paragraph','line','word'
-- AX: 'AXButton','AXTextField','AXStaticText', etc.
text TEXT, -- element text content (NULL for container nodes)
parent_id INTEGER, -- self-referential FK for tree hierarchy (NULL = root)
depth INTEGER NOT NULL DEFAULT 0, -- tree depth (0 = root)
left_bound REAL, -- normalized 0-1 bounding box
top_bound REAL,
width_bound REAL,
height_bound REAL,
confidence REAL, -- OCR confidence (0-100), NULL for AX
sort_order INTEGER NOT NULL DEFAULT 0, properties TEXT, -- sibling order within parent
FOREIGN KEY (frame_id) REFERENCES frames(id),
FOREIGN KEY (parent_id) REFERENCES elements(id)
);
CREATE INDEX idx_elements_frame_id ON elements(frame_id);
CREATE INDEX idx_elements_parent_id ON elements(parent_id);
CREATE INDEX idx_elements_source ON elements(source);
CREATE INDEX idx_elements_frame_source ON elements(frame_id, source);
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
/* elements_fts(text,role,frame_id) */;
CREATE TABLE IF NOT EXISTS 'elements_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'elements_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'elements_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'elements_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER elements_ai AFTER INSERT ON elements
WHEN NEW.text IS NOT NULL AND NEW.text != ''
BEGIN
INSERT INTO elements_fts(rowid, text, role, frame_id)
VALUES (NEW.id, NEW.text, NEW.role, NEW.frame_id);
END;
CREATE TRIGGER elements_ad AFTER DELETE ON elements
WHEN OLD.text IS NOT NULL AND OLD.text != ''
BEGIN
INSERT INTO elements_fts(elements_fts, rowid, text, role, frame_id)
VALUES ('delete', OLD.id, OLD.text, OLD.role, OLD.frame_id);
END;
CREATE TRIGGER elements_au AFTER UPDATE ON elements
WHEN OLD.text IS NOT NULL AND OLD.text != ''
BEGIN
INSERT INTO elements_fts(elements_fts, rowid, text, role, frame_id)
VALUES ('delete', OLD.id, OLD.text, OLD.role, OLD.frame_id);
INSERT INTO elements_fts(rowid, text, role, frame_id)
VALUES (NEW.id, NEW.text, NEW.role, NEW.frame_id);
END;
CREATE VIRTUAL TABLE audio_transcriptions_fts USING fts5(
transcription,
device,
speaker_id,
content='audio_transcriptions',
content_rowid='id',
tokenize='unicode61'
)
/* audio_transcriptions_fts(transcription,device,speaker_id) */;
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER audio_transcriptions_ai AFTER INSERT ON audio_transcriptions
WHEN NEW.transcription IS NOT NULL AND NEW.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(rowid, transcription, device, speaker_id)
VALUES (NEW.id, NEW.transcription, COALESCE(NEW.device, ''), NEW.speaker_id);
END;
CREATE TRIGGER audio_transcriptions_delete AFTER DELETE ON audio_transcriptions
WHEN OLD.transcription IS NOT NULL AND OLD.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(audio_transcriptions_fts, rowid, transcription, device, speaker_id)
VALUES ('delete', OLD.id, OLD.transcription, COALESCE(OLD.device, ''), OLD.speaker_id);
END;
CREATE TRIGGER audio_transcriptions_update AFTER UPDATE ON audio_transcriptions
WHEN OLD.transcription IS NOT NULL AND OLD.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(audio_transcriptions_fts, rowid, transcription, device, speaker_id)
VALUES ('delete', OLD.id, OLD.transcription, COALESCE(OLD.device, ''), OLD.speaker_id);
INSERT INTO audio_transcriptions_fts(rowid, transcription, device, speaker_id)
VALUES (NEW.id, COALESCE(NEW.transcription, ''), COALESCE(NEW.device, ''), NEW.speaker_id);
END;
CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL;
CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL;
CREATE TABLE memories (
id INTEGER PRIMARY KEY AUTOINCREMENT,
content TEXT NOT NULL,
source TEXT NOT NULL DEFAULT 'user',
source_context TEXT,
tags TEXT DEFAULT '[]',
importance REAL DEFAULT 0.5,
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
, frame_id INTEGER REFERENCES frames(id) ON DELETE SET NULL);
CREATE INDEX idx_memories_created_at ON memories(created_at);
CREATE INDEX idx_memories_importance ON memories(importance DESC);
CREATE INDEX idx_memories_source ON memories(source);
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
/* memories_fts(content,tags) */;
CREATE TABLE IF NOT EXISTS 'memories_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'memories_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'memories_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'memories_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER memories_ai AFTER INSERT ON memories
WHEN NEW.content IS NOT NULL AND NEW.content != ''
BEGIN
INSERT INTO memories_fts(rowid, content, tags)
VALUES (NEW.id, NEW.content, COALESCE(NEW.tags, ''));
END;
CREATE TRIGGER memories_ad AFTER DELETE ON memories
WHEN OLD.content IS NOT NULL AND OLD.content != ''
BEGIN
INSERT INTO memories_fts(memories_fts, rowid, content, tags)
VALUES ('delete', OLD.id, OLD.content, COALESCE(OLD.tags, ''));
END;
CREATE TRIGGER memories_au AFTER UPDATE ON memories
WHEN OLD.content IS NOT NULL AND OLD.content != ''
BEGIN
INSERT INTO memories_fts(memories_fts, rowid, content, tags)
VALUES ('delete', OLD.id, OLD.content, COALESCE(OLD.tags, ''));
INSERT INTO memories_fts(rowid, content, tags)
VALUES (NEW.id, COALESCE(NEW.content, ''), COALESCE(NEW.tags, ''));
END;
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
id UNINDEXED,
tokenize='unicode61'
)
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
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 $ sqlite3 ~/.screenpipe/db.sqlite ".schema"
CREATE TABLE _sqlx_migrations (
version BIGINT PRIMARY KEY,
description TEXT NOT NULL,
installed_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
success BOOLEAN NOT NULL,
checksum BLOB NOT NULL,
execution_time BIGINT NOT NULL
);
CREATE TABLE video_chunks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL
, device_name TEXT NOT NULL DEFAULT '', sync_id TEXT, machine_id TEXT, synced_at DATETIME, fps REAL NOT NULL DEFAULT 0.5, cloud_blob_id TEXT DEFAULT NULL);
CREATE TABLE sqlite_sequence(name,seq);
CREATE TABLE audio_chunks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL
, timestamp TIMESTAMP, sync_id TEXT, machine_id TEXT, synced_at DATETIME);
CREATE INDEX idx_audio_chunks_timestamp ON audio_chunks(timestamp);
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 TABLE tags (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE vision_tags (
vision_id INTEGER NOT NULL,
tag_id INTEGER NOT NULL,
PRIMARY KEY (vision_id, tag_id),
FOREIGN KEY (vision_id) REFERENCES frames(id) ON DELETE CASCADE,
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
);
CREATE TABLE audio_tags (
audio_chunk_id INTEGER NOT NULL,
tag_id INTEGER NOT NULL,
PRIMARY KEY (audio_chunk_id, tag_id),
FOREIGN KEY (audio_chunk_id) REFERENCES audio_chunks(id) ON DELETE CASCADE,
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
);
CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id);
CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id);
CREATE INDEX idx_audio_tags_audio_chunk_id ON audio_tags(audio_chunk_id);
CREATE INDEX idx_audio_tags_tag_id ON audio_tags(tag_id);
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 TABLE speakers (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
metadata JSON
, hallucination BOOLEAN DEFAULT FALSE, centroid FLOAT[512], embedding_count INTEGER DEFAULT 0);
CREATE TABLE speaker_embeddings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
embedding FLOAT[512] NOT NULL
check(
typeof(embedding) == 'blob'
and vec_length(embedding) == 512
),
speaker_id INTEGER REFERENCES speakers(id)
);
CREATE TABLE IF NOT EXISTS "audio_transcriptions" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
audio_chunk_id INTEGER NOT NULL,
offset_index INTEGER NOT NULL,
timestamp TIMESTAMP NOT NULL,
transcription TEXT NOT NULL,
device TEXT NOT NULL DEFAULT '',
is_input_device BOOLEAN NOT NULL DEFAULT TRUE,
speaker_id INTEGER,
transcription_engine TEXT NOT NULL DEFAULT 'Whisper', start_time REAL, end_time REAL, text_length INTEGER, sync_id TEXT, synced_at DATETIME,
FOREIGN KEY (audio_chunk_id) REFERENCES audio_chunks(id)
);
CREATE INDEX idx_audio_transcriptions_audio_chunk_id_timestamp ON audio_transcriptions(audio_chunk_id, timestamp);
CREATE INDEX idx_audio_transcriptions_audio_chunk_id ON audio_transcriptions(audio_chunk_id);
CREATE INDEX idx_audio_transcriptions_timestamp ON audio_transcriptions(timestamp);
CREATE INDEX idx_audio_transcriptions_transcription ON audio_transcriptions(transcription);
CREATE INDEX idx_ocr_text_length ON ocr_text (text_length);
CREATE INDEX idx_audio_transcriptions_length ON audio_transcriptions (text_length);
CREATE TABLE ui_events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
session_id TEXT,
relative_ms INTEGER NOT NULL DEFAULT 0,
event_type TEXT NOT NULL, -- click, move, scroll, key, text, app_switch, window_focus, clipboard
-- Position
x INTEGER,
y INTEGER,
delta_x INTEGER,
delta_y INTEGER,
-- Mouse/key
button INTEGER,
click_count INTEGER,
key_code INTEGER,
modifiers INTEGER,
-- Text content
text_content TEXT,
text_length INTEGER,
-- App context
app_name TEXT,
app_pid INTEGER,
window_title TEXT,
browser_url TEXT,
-- Element context (from accessibility APIs)
element_role TEXT,
element_name TEXT,
element_value TEXT,
element_description TEXT,
element_automation_id TEXT,
element_bounds TEXT, -- JSON: {"x":0,"y":0,"width":100,"height":50}
-- Frame correlation
frame_id INTEGER,
-- Sync columns
sync_id TEXT,
machine_id TEXT,
synced_at DATETIME
);
CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX idx_ui_events_event_type ON ui_events(event_type);
CREATE INDEX idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX idx_ui_events_session_id ON ui_events(session_id);
CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id);
CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at);
CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL;
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
/* ui_events_fts(text_content,app_name,window_title,element_name) */;
CREATE TABLE IF NOT EXISTS 'ui_events_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'ui_events_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'ui_events_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'ui_events_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER ui_events_ad AFTER DELETE ON ui_events BEGIN
INSERT INTO ui_events_fts(ui_events_fts, rowid, text_content, app_name, window_title, element_name)
VALUES('delete', OLD.id, OLD.text_content, OLD.app_name, OLD.window_title, OLD.element_name);
END;
CREATE TRIGGER ui_events_au AFTER UPDATE ON ui_events BEGIN
INSERT INTO ui_events_fts(ui_events_fts, rowid, text_content, app_name, window_title, element_name)
VALUES('delete', OLD.id, OLD.text_content, OLD.app_name, OLD.window_title, OLD.element_name);
INSERT INTO ui_events_fts(rowid, text_content, app_name, window_title, element_name)
VALUES (NEW.id, NEW.text_content, NEW.app_name, NEW.window_title, NEW.element_name);
END;
CREATE UNIQUE INDEX idx_audio_transcription_chunk_text
ON audio_transcriptions(audio_chunk_id, transcription);
CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name);
CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC);
CREATE TABLE pipe_executions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
pipe_name TEXT NOT NULL,
status TEXT NOT NULL DEFAULT 'queued',
trigger_type TEXT NOT NULL DEFAULT 'manual',
pid INTEGER,
model TEXT,
provider TEXT,
started_at TEXT,
finished_at TEXT,
stdout TEXT DEFAULT '',
stderr TEXT DEFAULT '',
exit_code INTEGER,
error_type TEXT,
error_message TEXT,
duration_ms INTEGER
, session_path TEXT);
CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status);
CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running';
CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC);
CREATE TABLE pipe_scheduler_state (
pipe_name TEXT PRIMARY KEY,
last_run_at TEXT,
last_success_at TEXT,
consecutive_failures INTEGER DEFAULT 0
);
CREATE TABLE IF NOT EXISTS "frames" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
video_chunk_id INTEGER DEFAULT NULL,
offset_index INTEGER NOT NULL DEFAULT 0,
timestamp TIMESTAMP NOT NULL,
name TEXT,
app_name TEXT DEFAULT NULL,
window_name TEXT DEFAULT NULL,
focused BOOLEAN DEFAULT NULL,
browser_url TEXT DEFAULT NULL,
device_name TEXT NOT NULL DEFAULT '',
sync_id TEXT,
machine_id TEXT,
synced_at DATETIME,
-- New event-driven capture columns
snapshot_path TEXT DEFAULT NULL,
accessibility_text TEXT DEFAULT NULL,
accessibility_tree_json TEXT DEFAULT NULL,
content_hash INTEGER DEFAULT NULL,
simhash INTEGER DEFAULT NULL,
capture_trigger TEXT DEFAULT NULL,
text_source TEXT DEFAULT NULL, cloud_blob_id TEXT DEFAULT NULL, full_text TEXT DEFAULT NULL, elements_ref_frame_id INTEGER DEFAULT NULL,
FOREIGN KEY (video_chunk_id) REFERENCES video_chunks(id)
);
CREATE INDEX idx_frames_timestamp ON frames(timestamp);
CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name);
CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL;
CREATE TRIGGER ui_events_ai AFTER INSERT ON ui_events BEGIN
INSERT OR IGNORE INTO ui_events_fts(rowid, text_content, app_name, window_title, element_name)
VALUES (NEW.id, NEW.text_content, NEW.app_name, NEW.window_title, NEW.element_name);
END;
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);
CREATE TABLE elements (
id INTEGER PRIMARY KEY AUTOINCREMENT,
frame_id INTEGER NOT NULL,
source TEXT NOT NULL, -- 'ocr' | 'accessibility'
role TEXT NOT NULL, -- OCR: 'page','block','paragraph','line','word'
-- AX: 'AXButton','AXTextField','AXStaticText', etc.
text TEXT, -- element text content (NULL for container nodes)
parent_id INTEGER, -- self-referential FK for tree hierarchy (NULL = root)
depth INTEGER NOT NULL DEFAULT 0, -- tree depth (0 = root)
left_bound REAL, -- normalized 0-1 bounding box
top_bound REAL,
width_bound REAL,
height_bound REAL,
confidence REAL, -- OCR confidence (0-100), NULL for AX
sort_order INTEGER NOT NULL DEFAULT 0, properties TEXT, -- sibling order within parent
FOREIGN KEY (frame_id) REFERENCES frames(id),
FOREIGN KEY (parent_id) REFERENCES elements(id)
);
CREATE INDEX idx_elements_frame_id ON elements(frame_id);
CREATE INDEX idx_elements_parent_id ON elements(parent_id);
CREATE INDEX idx_elements_source ON elements(source);
CREATE INDEX idx_elements_frame_source ON elements(frame_id, source);
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
/* elements_fts(text,role,frame_id) */;
CREATE TABLE IF NOT EXISTS 'elements_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'elements_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'elements_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'elements_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER elements_ai AFTER INSERT ON elements
WHEN NEW.text IS NOT NULL AND NEW.text != ''
BEGIN
INSERT INTO elements_fts(rowid, text, role, frame_id)
VALUES (NEW.id, NEW.text, NEW.role, NEW.frame_id);
END;
CREATE TRIGGER elements_ad AFTER DELETE ON elements
WHEN OLD.text IS NOT NULL AND OLD.text != ''
BEGIN
INSERT INTO elements_fts(elements_fts, rowid, text, role, frame_id)
VALUES ('delete', OLD.id, OLD.text, OLD.role, OLD.frame_id);
END;
CREATE TRIGGER elements_au AFTER UPDATE ON elements
WHEN OLD.text IS NOT NULL AND OLD.text != ''
BEGIN
INSERT INTO elements_fts(elements_fts, rowid, text, role, frame_id)
VALUES ('delete', OLD.id, OLD.text, OLD.role, OLD.frame_id);
INSERT INTO elements_fts(rowid, text, role, frame_id)
VALUES (NEW.id, NEW.text, NEW.role, NEW.frame_id);
END;
CREATE VIRTUAL TABLE audio_transcriptions_fts USING fts5(
transcription,
device,
speaker_id,
content='audio_transcriptions',
content_rowid='id',
tokenize='unicode61'
)
/* audio_transcriptions_fts(transcription,device,speaker_id) */;
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER audio_transcriptions_ai AFTER INSERT ON audio_transcriptions
WHEN NEW.transcription IS NOT NULL AND NEW.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(rowid, transcription, device, speaker_id)
VALUES (NEW.id, NEW.transcription, COALESCE(NEW.device, ''), NEW.speaker_id);
END;
CREATE TRIGGER audio_transcriptions_delete AFTER DELETE ON audio_transcriptions
WHEN OLD.transcription IS NOT NULL AND OLD.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(audio_transcriptions_fts, rowid, transcription, device, speaker_id)
VALUES ('delete', OLD.id, OLD.transcription, COALESCE(OLD.device, ''), OLD.speaker_id);
END;
CREATE TRIGGER audio_transcriptions_update AFTER UPDATE ON audio_transcriptions
WHEN OLD.transcription IS NOT NULL AND OLD.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(audio_transcriptions_fts, rowid, transcription, device, speaker_id)
VALUES ('delete', OLD.id, OLD.transcription, COALESCE(OLD.device, ''), OLD.speaker_id);
INSERT INTO audio_transcriptions_fts(rowid, transcription, device, speaker_id)
VALUES (NEW.id, COALESCE(NEW.transcription, ''), COALESCE(NEW.device, ''), NEW.speaker_id);
END;
CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL;
CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL;
CREATE TABLE memories (
id INTEGER PRIMARY KEY AUTOINCREMENT,
content TEXT NOT NULL,
source TEXT NOT NULL DEFAULT 'user',
source_context TEXT,
tags TEXT DEFAULT '[]',
importance REAL DEFAULT 0.5,
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
, frame_id INTEGER REFERENCES frames(id) ON DELETE SET NULL);
CREATE INDEX idx_memories_created_at ON memories(created_at);
CREATE INDEX idx_memories_importance ON memories(importance DESC);
CREATE INDEX idx_memories_source ON memories(source);
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
/* memories_fts(content,tags) */;
CREATE TABLE IF NOT EXISTS 'memories_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'memories_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'memories_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'memories_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER memories_ai AFTER INSERT ON memories
WHEN NEW.content IS NOT NULL AND NEW.content != ''
BEGIN
INSERT INTO memories_fts(rowid, content, tags)
VALUES (NEW.id, NEW.content, COALESCE(NEW.tags, ''));
END;
CREATE TRIGGER memories_ad AFTER DELETE ON memories
WHEN OLD.content IS NOT NULL AND OLD.content != ''
BEGIN
INSERT INTO memories_fts(memories_fts, rowid, content, tags)
VALUES ('delete', OLD.id, OLD.content, COALESCE(OLD.tags, ''));
END;
CREATE TRIGGER memories_au AFTER UPDATE ON memories
WHEN OLD.content IS NOT NULL AND OLD.content != ''
BEGIN
INSERT INTO memories_fts(memories_fts, rowid, content, tags)
VALUES ('delete', OLD.id, OLD.content, COALESCE(OLD.tags, ''));
INSERT INTO memories_fts(rowid, content, tags)
VALUES (NEW.id, COALESCE(NEW.content, ''), COALESCE(NEW.tags, ''));
END;
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
id UNINDEXED,
tokenize='unicode61'
)
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
iTerm2ShellEdit ViewSessionScriptsProfilesWindowHe iTerm2ShellEdit ViewSessionScriptsProfilesWindowHelp-zshDOCKERO ₴1tokenize='unicode61'DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84/* frames_fts(full_text,app_name, window_name,browser_url, id) */;CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, CO, c1, c2, с3, с4);CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;CREATE TRIGGER frames_ai AFTER INSERT ON framesWHEN NEW.full_text IS NOT NULL AND NEW.full_text != "*BEGININSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)VALUES (NEW.id,NEW.full_text,COALESCE(NEW.app_name,"'),COALESCE(NEW.window_name,COALESCECNEW.browser_url,-zsh• *5-zsh100% <47O ₴6Sat 11 Apr 15:09:32-zshT81X7);END;CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON framesBEGINDELETE FROM frames_fts WHERE id = OLD.id;INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)SELECTNEW. id,COALESCECNEW.full_text,"*),COALESCE(NEW.app_name,"*),COALESCE(NEW.window_name,"'),COALESCE(NEW.browser_url,"*)WHERE NEW.full_text IS NOT NULL AND NEW.full_text != "*;END;BEGINCREATE TRIGGER frames_ad AFTER DELETE ON framesDELETE FROM frames_fts WHERE id = OLD.id;END;CREATE INDEX idx_memories_frame_id ON memories(frame_id);CREATE INDEX idx_elements_source_role_textON elements(source, role, frame_id)WHERE text IS NOT NULL;CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindo iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp-zshDOCKERO ₴1tokenize='unicode61'DEV (-zsh)• $2APP (-zsh)• *3-zsh• x4/* frames_fts(full_text,app_name, window_name,browser_url, id) */;CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, cO, c1, c2, с3, c4);CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;CREATE TRIGGER frames_ai AFTER INSERT ON framesWHEN NEW.full_text IS NOT NULL AND NEW.full_text != "'BEGININSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)VALUES (NEW.id,NEW.full_text,COALESCE(NEW.app_name,"'),COALESCE(NEW.window_name,COALESCECNEW.browser_url,-zsh• x5-zsh100% C47O ₴6Sat 11 Apr 15:09:33-zshT81X7+);END;CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON framesBEGINDELETE FROM frames_fts WHERE id = OLD.id;INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)SELECTNEW.id,COALESCECNEW.full_text,"*),COALESCE(NEW.app_name,"*),COALESCE(NEW.window_name,"'),COALESCE(NEW.browser_url,"*)WHERE NEW.full_text IS NOT NULL AND NEW.full_text != "*;END;BEGINCREATE TRIGGER frames_ad AFTER DELETE ON framesDELETE FROM frames_fts WHERE id = OLD.id;END;CREATE INDEX idx_memories_frame_id ON memories(frame_id);CREATE INDEX idx_elements_source_role_textON elements(source, role, frame_id)WHERE text IS NOT NULL;CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
iTerm2Shell Edit ViewSessionScriptsProfilesWindo iTerm2Shell Edit ViewSessionScriptsProfilesWindowHelp-zshDOCKERO ₴1tokenize='unicode61'DEV (-zsh)• $2APP (-zsh)• *3-zsh• x4/* frames_fts(full_text,app_name, window_name,browser_url, id) */;CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, cO, c1, c2, с3, c4);CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;CREATE TRIGGER frames_ai AFTER INSERT ON framesWHEN NEW.full_text IS NOT NULL AND NEW.full_text != "'BEGININSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)VALUES (NEW.id,NEW.full_text,COALESCE(NEW.app_name,"'),COALESCE(NEW.window_name,COALESCECNEW.browser_url,-zsh• x5-zsh100% C47O ₴6Sat 11 Apr 15:09:34-zshT81X7);END;CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON framesBEGINDELETE FROM frames_fts WHERE id = OLD.id;INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)SELECTNEW.id,COALESCECNEW.full_text,"*),COALESCE(NEW.app_name,"*),COALESCE(NEW.window_name,"'),COALESCE(NEW.browser_url,"*)WHERE NEW.full_text IS NOT NULL AND NEW.full_text != "*;END;BEGINCREATE TRIGGER frames_ad AFTER DELETE ON framesDELETE FROM frames_fts WHERE id = OLD.id;END;CREATE INDEX idx_memories_frame_id ON memories(frame_id);CREATE INDEX idx_elements_source_role_textON elements(source, role, frame_id)WHERE text IS NOT NULL;CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $...
|
NULL
|
NULL
|
NULL
|
|
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 $ sqlite3 ~/.screenpipe/db.sqlite ".schema"
CREATE TABLE _sqlx_migrations (
version BIGINT PRIMARY KEY,
description TEXT NOT NULL,
installed_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
success BOOLEAN NOT NULL,
checksum BLOB NOT NULL,
execution_time BIGINT NOT NULL
);
CREATE TABLE video_chunks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL
, device_name TEXT NOT NULL DEFAULT '', sync_id TEXT, machine_id TEXT, synced_at DATETIME, fps REAL NOT NULL DEFAULT 0.5, cloud_blob_id TEXT DEFAULT NULL);
CREATE TABLE sqlite_sequence(name,seq);
CREATE TABLE audio_chunks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
file_path TEXT NOT NULL
, timestamp TIMESTAMP, sync_id TEXT, machine_id TEXT, synced_at DATETIME);
CREATE INDEX idx_audio_chunks_timestamp ON audio_chunks(timestamp);
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 TABLE tags (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE vision_tags (
vision_id INTEGER NOT NULL,
tag_id INTEGER NOT NULL,
PRIMARY KEY (vision_id, tag_id),
FOREIGN KEY (vision_id) REFERENCES frames(id) ON DELETE CASCADE,
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
);
CREATE TABLE audio_tags (
audio_chunk_id INTEGER NOT NULL,
tag_id INTEGER NOT NULL,
PRIMARY KEY (audio_chunk_id, tag_id),
FOREIGN KEY (audio_chunk_id) REFERENCES audio_chunks(id) ON DELETE CASCADE,
FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE
);
CREATE INDEX idx_vision_tags_vision_id ON vision_tags(vision_id);
CREATE INDEX idx_vision_tags_tag_id ON vision_tags(tag_id);
CREATE INDEX idx_audio_tags_audio_chunk_id ON audio_tags(audio_chunk_id);
CREATE INDEX idx_audio_tags_tag_id ON audio_tags(tag_id);
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 TABLE speakers (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
metadata JSON
, hallucination BOOLEAN DEFAULT FALSE, centroid FLOAT[512], embedding_count INTEGER DEFAULT 0);
CREATE TABLE speaker_embeddings (
id INTEGER PRIMARY KEY AUTOINCREMENT,
embedding FLOAT[512] NOT NULL
check(
typeof(embedding) == 'blob'
and vec_length(embedding) == 512
),
speaker_id INTEGER REFERENCES speakers(id)
);
CREATE TABLE IF NOT EXISTS "audio_transcriptions" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
audio_chunk_id INTEGER NOT NULL,
offset_index INTEGER NOT NULL,
timestamp TIMESTAMP NOT NULL,
transcription TEXT NOT NULL,
device TEXT NOT NULL DEFAULT '',
is_input_device BOOLEAN NOT NULL DEFAULT TRUE,
speaker_id INTEGER,
transcription_engine TEXT NOT NULL DEFAULT 'Whisper', start_time REAL, end_time REAL, text_length INTEGER, sync_id TEXT, synced_at DATETIME,
FOREIGN KEY (audio_chunk_id) REFERENCES audio_chunks(id)
);
CREATE INDEX idx_audio_transcriptions_audio_chunk_id_timestamp ON audio_transcriptions(audio_chunk_id, timestamp);
CREATE INDEX idx_audio_transcriptions_audio_chunk_id ON audio_transcriptions(audio_chunk_id);
CREATE INDEX idx_audio_transcriptions_timestamp ON audio_transcriptions(timestamp);
CREATE INDEX idx_audio_transcriptions_transcription ON audio_transcriptions(transcription);
CREATE INDEX idx_ocr_text_length ON ocr_text (text_length);
CREATE INDEX idx_audio_transcriptions_length ON audio_transcriptions (text_length);
CREATE TABLE ui_events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
session_id TEXT,
relative_ms INTEGER NOT NULL DEFAULT 0,
event_type TEXT NOT NULL, -- click, move, scroll, key, text, app_switch, window_focus, clipboard
-- Position
x INTEGER,
y INTEGER,
delta_x INTEGER,
delta_y INTEGER,
-- Mouse/key
button INTEGER,
click_count INTEGER,
key_code INTEGER,
modifiers INTEGER,
-- Text content
text_content TEXT,
text_length INTEGER,
-- App context
app_name TEXT,
app_pid INTEGER,
window_title TEXT,
browser_url TEXT,
-- Element context (from accessibility APIs)
element_role TEXT,
element_name TEXT,
element_value TEXT,
element_description TEXT,
element_automation_id TEXT,
element_bounds TEXT, -- JSON: {"x":0,"y":0,"width":100,"height":50}
-- Frame correlation
frame_id INTEGER,
-- Sync columns
sync_id TEXT,
machine_id TEXT,
synced_at DATETIME
);
CREATE INDEX idx_ui_events_timestamp ON ui_events(timestamp);
CREATE INDEX idx_ui_events_event_type ON ui_events(event_type);
CREATE INDEX idx_ui_events_app_name ON ui_events(app_name);
CREATE INDEX idx_ui_events_session_id ON ui_events(session_id);
CREATE INDEX idx_ui_events_frame_id ON ui_events(frame_id);
CREATE INDEX idx_ui_events_sync_id ON ui_events(sync_id);
CREATE INDEX idx_ui_events_synced_at ON ui_events(synced_at);
CREATE INDEX idx_ui_events_unsynced ON ui_events(synced_at) WHERE synced_at IS NULL;
CREATE VIRTUAL TABLE ui_events_fts USING fts5(
text_content,
app_name,
window_title,
element_name,
content='ui_events',
content_rowid='id',
tokenize='unicode61'
)
/* ui_events_fts(text_content,app_name,window_title,element_name) */;
CREATE TABLE IF NOT EXISTS 'ui_events_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'ui_events_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'ui_events_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'ui_events_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER ui_events_ad AFTER DELETE ON ui_events BEGIN
INSERT INTO ui_events_fts(ui_events_fts, rowid, text_content, app_name, window_title, element_name)
VALUES('delete', OLD.id, OLD.text_content, OLD.app_name, OLD.window_title, OLD.element_name);
END;
CREATE TRIGGER ui_events_au AFTER UPDATE ON ui_events BEGIN
INSERT INTO ui_events_fts(ui_events_fts, rowid, text_content, app_name, window_title, element_name)
VALUES('delete', OLD.id, OLD.text_content, OLD.app_name, OLD.window_title, OLD.element_name);
INSERT INTO ui_events_fts(rowid, text_content, app_name, window_title, element_name)
VALUES (NEW.id, NEW.text_content, NEW.app_name, NEW.window_title, NEW.element_name);
END;
CREATE UNIQUE INDEX idx_audio_transcription_chunk_text
ON audio_transcriptions(audio_chunk_id, transcription);
CREATE INDEX idx_video_chunks_device_name ON video_chunks(device_name);
CREATE INDEX idx_video_chunks_device_name_id ON video_chunks(device_name, id DESC);
CREATE TABLE pipe_executions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
pipe_name TEXT NOT NULL,
status TEXT NOT NULL DEFAULT 'queued',
trigger_type TEXT NOT NULL DEFAULT 'manual',
pid INTEGER,
model TEXT,
provider TEXT,
started_at TEXT,
finished_at TEXT,
stdout TEXT DEFAULT '',
stderr TEXT DEFAULT '',
exit_code INTEGER,
error_type TEXT,
error_message TEXT,
duration_ms INTEGER
, session_path TEXT);
CREATE INDEX idx_pipe_exec_name_status ON pipe_executions(pipe_name, status);
CREATE INDEX idx_pipe_exec_running ON pipe_executions(status) WHERE status = 'running';
CREATE INDEX idx_pipe_exec_name_time ON pipe_executions(pipe_name, id DESC);
CREATE TABLE pipe_scheduler_state (
pipe_name TEXT PRIMARY KEY,
last_run_at TEXT,
last_success_at TEXT,
consecutive_failures INTEGER DEFAULT 0
);
CREATE TABLE IF NOT EXISTS "frames" (
id INTEGER PRIMARY KEY AUTOINCREMENT,
video_chunk_id INTEGER DEFAULT NULL,
offset_index INTEGER NOT NULL DEFAULT 0,
timestamp TIMESTAMP NOT NULL,
name TEXT,
app_name TEXT DEFAULT NULL,
window_name TEXT DEFAULT NULL,
focused BOOLEAN DEFAULT NULL,
browser_url TEXT DEFAULT NULL,
device_name TEXT NOT NULL DEFAULT '',
sync_id TEXT,
machine_id TEXT,
synced_at DATETIME,
-- New event-driven capture columns
snapshot_path TEXT DEFAULT NULL,
accessibility_text TEXT DEFAULT NULL,
accessibility_tree_json TEXT DEFAULT NULL,
content_hash INTEGER DEFAULT NULL,
simhash INTEGER DEFAULT NULL,
capture_trigger TEXT DEFAULT NULL,
text_source TEXT DEFAULT NULL, cloud_blob_id TEXT DEFAULT NULL, full_text TEXT DEFAULT NULL, elements_ref_frame_id INTEGER DEFAULT NULL,
FOREIGN KEY (video_chunk_id) REFERENCES video_chunks(id)
);
CREATE INDEX idx_frames_timestamp ON frames(timestamp);
CREATE INDEX idx_frames_video_chunk_id ON frames(video_chunk_id);
CREATE INDEX idx_frames_timestamp_device
ON frames(timestamp, device_name);
CREATE INDEX idx_frames_snapshot_path
ON frames(snapshot_path) WHERE snapshot_path IS NOT NULL;
CREATE TRIGGER ui_events_ai AFTER INSERT ON ui_events BEGIN
INSERT OR IGNORE INTO ui_events_fts(rowid, text_content, app_name, window_title, element_name)
VALUES (NEW.id, NEW.text_content, NEW.app_name, NEW.window_title, NEW.element_name);
END;
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);
CREATE TABLE elements (
id INTEGER PRIMARY KEY AUTOINCREMENT,
frame_id INTEGER NOT NULL,
source TEXT NOT NULL, -- 'ocr' | 'accessibility'
role TEXT NOT NULL, -- OCR: 'page','block','paragraph','line','word'
-- AX: 'AXButton','AXTextField','AXStaticText', etc.
text TEXT, -- element text content (NULL for container nodes)
parent_id INTEGER, -- self-referential FK for tree hierarchy (NULL = root)
depth INTEGER NOT NULL DEFAULT 0, -- tree depth (0 = root)
left_bound REAL, -- normalized 0-1 bounding box
top_bound REAL,
width_bound REAL,
height_bound REAL,
confidence REAL, -- OCR confidence (0-100), NULL for AX
sort_order INTEGER NOT NULL DEFAULT 0, properties TEXT, -- sibling order within parent
FOREIGN KEY (frame_id) REFERENCES frames(id),
FOREIGN KEY (parent_id) REFERENCES elements(id)
);
CREATE INDEX idx_elements_frame_id ON elements(frame_id);
CREATE INDEX idx_elements_parent_id ON elements(parent_id);
CREATE INDEX idx_elements_source ON elements(source);
CREATE INDEX idx_elements_frame_source ON elements(frame_id, source);
CREATE VIRTUAL TABLE elements_fts USING fts5(
text,
role,
frame_id UNINDEXED,
content='elements',
content_rowid='id',
tokenize='unicode61'
)
/* elements_fts(text,role,frame_id) */;
CREATE TABLE IF NOT EXISTS 'elements_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'elements_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'elements_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'elements_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER elements_ai AFTER INSERT ON elements
WHEN NEW.text IS NOT NULL AND NEW.text != ''
BEGIN
INSERT INTO elements_fts(rowid, text, role, frame_id)
VALUES (NEW.id, NEW.text, NEW.role, NEW.frame_id);
END;
CREATE TRIGGER elements_ad AFTER DELETE ON elements
WHEN OLD.text IS NOT NULL AND OLD.text != ''
BEGIN
INSERT INTO elements_fts(elements_fts, rowid, text, role, frame_id)
VALUES ('delete', OLD.id, OLD.text, OLD.role, OLD.frame_id);
END;
CREATE TRIGGER elements_au AFTER UPDATE ON elements
WHEN OLD.text IS NOT NULL AND OLD.text != ''
BEGIN
INSERT INTO elements_fts(elements_fts, rowid, text, role, frame_id)
VALUES ('delete', OLD.id, OLD.text, OLD.role, OLD.frame_id);
INSERT INTO elements_fts(rowid, text, role, frame_id)
VALUES (NEW.id, NEW.text, NEW.role, NEW.frame_id);
END;
CREATE VIRTUAL TABLE audio_transcriptions_fts USING fts5(
transcription,
device,
speaker_id,
content='audio_transcriptions',
content_rowid='id',
tokenize='unicode61'
)
/* audio_transcriptions_fts(transcription,device,speaker_id) */;
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'audio_transcriptions_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER audio_transcriptions_ai AFTER INSERT ON audio_transcriptions
WHEN NEW.transcription IS NOT NULL AND NEW.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(rowid, transcription, device, speaker_id)
VALUES (NEW.id, NEW.transcription, COALESCE(NEW.device, ''), NEW.speaker_id);
END;
CREATE TRIGGER audio_transcriptions_delete AFTER DELETE ON audio_transcriptions
WHEN OLD.transcription IS NOT NULL AND OLD.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(audio_transcriptions_fts, rowid, transcription, device, speaker_id)
VALUES ('delete', OLD.id, OLD.transcription, COALESCE(OLD.device, ''), OLD.speaker_id);
END;
CREATE TRIGGER audio_transcriptions_update AFTER UPDATE ON audio_transcriptions
WHEN OLD.transcription IS NOT NULL AND OLD.transcription != ''
BEGIN
INSERT INTO audio_transcriptions_fts(audio_transcriptions_fts, rowid, transcription, device, speaker_id)
VALUES ('delete', OLD.id, OLD.transcription, COALESCE(OLD.device, ''), OLD.speaker_id);
INSERT INTO audio_transcriptions_fts(rowid, transcription, device, speaker_id)
VALUES (NEW.id, COALESCE(NEW.transcription, ''), COALESCE(NEW.device, ''), NEW.speaker_id);
END;
CREATE INDEX idx_video_chunks_cloud_blob_id
ON video_chunks(cloud_blob_id) WHERE cloud_blob_id IS NULL;
CREATE INDEX idx_frames_cloud_blob_id
ON frames(cloud_blob_id) WHERE cloud_blob_id IS NULL AND snapshot_path IS NOT NULL;
CREATE TABLE memories (
id INTEGER PRIMARY KEY AUTOINCREMENT,
content TEXT NOT NULL,
source TEXT NOT NULL DEFAULT 'user',
source_context TEXT,
tags TEXT DEFAULT '[]',
importance REAL DEFAULT 0.5,
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
, frame_id INTEGER REFERENCES frames(id) ON DELETE SET NULL);
CREATE INDEX idx_memories_created_at ON memories(created_at);
CREATE INDEX idx_memories_importance ON memories(importance DESC);
CREATE INDEX idx_memories_source ON memories(source);
CREATE VIRTUAL TABLE memories_fts USING fts5(
content,
tags,
content='memories',
content_rowid='id',
tokenize='unicode61'
)
/* memories_fts(content,tags) */;
CREATE TABLE IF NOT EXISTS 'memories_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'memories_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'memories_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'memories_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER memories_ai AFTER INSERT ON memories
WHEN NEW.content IS NOT NULL AND NEW.content != ''
BEGIN
INSERT INTO memories_fts(rowid, content, tags)
VALUES (NEW.id, NEW.content, COALESCE(NEW.tags, ''));
END;
CREATE TRIGGER memories_ad AFTER DELETE ON memories
WHEN OLD.content IS NOT NULL AND OLD.content != ''
BEGIN
INSERT INTO memories_fts(memories_fts, rowid, content, tags)
VALUES ('delete', OLD.id, OLD.content, COALESCE(OLD.tags, ''));
END;
CREATE TRIGGER memories_au AFTER UPDATE ON memories
WHEN OLD.content IS NOT NULL AND OLD.content != ''
BEGIN
INSERT INTO memories_fts(memories_fts, rowid, content, tags)
VALUES ('delete', OLD.id, OLD.content, COALESCE(OLD.tags, ''));
INSERT INTO memories_fts(rowid, content, tags)
VALUES (NEW.id, COALESCE(NEW.content, ''), COALESCE(NEW.tags, ''));
END;
CREATE VIRTUAL TABLE frames_fts USING fts5(
full_text,
app_name,
window_name,
browser_url,
id UNINDEXED,
tokenize='unicode61'
)
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
)
/* frames_fts(full_text,app_name,window_name,bro )
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);"
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
)
/* frames_fts(full_text,app_name,window_name,bro )
/* frames_fts(full_text,app_name,window_name,browser_url,id) */;
CREATE TABLE IF NOT EXISTS 'frames_fts_data'(id INTEGER PRIMARY KEY, block BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_idx'(segid, term, pgno, PRIMARY KEY(segid, term)) WITHOUT ROWID;
CREATE TABLE IF NOT EXISTS 'frames_fts_content'(id INTEGER PRIMARY KEY, c0, c1, c2, c3, c4);
CREATE TABLE IF NOT EXISTS 'frames_fts_docsize'(id INTEGER PRIMARY KEY, sz BLOB);
CREATE TABLE IF NOT EXISTS 'frames_fts_config'(k PRIMARY KEY, v) WITHOUT ROWID;
CREATE TRIGGER frames_ai AFTER INSERT ON frames
WHEN NEW.full_text IS NOT NULL AND NEW.full_text != ''
BEGIN
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
VALUES (
NEW.id,
NEW.full_text,
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
);
END;
CREATE TRIGGER frames_au AFTER UPDATE OF full_text, app_name, window_name, browser_url ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
INSERT INTO frames_fts(id, full_text, app_name, window_name, browser_url)
SELECT
NEW.id,
COALESCE(NEW.full_text, ''),
COALESCE(NEW.app_name, ''),
COALESCE(NEW.window_name, ''),
COALESCE(NEW.browser_url, '')
WHERE NEW.full_text IS NOT NULL AND NEW.full_text != '';
END;
CREATE TRIGGER frames_ad AFTER DELETE ON frames
BEGIN
DELETE FROM frames_fts WHERE id = OLD.id;
END;
CREATE INDEX idx_memories_frame_id ON memories(frame_id);
CREATE INDEX idx_elements_source_role_text
ON elements(source, role, frame_id)
WHERE text IS NOT NULL;
CREATE INDEX idx_frames_sync_id ON frames(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_ocr_text_sync_id ON ocr_text(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_audio_transcriptions_sync_id ON audio_transcriptions(sync_id) WHERE sync_id IS NOT NULL;
CREATE INDEX idx_elements_frame_source_role ON elements(frame_id, source, role) WHERE text IS NOT NULL;
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ clear
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*) as frames FROM frames GROUP BY date(timestamp) ORDER BY date(timestamp);"
2026-04-09|523
2026-04-11|197
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $
DOCKER
Close Tab
DEV (-zsh)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
-zsh
Close Tab
⌥⌘1
-zsh...
|
iTerm2
|
-zsh
|
NULL
|
|
iTerm2ShellEditViewSessionScriptsProfilesWindowHel iTerm2ShellEditViewSessionScriptsProfilesWindowHelp‹ 40lhl100% C-zshDOCKER• ₴1DEV (-zsh)O $2APP (-zsh)• *3-zsh• 84-zshlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*)BY date(timestamp);"2026-04-0915232026-04-11|197lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $|• *5-zsh• 86frames FROM frames GROUPSat 11 Apr 15:09:55T81-zshX7BY date(timestamp)ORDER...
|
NULL
|
NULL
|
NULL
|
|
iTerm2ShelllEditViewSessionScriptsProfilesWindowHe iTerm2ShelllEditViewSessionScriptsProfilesWindowHelp‹ $0(ahl100% <7-zshDOCKERO ₴1DEV (-zsh)O $2APP (-zsh)• ₴з-zsh• 84-zshlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny:~/.screenpipe $ sqlite3 ~/.screenpipe/db.sqlite "SELECT date(timestamp), COUNT(*)BY date(timestamp);"2026-04-0915232026-04-11|197lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/.screenpipe $ l• ₴5-zshO 886frames FROM frames GROUPSat 11 Apr 15:09:56181-zsh*7BY date(timestamp)ORDER...
|
NULL
|
NULL
|
NULL
|